Z tego przewodnika dowiesz się, jak zintegrować pakiet IMA DAI SDK z prostą aplikacją odtwarzacza wideo. Jeśli chcesz zobaczyć lub przeanalizować gotową przykładową integrację, pobierz BasicExample z GitHub.
Omówienie IMA DAI
Wdrażanie IMA DAI obejmuje 4 główne komponenty pakietu SDK, które opisujemy w tym przewodniku:
StreamDisplayContainer: obiekt kontenera, który znajduje się nad elementem odtwarzania wideo i zawiera elementy interfejsu reklamy.AdsLoader: obiekt, który żąda strumieni i obsługuje zdarzenia wywoływane przez obiekty odpowiedzi na żądanie strumienia. Należy utworzyć tylko 1 instancję obiektu ładującego reklamy, którą można wielokrotnie wykorzystywać przez cały okres działania aplikacji.StreamRequest: obiekt definiujący żądanie strumienia. Żądania strumieni mogą dotyczyć filmów na żądanie lub transmisji na żywo. Żądania transmisji na żywo określają klucz zasobu, a żądania VOD – identyfikator CMS i identyfikator filmu. Oba typy żądań mogą opcjonalnie zawierać klucz interfejsu API potrzebny do uzyskania dostępu do określonych strumieni oraz kod sieci Google Ad Managera, który umożliwia pakietowi IMA SDK obsługę identyfikatorów reklam zgodnie z ustawieniami Google Ad Managera.StreamManager: obiekt, który obsługuje strumienie dynamicznego wstawiania reklam i interakcje z backendem DAI. Menedżer strumienia obsługuje też pingi śledzące i przekazuje wydawcy zdarzenia strumienia i reklamy.
Wymagania wstępne
- Android Studio
- Przykładowa aplikacja odtwarzacza wideo do integracji z pakietem SDK
Pobieranie i uruchamianie przykładowej aplikacji odtwarzacza wideo
Przykładowa aplikacja zawiera działający odtwarzacz, który odtwarza filmy HLS. Użyj go jako punktu wyjścia do integracji funkcji DAI pakietu IMA DAI SDK.
Pobierz przykładową aplikację odtwarzacza wideo i rozpakuj ją.
Uruchom Android Studio i wybierz Otwórz istniejący projekt Android Studio. Jeśli Android Studio jest już uruchomione, wybierz Plik > Nowy > Importuj projekt. Następnie wybierz
SampleVideoPlayer/build.gradle.Uruchom synchronizację Gradle, wybierając Narzędzia > Android > Synchronizuj projekt z plikami Gradle.
Upewnij się, że aplikacja odtwarzacza kompiluje się i działa na fizycznym urządzeniu z Androidem lub urządzeniu wirtualnym z Androidem, wybierając Uruchom > Uruchom „aplikację”. To normalne, że wczytanie strumienia wideo przed odtworzeniem może chwilę potrwać.
Analiza przykładowego odtwarzacza wideo
Przykładowy odtwarzacz nie zawiera jeszcze kodu integracji z pakietem IMA DAI SDK. Przykładowa aplikacja składa się z 2 głównych części:
samplevideoplayer/SampleVideoPlayer.java: odtwarzacz HLS oparty na ExoPlayer, który stanowi podstawę integracji z IMA DAI.videoplayerapp/MyActivity.java: ta aktywność tworzy odtwarzacz i przekazuje mu parametryContextimedia3.ui.PlayerView.
Dodawanie pakietu IMA DAI SDK do aplikacji odtwarzacza
Musisz też dołączyć odwołanie do pakietu IMA DAI SDK. W Android Studio dodaj do pliku build.gradle na poziomie aplikacji (znajdującego się w app/build.gradle) te informacje: Pakiet IMA SDK wymaga włączenia odlukrzania biblioteki. Aby to zrobić, ustaw coreLibraryDesugaringEnabled true i dodaj 'com.android.tools:desugar_jdk_libs' jako zależność w pliku build.gradle. Szczegółowe informacje znajdziesz w artykule Interfejsy API Javy 11+ dostępne dzięki odlukrzaniu ze specyfikacją nio.
Integracja z pakietem IMA DAI SDK
Utwórz nową klasę o nazwie
SampleAdsWrapperw pakiecievideoplayerapp(wapp/java/com.google.ads.interactivemedia.v3.samples/videoplayerapp/), aby opakować istniejący obiektSampleVideoPlayeri dodać logikę implementującą IMA DAI. Aby to zrobić, musisz najpierw utworzyćAdsLoader, który służy do żądania strumienia DAI.Ten fragment kodu zawiera przykładowe parametry strumieni HLS i DASH, transmisji na żywo i filmów na żądanie. Aby ustawić, która transmisja jest odtwarzana, zaktualizuj zmienną
CONTENT_TYPE.Utwórz metodę pomocniczą
createSampleVideoPlayerCallback()do obsługi tworzenia instancji interfejsuSampleVideoPlayerCallback, która rozszerzaVideoStreamPlayer.VideoStreamPlayerCallback.Aby odtwarzacz mógł współpracować z DAI, musi przekazywać zdarzenia ID3 do pakietu IMA DAI SDK. W tym przykładowym kodzie robi to metoda
callback.onUserTextReceived().Dodaj metodę
buildStreamRequest(), aby utworzyćSteamRequest. Ta metoda przełącza się między różnymi strumieniami w zależności od tego, jak ustawisz zmiennąCONTENT_TYPE. Domyślny strumień używany w tym przewodniku to przykładowy strumień HLS VOD IMA.Do odtwarzania strumienia potrzebujesz też obiektu
VideoStreamPlayer, więc dodaj metodęcreateVideoStreamPlayer(), która tworzy klasę anonimową implementującąVideoStreamPlayer.Zaimplementuj wymagane detektory i dodaj obsługę błędów.
Zwróć uwagę na implementację
AdErrorListener, ponieważ wywołuje ona zastępczy adres URL, jeśli nie uda się odtworzyć reklam. Ponieważ treści i reklamy znajdują się w jednym strumieniu, musisz być w stanie wywołać strumień zastępczy, jeśli w strumieniu DAI wystąpi błąd.Dodaj kod logowania.
Zmodyfikuj
MyActivitywvideoplayerapp, aby utworzyć instancję i wywołaćSampleAdsWrapper. Wywołaj też tutajImaSdkFactory.initialize(), używając metody pomocniczej do utworzenia instancjiImaSdkSettings.Dodaj metodę pomocniczą
getImaSdkSettings(), aby utworzyć instancjęImaSdkSettings.Zmodyfikuj plik układu aktywności
activity_my.xml, aby dodać elementy interfejsu do logowania.
Gratulacje! Teraz możesz żądać reklam wideo i wyświetlać je w aplikacji na Androida. Aby dostosować implementację, zapoznaj się z informacjami o zakładkach i funkcji Snapback oraz z dokumentacją interfejsu API.
Rozwiązywanie problemów
Jeśli masz problemy z odtwarzaniem reklamy wideo, spróbuj pobrać gotowy projekt BasicExample. Jeśli w BasicExample działa prawidłowo, prawdopodobnie występuje problem z kodem integracji IMA w aplikacji.
Jeśli nadal masz problemy, odwiedź forum IMA SDK.