Pierwsze kroki z pakietem IMA DAI SDK

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 z odtwarzaczem wideo do odtwarzania strumieni na żywo i VOD. Aby wyświetlić lub przejrzeć przykładową integrację, pobierz przykład obsługi podów.

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ą pliku ImaSdkFactory.createPodStreamRequest() lub pliku ImaSdkFactory.createPodVodStreamRequest(). Te metody wymagają kodu sieci, a createPodStreamRequest 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

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że go utworzyć Twój manipulator pliku manifestu lub zewnętrzny partner obsługujący bloki reklamowe.

  • 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 podcastu 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 pod-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 Pod Serving. 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()videoPlayer.play().

Znakomicie. Teraz żądasz i wyświetlasz reklamy w strumieniu z podwójnym wstawianiem reklam za pomocą pakietu IMA DAI SDK. Aby zobaczyć inne przykłady korzystania z Android SDK, zapoznaj się z przykładami na GitHubie.