Pakiety IMA SDK ułatwiają integrację reklam multimedialnych z witrynami i aplikacjami. Pakiety IMA SDK mogą wysyłać żądania reklam z dowolnego serwera reklam zgodnego z VAST i zarządzać odtwarzaniem reklam w aplikacjach. Dzięki pakietom SDK IMA DAI aplikacje wysyłają żądania strumienia danych wideo z reklam i treści wideo – VOD lub treści na żywo. Pakiet SDK zwraca połączony strumień wideo, więc nie musisz już zarządzać przełączaniem się między reklamą a treścią 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ą wysyłać żądania reklam z dowolnego serwera reklam zgodnego z VAST i zarządzać odtwarzaniem reklam w aplikacjach. Dzięki pakietom SDK IMA DAI aplikacje wysyłają żądania strumienia danych wideo z reklam i treści wideo – VOD lub treści na żywo. Pakiet SDK zwraca połączony strumień wideo, więc nie musisz już zarządzać przełączaniem się między reklamą a treścią wideo w aplikacji.
Ten przewodnik pokazuje, jak odtwarzać strumień wyświetlania bloków reklamowych z dynamicznym wstawianiem reklam, korzystając z pakietu IMA DAI SDK z prostym odtwarzaczem do odtwarzania strumieni na żywo i VOD. Jeśli chcesz wyświetlić ukończoną przykładową integrację lub ją kontynuować, pobierz przykład wyświetlania podów.
Omówienie wyświetlania podów z IMA DAI
StreamRequest
: obiekt definiujący żądanie strumienia do serwerów reklamowych Google. Aby włączyć obsługę podów, trzeba je utworzyć za pomocąImaSdkFactory.createPodStreamRequest()
lubImaSdkFactory.createPodVodStreamRequest()
. Te metody wymagają kodu sieci, acreatePodStreamRequest
wymagają też niestandardowego klucza zasobu i opcjonalnego klucza API. Oba typy zawierają inne opcjonalne parametry.StreamManager
: obiekt obsługujący komunikację między strumieniem wideo a pakietem IMA DAI SDK, np. uruchamianie pingów śledzących i przekierowywanie zdarzeń strumienia do wydawcy.
Wymagania wstępne
Aplikacja na Androida skonfigurowana za pomocą pakietu IMA DAI SDK do odtwarzania strumieni wideo z reklamami DAI. Jeśli nie masz jeszcze takiej aplikacji, na początek możesz skorzystać z podstawowego przykładu funkcji DAI w Androidzie. BasicExample zawiera bazę kodu, o której mowa w tym przewodniku.
Aby aplikacja IMA DAI mogła działać, aplikacja musi wysyłać zdarzenia ID3 za pomocą
VideoStreamPlayerCallback.onUserTextReceived()
. Zobacz przykładowy fragment kodu dynamicznego wstawiania reklam (DAI) w pełnym zakresie.
Konfigurowanie zmiennych wyświetlających bloki reklamowe
Wszystkie zmiany wymagane do wyświetlania podów są wprowadzane w pliku SampleAdsWrapper.java. Pierwszym krokiem jest zaktualizowanie zmiennych stałych.
Oto stałe żądania strumienia bloku reklamowego, które musisz dodać:
STREAM_URL
: używane tylko w transmisjach na żywo – adres URL strumienia wideo podany przez manipulator pliku manifestu lub partnera zewnętrznego, który korzysta z wyświetlania bloków reklamowych. Przed wysłaniem żądania powinno być wymagane wstawienie identyfikatora strumienia dostarczonego 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 Twojego konta Ad Managera 360.CUSTOM_ASSET_KEY
: używany tylko w transmisjach na żywo – niestandardowy klucz zasobu identyfikujący zdarzenie wyświetlania bloku reklamowego w usłudze Ad Manager 360. Można go utworzyć za pomocą manipulatora pliku manifestu lub zewnętrznego partnera obsługującego pody.API_KEY
: używany tylko na potrzeby 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 DAI w Androidzie został zaprojektowany do odtwarzania różnych typów strumieni, ale do wyświetlania bloków reklamowych konfiguracja pozwala odtwarzać tylko 1 strumień. Zmień sekcję zmiennej w przykładzie tak, aby była zgodna z tym fragmentem:
/** 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 strumienia bloku reklamowego na żywo lub VOD, aby włączyć wyświetlanie bloków reklamowych
Blok reklamowy w transmisji na żywo
Usuń metodę buildStreamRequest()
, która była używana do przełączania się między tworzeniem różnych typów strumieni. Potem zmień requestAndPlayAds()
, aby wywoływać metodę ImaSdkFactory.createPodStreamRequest()
, co spowoduje utworzenie żądania reklamy aktywnego bloku reklamowego. Na koniec poproś o utworzenie transmisji 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 tworzeniem różnych typów strumieni. Następnie zmień requestAndPlayAds()
, aby wywoływać metodę ImaSdkFactory.createPodVodStreamRequest()
, co spowoduje utworzenie żądania reklamy w bloku reklamowym VOD. Na koniec poproś o utworzenie transmisji 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
Blok reklamowy w transmisji na żywo
Wywołaj StreamManager.getStreamId()
, aby uzyskać identyfikator strumienia. Należy go następnie wstawić do zakresu STEAM_URL
, zastępując "[[STREAMID]]"
. Po wprowadzeniu tej zmiany nowy adres URL transmisji będzie można ustawić 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
Wywołaj StreamManager.getStreamId()
, aby uzyskać identyfikator strumienia. Następnie poproś partnera ds. technologii wideo o adres URL strumienia. Następnie wywołaj StreamManager.loadThirdPartyStream()
, by pakiet IMA wczytał adres URL strumienia 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);
}
Gdy wyświetlanie bloków reklamowych jest włączone, IMA nie wywołują wywołania
VideoStreamPlayer.loadUrl()
, więc możesz usunąć z niego wszystkie wywołania videoPlayer.setStreamUrl()
i videoPlayer.play()
.
Znakomicie. Za pomocą pakietu IMA DAI SDK wysyłasz żądania i wyświetlasz reklamy w strumieniu wyświetlania reklam w bloku reklamowym. Inne przykłady użycia pakietu Android SDK znajdziesz w przykładach na GitHubie.