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 Twoich aplikacjach. Dzięki pakietom IMA DAI aplikacje mogą wysyłać żądania strumienia w przypadku reklam i treści wideo (VOD lub na żywo). Pakiet SDK zwraca następnie połączony strumień wideo, dzięki czemu nie musisz zarządzać przełączaniem między reklamami wideo a treściami wideo w aplikacji.
Wybierz rozwiązanie DAI, które Cię interesuje
Blok reklamowy z dynamicznym wstawianiem 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 Twoich aplikacjach. Dzięki pakietom IMA DAI aplikacje mogą wysyłać żądania strumienia w przypadku reklam i treści wideo (VOD lub na żywo). Pakiet SDK zwraca następnie połączony strumień wideo, dzięki czemu nie musisz zarządzać przełączaniem między reklamami wideo a treściami wideo w aplikacji.
W tym przewodniku pokazujemy, jak odtwarzać strumień wyświetlania bloków reklamowych z DAI na Androida za pomocą pakietu IMA Android DAI SDK z prostym odtwarzaczem wideo do odtwarzania strumieni na żywo i VOD. Jeśli chcesz wyświetlić lub śledzić ukończoną przykładową integrację, pobierz przykład wyświetlania bloku reklamowego.
Omówienie wyświetlania bloków reklamowych IMA DAI
StreamRequest
: obiekt określający żądanie strumienia wysyłane do serwerów reklamowych Google. Aby włączyć wyświetlanie podów, należy utworzyć go za pomocąImaSdkFactory.createPodStreamRequest()
lubImaSdkFactory.createPodVodStreamRequest()
. Te metody wymagają kodu sieci, acreatePodStreamRequest
wymagają też niestandardowego klucza zasobu i opcjonalnego klucza interfejsu API. Zawierają też inne parametry opcjonalne.StreamManager
: obiekt obsługujący komunikację między strumieniem wideo a pakietem IMA DAI SDK, np. uruchamianie pingów śledzenia i przekazywania zdarzeń strumienia do wydawcy.
Wymagania wstępne
Aplikacja na Androida z pakietem IMA DAI SDK do odtwarzania strumieni wideo z reklamami DAI. Jeśli jeszcze nie masz takiej aplikacji, na początek użyj podstawowego przykładu do dynamicznego wstawiania reklam w Androidzie. Element BasicExample zawiera bazę kodu, do której odwołuje się ten przewodnik.
Aby funkcja IMA DAI działała, aplikacja musi wysyłać zdarzenia ID3 za pomocą
VideoStreamPlayerCallback.onUserTextReceived()
. Zapoznaj się z przykładem fragmentu kodu DAI w pełnej usłudze.
Konfigurowanie zmiennych obsługi poda
Wszystkie zmiany niezbędne do wyświetlania bloków reklamowych są wprowadzane w pliku SampleAdsWrapper.java. Pierwszym krokiem jest zaktualizowanie zmiennych stałych.
Oto stałe żądania strumienia bloku reklamowego, które należy dodać:
STREAM_URL
: używany tylko w przypadku transmisji na żywo – adres URL strumienia wideo podany przez manipulator pliku manifestu lub partnera zewnętrznego, który korzysta z bloków reklamowych. Powinno ono wymagać, by przed wysłaniem żądania wstawić identyfikator strumienia z pakietu IMA DAI SDK. W tym przypadku URL strumienia przed wysłaniem żądania zawiera obiekt zastępczy"[[STREAMID]]"
, który jest zastępowany identyfikatorem strumienia.NETWORK_CODE
: kod sieci powiązany z kontem Ad Managera 360.CUSTOM_ASSET_KEY
: używany tylko w przypadku transmisji na żywo – niestandardowy klucz zasobu, który identyfikuje zdarzenie wyświetlania w bloku reklamowym w usłudze Ad Manager 360. Może go utworzyć manipulator pliku manifestu lub zewnętrzny partner obsługujący pody.API_KEY
: używany tylko w przypadku transmisji na żywo – opcjonalny klucz interfejsu API, który może być wymagany do pobierania identyfikatora strumienia z pakietu IMA DAI SDK.
Podstawowy przykład dynamicznego wstawiania reklam w Androidzie jest przeznaczony do odtwarzania różnych typów strumieni, ale w przypadku wyświetlania bloków reklamowych jest skonfigurowany tak, aby odtwarzać tylko jeden strumień. Zmień sekcję zmiennej w przykładzie tak, aby pasowała do tego:
/** 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 {
...
Aby włączyć wyświetlanie bloków reklamowych, utwórz żądanie strumienia na żywo lub bloku reklamowego VOD
Wyświetlanie bloku reklamowego transmisji na żywo
Usuń metodę buildStreamRequest()
, która była używana do przełączania się między tworzeniem różnych typów strumieni. Następnie zmień requestAndPlayAds()
na wywoływanie ImaSdkFactory.createPodStreamRequest()
, aby utworzyć aktywny blok reklamowy wyświetlający żądanie reklamy. Na koniec poproś o transmisję 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 bloku reklamowego w strumieniu VOD
Usuń metodę buildStreamRequest()
, która była używana do przełączania się między tworzeniem różnych typów strumieni. Następnie zmień requestAndPlayAds()
na wywoływanie ImaSdkFactory.createPodVodStreamRequest()
, aby utworzyć blok reklamowy VOD wyświetlający żądanie reklamy. Na koniec poproś o transmisję 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 transmisji
Wyświetlanie bloku reklamowego transmisji na żywo
Zadzwoń pod numer StreamManager.getStreamId()
, aby uzyskać identyfikator strumienia. Należy go potem wstawić do tabeli STEAM_URL
, zastępując "[[STREAMID]]"
. Po wprowadzeniu tej zmiany nowy adres URL transmisji można ustawić za pomocą parametru 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 bloku reklamowego w strumieniu VOD
Zadzwoń pod numer StreamManager.getStreamId()
, aby uzyskać identyfikator strumienia. Następnie poproś partnera w zakresie technologii wideo (VTP) o adres URL transmisji. Następnie wywołaj StreamManager.loadThirdPartyStream()
, aby IMA wczytała adres URL transmisji i wszystkie napisy zwrócone przez TVP.
@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);
}
Przy włączonym wyświetlaniu bloków IMA nie wywołuje wywołań VideoStreamPlayer.loadUrl()
, więc możesz usunąć z niej wszystkie wywołania videoPlayer.setStreamUrl()
i videoPlayer.play()
.
Znakomicie. Żądasz i wyświetlasz reklamy w bloku reklamowym z pakietem IMA Android DAI SDK. Inne przykłady używanych pakietów SDK do Androida znajdziesz w przykładach na GitHubie.