Pakiety IMA SDK ułatwiają integrację reklam multimedialnych z witrynami i aplikacjami. Pakiety IMA SDK mogą żądać reklam z dowolnego serwera reklam zgodnego z VAST i zarządzać odtwarzaniem reklam w aplikacjach. Dzięki pakietom IMA DAI SDK aplikacje wysyłają żądanie strumienia reklamy i treści wideo (VOD lub treści na żywo). Pakiet SDK zwraca połączony strumień wideo, dzięki czemu nie musisz zarządzać przełączaniem się między reklamą a filmem z treściami w aplikacji.
Wybierz interesujące Cię rozwiązanie DAI
Wyświetlanie bloków reklamowych w ramach dynamicznego wstawiania reklam
Pakiety IMA SDK ułatwiają integrację reklam multimedialnych z witrynami i aplikacjami. Pakiety IMA SDK mogą żądać reklam z dowolnego serwera reklam zgodnego z VAST i zarządzać odtwarzaniem reklam w aplikacjach. Dzięki pakietom IMA DAI SDK aplikacje wysyłają żądanie strumienia reklamy i treści wideo (VOD lub treści na żywo). Pakiet SDK zwraca połączony strumień wideo, dzięki czemu nie musisz zarządzać przełączaniem się między reklamą a filmem z treściami w aplikacji.
Ten przewodnik pokazuje, jak odtwarzać strumień z dynamicznego wstawiania reklam za pomocą pakietu IMA DAI SDK z odtwarzaczem wideo do odtwarzania strumieni na żywo i VOD. Aby wyświetlić lub przejrzeć przykładową integrację, pobierz przykładowy plik Pod Serving.
Omówienie wyświetlania bloków reklamowych w ramach IMA DAI
StreamRequest
: obiekt definiujący żądanie strumienia do serwerów reklamowych Google. Aby włączyć obsługę podów, musisz utworzyć je za pomocą plikuImaSdkFactory.createPodStreamRequest()
lub plikuImaSdkFactory.createPodVodStreamRequest()
. Te metody wymagają kodu sieci, acreatePodStreamRequest
wymaga też klucza zasobu niestandardowego i opcjonalnie klucza API. Oba zawierają inne parametry opcjonalne.StreamManager
: obiekt obsługujący komunikację między strumieniem wideo a pakietem IMA DAI SDK, np. wysyła pingi śledzące i przekazuje zdarzenia strumienia do wydawcy.
Wymagania wstępne
Aplikacja na Androida skonfigurowana już za pomocą pakietu IMA DAI SDK do odtwarzania strumieni wideo z reklamami DAI. Jeśli nie masz jeszcze takiej aplikacji, zalecamy użycie przykładu podstawowego dla Androida jako punktu wyjścia. Przykład podstawowy zawiera bazę kodu, do której odwołuje się ten przewodnik.
Aby IMA DAI działała prawidłowo, Twoja aplikacja musi wysyłać zdarzenia ID3 za pomocą interfejsu
VideoStreamPlayerCallback.onUserTextReceived()
. Zapoznaj się z przykładem pełnego fragmentu kodu DAI.
Konfigurowanie zmiennych wyświetlania bloków reklamowych
Wszystkie zmiany potrzebne do wyświetlania bloków reklamowych są wprowadzane w pliku SampleAdsWrapper.java. Pierwszym krokiem jest zaktualizowanie stałych zmiennych.
Oto stałe żądania strumienia podgrupy reklam, które należy dodać:
STREAM_URL
: używany tylko w przypadku transmisji na żywo – adres URL strumienia wideo podany przez manipulującego plikiem manifestu lub partnera zewnętrznego korzystającego z dynamicznego wstawiania reklam. Zanim prześlesz żądanie, musisz w nim podać identyfikator strumienia dostarczony przez pakiet IMA DAI SDK. W tym przypadku adres URL strumienia zawiera obiekt zastępczy"[[STREAMID]]"
, który przed wysłaniem żądania jest zastępowany identyfikatorem strumienia.NETWORK_CODE
: kod sieci konta Ad Managera 360.CUSTOM_ASSET_KEY
: używany tylko w przypadku transmisji na żywo – klucz zasobu niestandardowego, który identyfikuje Twoje wydarzenie dotyczące obsługi strumienia w usłudze Ad Manager 360. Możesz go utworzyć za pomocą manipulatora pliku manifestu lub zewnętrznego partnera obsługującego wyświetlanie bloków reklamowych.API_KEY
: używany tylko w przypadku transmisji na żywo – opcjonalny klucz interfejsu API, który może być wymagany do pobrania identyfikatora strumienia z pakietu IMA DAI SDK.
Plik Android DAI BasicExample jest przeznaczony do odtwarzania różnych typów strumieni, ale w przypadku wyświetlania bloków reklamowych w ramach DAI jest skonfigurowany tak, aby odtwarzać tylko jeden strumień. Zmień sekcję zmiennej przykładu na taką:
/** This class adds ad-serving support to Sample HlsVideoPlayer */
public class SampleAdsWrapper
implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {
// Podserving Stream Constants.
private static final String STREAM_URL =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/" +
"master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample" +
"&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000" +
"&seg-host=dai.google.com&stream_id=[[STREAMID]]";
private static final String NETWORK_CODE = "51636543";
private static final String CUSTOM_ASSET_KEY = "google-sample";
private static final String API_KEY = "";
private static final String PLAYER_TYPE = "DAISamplePlayer";
/** Log interface, so we can output the log commands to the UI or similar. */
public interface Logger {
...
Utwórz żądanie podstremu transmisji na żywo lub VOD, aby włączyć wyświetlanie bloków reklamowych
Podawanie reklam w ramach transmisji na żywo
Usuń metodę buildStreamRequest()
, która była używana do przełączania się między różnymi typami strumieni. Następnie zmień requestAndPlayAds()
na ImaSdkFactory.createPodStreamRequest()
, aby utworzyć żądanie wyświetlania reklamy w podgrupie na żywo. Na koniec poproś o strumień za pomocą AdsLoader.requestStream()
.
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
Wyświetlanie bloków reklamowych w strumieniu VOD
Usuń metodę buildStreamRequest()
, która była używana do przełączania się między różnymi typami strumieni. Następnie zmień requestAndPlayAds()
na ImaSdkFactory.createPodVodStreamRequest()
, aby utworzyć prośbę o wyświetlenie reklamy VOD w podkategorii. Na koniec poproś o strumień za pomocą AdsLoader.requestStream()
.
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
Edytowanie i ustawianie adresu URL strumienia
Podawanie reklam w ramach transmisji na żywo
Aby uzyskać identyfikator strumienia, zadzwoń pod numer StreamManager.getStreamId()
. Następnie należy wstawić ten kod do pliku STEAM_URL
, zastępując nim kod "[[STREAMID]]"
. Po wprowadzeniu tej zmiany można ustawić nowy URL strumienia za pomocą videoPlayer.setStreamUrl()
.
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
String streamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
streamManager.init();
videoPlayer.setStreamUrl(streamUrl);
videoPlayer.play();
}
Wyświetlanie bloków reklamowych w strumieniu VOD
Aby uzyskać identyfikator strumienia, zadzwoń pod numer StreamManager.getStreamId()
. Następnie poproś o adres URL strumienia od dostawcy technologii wideo (VTP). Następnie wywołaj funkcję StreamManager.loadThirdPartyStream()
, aby IMA załadowała adres URL strumienia i wszystkie napisy zwrócone przez dostawcę treści.
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
// 'vtpInterface' is a place holder for your own video technology partner
// (VTP) API calls.
String streamUrl = vtpInterface.requestStreamURL(streamID);
streamManager.init();
// Pass any subtitles returned by your VTP in this step as well.
streamManager.loadThirdPartyStream(streamUrl, subtitles);
}
Gdy włączona jest obsługa poda, IMA nie wykonuje połączeń do VideoStreamPlayer.loadUrl()
, więc możesz usunąć z niego wszystkie połączenia do videoPlayer.setStreamUrl()
i videoPlayer.play()
.
Czyszczenie komponentów IMA DAI
Po zakończeniu przesyłania żądań i wyświetlania reklam w strumieniu z dynamicznym wstawianiem reklam za pomocą pakietu IMA DAI SDK zalecamy usunięcie wszystkich zasobów po zakończeniu sesji Pod Serving. Wywołanie StreamManager.destroy()
zatrzymuje odtwarzanie strumienia, zatrzymuje śledzenie reklam i zwalnia wszystkie załadowane zasoby strumienia.
Inne przykłady użycia pakietu Android SDK znajdziesz w przykładach na GitHubie.