Pierwsze kroki z pakietem IMA DAI SDK

Pakiety IMA SDK ułatwiają integrację reklam multimedialnych z witrynami i aplikacjami. Pakiety IMA SDK mogą żądania reklam z Serwer reklam zgodny i zarządzanie odtwarzaniem reklam w aplikacjach. Dzięki pakietom SDK IMA DAI aplikacje żądania strumieniowego przesyłania danych reklamy i treści wideo – VOD lub treści na żywo. SDK zwraca wtedy typ połączony strumień wideo, dzięki czemu nie trzeba przełączać się między reklamą a treścią wideo. w Twojej 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ą żądania reklam z Serwer reklam zgodny i zarządzanie odtwarzaniem reklam w aplikacjach. Dzięki pakietom SDK IMA DAI aplikacje żądania strumieniowego przesyłania danych reklamy i treści wideo – VOD lub treści na żywo. SDK zwraca wtedy typ połączony strumień wideo, dzięki czemu nie trzeba przełączać się między reklamą a treścią wideo. w Twojej aplikacji.

Ten przewodnik pokazuje, jak odtwarzać strumień wyświetlania podów z dynamicznym wstawianiem reklam, korzystając z IMA DAI Pakiet SDK z prostym odtwarzaczem wideo do odtwarzania strumieni na żywo i VOD. Jeśli chcesz zobaczyć lub śledzić ukończoną przykładową integrację, pobierz przykład wyświetlania bloku reklamowego.

Omówienie wyświetlania podów z IMA DAI

  • StreamRequest: obiekt definiujący żądanie strumienia do Serwery reklamowe Google. Musi być utworzony za pomocą ImaSdkFactory.createPodStreamRequest() lub ImaSdkFactory.createPodVodStreamRequest() aby włączyć wyświetlanie bloków reklamowych. Te metody wymagają kodu sieci. createPodStreamRequest wymaga też niestandardowego klucza zasobu oraz opcjonalny klucz interfejsu API. Oba typy zawierają inne opcjonalne parametry.

  • StreamManager: obiekt obsługujący komunikację między strumienia wideo i pakietu IMA DAI SDK, np. uruchamiania pingów śledzących czy i przekazywać wydawcy zdarzenia strumienia.

Wymagania wstępne

Konfigurowanie zmiennych wyświetlających bloki reklamowe

Wszystkie zmiany wymagane do wyświetlania podów są wprowadzane w pliku SampleAdsWrapper.java. Pierwszym 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 za pomocą manipulatora manifestu lub partnera zewnętrznego, który obsługuje bloki reklamowe. Powinna musisz wstawić identyfikator strumienia dostarczony przez pakiet IMA DAI SDK przed przesłać prośbę. W tym przypadku URL transmisji zawiera zmienną, "[[STREAMID]]", która jest zastępowana identyfikatorem strumienia, przed utworzeniem użytkownika.

  • NETWORK_CODE: kod sieci Twojego konta Ad Managera 360.

  • CUSTOM_ASSET_KEY: używany tylko w transmisjach na żywo – niestandardowy klucz pliku, który identyfikuje zdarzenie wyświetlenia bloku reklamowego w usłudze Ad Manager 360. Kto może ją 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órego można użyć wymagane do pobrania identyfikatora strumienia z pakietu IMA DAI SDK.

Podstawowy przykład dynamicznego wstawiania w Androidzie został zaprojektowany do odtwarzania różnych strumieni a w przypadku bloków reklamowych jest skonfigurowany odtwarzanie tylko 1 strumienia. 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 tworząc różne typy strumieni. Następnie zmień requestAndPlayAds(), aby zadzwonić ImaSdkFactory.createPodStreamRequest(), aby utworzyć reklamę z aktywnym blokiem reklamowym. użytkownika. 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 tworząc różne typy strumieni. Następnie zmień requestAndPlayAds(), aby zadzwonić ImaSdkFactory.createPodVodStreamRequest(), aby utworzyć reklamę w bloku reklamowym VOD. użytkownika. 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. Następnie należy wstawiono do STEAM_URL, zastępując "[[STREAMID]]". Po tej zmianie 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 bloków reklamowych w strumieniu VOD

Wywołaj StreamManager.getStreamId(), aby uzyskać identyfikator strumienia. Następnie poproś o adresu URL strumienia od dostawcy technologii wideo (VTP). Następnie zadzwoń StreamManager.loadThirdPartyStream(), by pakiet IMA wczytał 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);
}

Po włączeniu wyświetlania bloków reklamowych IMA nie wywołuje funkcji VideoStreamPlayer.loadUrl(), więc możesz usunąć wszystkie połączenia z: videoPlayer.setStreamUrl() i videoPlayer.play() od niego.

Znakomicie. Zamawiasz i wyświetlasz reklamy w strumieniu bloku reklamowego z pakiet IMA DAI SDK. Aby zobaczyć inne przykłady wykorzystania pakietu Android SDK, spójrz na znajdziesz na GitHubie.