Konfigurowanie pakietu IMA SDK na potrzeby DAI

Pakiety IMA SDK ułatwiają integrację reklam multimedialnych z witrynami i aplikacjami. Pakiety IMA SDK mogą wysyłać żądania reklam do dowolnego serwera reklam zgodnego z VAST i zarządzać odtwarzaniem reklam w aplikacjach. Za pomocą pakietów IMA DAI SDK aplikacje wysyłają żądanie strumienia reklamy i treści wideo – VOD lub treści na żywo. Pakiet SDK zwraca wtedy połączony strumień wideo, dzięki czemu nie musisz zarządzać przełączaniem między reklamą a treściami wideo 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ą wysyłać żądania reklam do dowolnego serwera reklam zgodnego z VAST i zarządzać odtwarzaniem reklam w aplikacjach. Za pomocą pakietów IMA DAI SDK aplikacje wysyłają żądanie strumienia reklamy i treści wideo – VOD lub treści na żywo. Pakiet SDK zwraca wtedy połączony strumień wideo, dzięki czemu nie musisz zarządzać przełączaniem między reklamą a treściami wideo w aplikacji.

Z tego przewodnika dowiesz się, jak odtwarzać strumień wyświetlany w ramach dynamicznego wstawiania reklam za pomocą pakietu IMA DAI SDK w odtwarzaczu wideo do odtwarzania strumieni na żywo i VOD. Aby wyświetlić lub śledzić ukończoną przykładową integrację, pobierz przykład wyświetlania reklam w podach.

Omówienie wyświetlania bloków reklamowych w ramach dynamicznego wstawiania reklam w pakiecie IMA

  • StreamRequest: obiekt, który definiuje żądanie strumienia do serwerów reklamowych Google. Aby włączyć obsługę bloków reklamowych, musisz utworzyć plik manifestu za pomocą ImaSdkFactory.createPodStreamRequest() lub ImaSdkFactory.createPodVodStreamRequest(). Te metody wymagają kodu sieci, a metoda createPodStreamRequest wymaga też niestandardowego klucza zasobu i opcjonalnego klucza API. Obie zawierają inne parametry opcjonalne.

  • StreamManager: obiekt, który obsługuje komunikację między strumieniem wideo a pakietem IMA DAI SDK, np. wysyła pingi śledzące i przekazuje wydawcy zdarzenia strumienia.

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 bloku reklamowego, które należy dodać:

  • STREAM_URL: Używany tylko w przypadku transmisji na żywo – adres URL strumienia wideo podany przez manipulator manifestu lub partnera zewnętrznego korzystającego z wyświetlania bloków reklamowych. Przed wysłaniem żądania musisz wstawić identyfikator strumienia podany 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 na koncie Ad Managera 360.

  • CUSTOM_ASSET_KEY: używany tylko w przypadku transmisji na żywo – niestandardowy klucz zasobu, który identyfikuje zdarzenie wyświetlania pakietu reklam w usłudze Ad Manager 360. Może go utworzyć manipulator pliku manifestu lub zewnętrzny partner w zakresie wyświetlania bloków reklamowych.

  • API_KEY: Używany tylko w przypadku transmisji na żywo – opcjonalny klucz API, który może być wymagany do pobrania identyfikatora strumienia z pakietu IMA DAI SDK.

Przykład Android DAI BasicExample 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ę zmiennych w przykładzie, aby pasowała do tej:

/** This class implements IMA to add pod ad-serving support to SampleVideoPlayer */
@SuppressLint("UnsafeOptInUsageError")
/* @SuppressLint is needed for new media3 APIs. */
public class SampleAdsWrapper
    implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {

  // Set up the pod serving variables.
  private static final String NETWORK_CODE = "";
  private static final String CUSTOM_ASSET_KEY = "";
  private static final String API_KEY = "";
  private static final String STREAM_URL = "";
  private static final StreamFormat STREAM_FORMAT = StreamFormat.HLS;

Tworzenie żądania strumienia bloków reklamowych w przypadku transmisji na żywo lub VOD w celu włączenia wyświetlania bloków reklamowych

Wyświetlanie reklam w transmisjach na żywo

Usuń metodę buildStreamRequest(), która była używana do przełączania się między różnymi typami strumieni. Następnie zmodyfikuj requestAndPlayAds(), aby wywołać ImaSdkFactory.createPodStreamRequest() i utworzyć żądanie reklamy Live Pod Serving.

// Live pod stream request.
request = sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);

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 zmodyfikuj requestAndPlayAds(), aby wywołać ImaSdkFactory.createPodVodStreamRequest() i utworzyć żądanie reklamy w ramach usługi VOD Pod Serving.

// VOD pod stream request.
request = sdkFactory.createPodVodStreamRequest(NETWORK_CODE);

Po utworzeniu instancji żądania strumienia poproś o strumień za pomocą tego kodu:AdsLoader.requestStream()

request.setFormat(STREAM_FORMAT);
adsLoader.requestStream(request);

Edytowanie i ustawianie adresu URL strumienia

Wyświetlanie reklam w transmisjach na żywo

Aby uzyskać identyfikator strumienia danych, wywołaj metodę StreamManager.getStreamId(). Należy go wstawić do STEAM_URL, zastępując "[[STREAMID]]". Po wprowadzeniu tej zmiany ustaw nowy adres URL strumienia za pomocą metody videoPlayer.setStreamUrl() i wywołaj metodę videoPlayer.play(), aby rozpocząć odtwarzanie strumienia.

// Play the live pod stream.
streamID = streamManager.getStreamId();
String liveStreamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
// Call videoPlayer.play() here, because IMA doesn't call the VideoStreamPlayer.loadUrl()
// function for livestreams.
videoPlayer.setStreamUrl(liveStreamUrl);
videoPlayer.play();

Wyświetlanie bloków reklamowych w strumieniu VOD

  1. Aby uzyskać identyfikator strumienia danych, wywołaj metodę StreamManager.getStreamId().
  2. Poproś partnera oferującego technologie wideo o adres URL strumienia.
  3. Po otrzymaniu adresu URL od dostawcy platformy wideo wywołaj metodę StreamManager.loadThirdPartyStream() z adresem URL, aby wczytać strumień, oraz wszystkie napisy zwrócone przez dostawcę platformy wideo.
// Play the VOD pod stream.
streamID = streamManager.getStreamId();
String vodStreamUrl = "";
// Refer to your Video Tech Partner (VTP) or video stitching guide to fetch the stream URL
// and the subtitles for a the ad stitched VOD stream.

// In the following commented out code, 'vtpInterface' is a place holder
// for your own video technology partner (VTP) API calls.
// vodStreamUrl = vtpInterface.requestStreamURL(streamID);
List<Map<String, String>> subtitles = new ArrayList<>();
streamManager.loadThirdPartyStream(vodStreamUrl, subtitles);

W przypadku żądań wyświetlania bloków reklam VOD pakiet IMA SDK wywołuje funkcję zwrotną VideoStreamPlayer.loadUrl() po wczytaniu strumienia. Aby rozpocząć odtwarzanie strumienia, dodaj wywołania videoPlayer.setStreamUrl()videoPlayer.play() do wywołania zwrotnego VideoStreamPlayer.loadUrl():

private VideoStreamPlayer createVideoStreamPlayer() {
  return new VideoStreamPlayer() {
    @Override
    public void loadUrl(String url, List<HashMap<String, String>> subtitles) {
      // IMA doesn't make calls to VideoStreamPlayer.loadUrl() for pod serving live streams.
      // The following code is for VOD streams.
      videoPlayer.setStreamUrl(url);
      videoPlayer.play();
    }

Czyszczenie zasobów IMA DAI

Gdy skończysz wysyłać żądania reklam i wyświetlać je w strumieniu z wyświetlaniem bloków reklamowych za pomocą pakietu IMA DAI SDK, zalecamy usunięcie wszystkich zasobów po zakończeniu sesji wyświetlania bloków reklamowych. Wywołaj funkcję StreamManager.destroy(), aby zatrzymać odtwarzanie strumienia, śledzenie reklam i zwolnić wszystkie wczytane komponenty strumienia.

Inne przykłady użycia pakietu SDK na Androida znajdziesz w przykładach w GitHubie.