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 następnie 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 następnie 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 w odtwarzaczu wideo na potrzeby odtwarzania strumieni na żywo i VOD. Aby wyświetlić lub prześledzić przykładową, ukończoną 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
– także 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łanie pingów śledzenia i przekazywanie zdarzeń 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 jako punktu wyjścia przykładu podstawowego dla Androida DAI. Przykład podstawowy zawiera bazę kodu, do której odwołuje się ten przewodnik.
Aby IMA DAI działała prawidłowo, 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żywane tylko w przypadku transmisji na żywo – klucz zasobu niestandardowego, który identyfikuje zdarzenie obsługi podgrupy 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 służy 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 prośbę o wyświetlanie bloków reklamowych w ramach 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 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 ramach strumienia 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 z Twojego dostawcy 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 podawania plików, 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 wysył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()
służy do zatrzymania odtwarzania strumienia, zatrzymania śledzenia reklam i zwolnienia wszystkich załadowanych komponentów strumienia.
Inne przykłady użycia pakietu Android SDK znajdziesz w przykładach na GitHubie.