Einführung in das IMA DAI SDK

Mit IMA SDKs können Sie Multimedia-Anzeigen ganz einfach in Ihre Websites und Apps einbinden. IMA SDKs können Anzeigen von beliebigen <ph type="x-smartling-placeholder"></ph> VAST-kompatiblen Ad-Server bereitstellen und die Anzeigenwiedergabe in Ihren Apps verwalten. Mit IMA SDKs für die dynamische Anzeigenbereitstellung Streamanfrage für Anzeigen- und Contentvideo (VOD- oder Livecontent) Das SDK gibt dann kombinierten Videostream, sodass Sie nicht zwischen Anzeige und Contentvideo wechseln müssen. in Ihrer App.

Gewünschte Lösung für die dynamische Anzeigenbereitstellung auswählen

<ph type="x-smartling-placeholder"></ph>

Dynamische Anzeigenbereitstellung für die Pod-Auslieferung

Mit IMA SDKs können Sie Multimedia-Anzeigen ganz einfach in Ihre Websites und Apps einbinden. IMA SDKs können Anzeigen von beliebigen <ph type="x-smartling-placeholder"></ph> VAST-kompatiblen Ad-Server bereitstellen und die Anzeigenwiedergabe in Ihren Apps verwalten. Mit IMA SDKs für die dynamische Anzeigenbereitstellung Streamanfrage für Anzeigen- und Contentvideo (VOD- oder Livecontent) Das SDK gibt dann kombinierten Videostream, sodass Sie nicht zwischen Anzeige und Contentvideo wechseln müssen. in Ihrer App.

In dieser Anleitung wird gezeigt, wie Sie einen Pod-Auslieferungsstream für die dynamische Anzeigenbereitstellung mithilfe der dynamischen Anzeigenbereitstellung von IMA wiedergeben. SDK mit einem einfachen Videoplayer für die Wiedergabe von Live- und VOD-Streams Wenn Sie eine abgeschlossene Beispielintegration ansehen oder folgen möchten, laden Sie die Beispiel für die Pod-Auslieferung

Pod-Auslieferung mit der dynamischen Anzeigenbereitstellung von IMA – Übersicht

  • StreamRequest: Ein Objekt, das eine Streamanfrage für die Werbeserver von Google. Muss mit einer der folgenden Methoden erstellt werden: ImaSdkFactory.createPodStreamRequest() oder ImaSdkFactory.createPodVodStreamRequest() um die Pod-Auslieferung zu aktivieren. Für diese Methoden ist ein Netzwerkcode erforderlich. createPodStreamRequest erfordert außerdem einen benutzerdefinierten Asset-Schlüssel und einen Optionaler API-Schlüssel. Beide enthalten weitere optionale Parameter.

  • StreamManager: Ein Objekt, das die Kommunikation zwischen den Videostream und das IMA DAI SDK verwenden, z. B. durch das Auslösen von Tracking-Pings und Stream-Ereignisse an den Publisher weiterleiten.

Vorbereitung

Variablen für die Pod-Auslieferung einrichten

Alle für die Pod-Auslieferung erforderlichen Änderungen werden in SampleAdsWrapper.java vorgenommen. Die besteht der erste Schritt darin, die konstanten Variablen zu aktualisieren.

Dies sind die Konstanten für die Ad-Pod-Stream-Anfragen, die hinzugefügt werden sollen:

  • STREAM_URL: Nur für Livestreams verwendet: Die Videostream-URL, die von Ihre Manifestbearbeitung oder den Drittanbieter mit der Pod-Auslieferung. Er sollte müssen Sie die vom IMA DAI SDK bereitgestellte Stream-ID einfügen, bevor Sie eine Anfrage stellen. In diesem Fall enthält die Stream-URL einen Platzhalter, "[[STREAMID]]", die durch die Stream-ID ersetzt wird, bevor ein

  • NETWORK_CODE: Der Netzwerkcode für Ihr Ad Manager 360-Konto.

  • CUSTOM_ASSET_KEY: Nur für Livestreams verwendet – der benutzerdefinierte Asset-Schlüssel, der das Pod-Auslieferungsereignis in Ad Manager 360 identifiziert. Dies kann erstellt werden, indem Ihren Partner für die Manifestbearbeitung oder den Pod-Auslieferungspartner.

  • API_KEY: Nur für Livestreams verwendet – ein optionaler API-Schlüssel, der erforderlich, um eine Stream-ID aus dem IMA DAI SDK abzurufen.

Das Basisbeispiel für die dynamische Anzeigenbereitstellung in Android ist für die Wiedergabe verschiedener Streams konzipiert Für die Pod-Auslieferung ist jedoch nur die Wiedergabe eines einzelnen Streams vorgesehen. Ändern Sie den Variablenabschnitt des Beispiels so, dass er wie folgt aussieht:

/** 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&amp;network=51636543&amp;event=google-sample" +
          "&amp;pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000" +
          "&amp;seg-host=dai.google.com&amp;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 {

...

Pod-Stream-Anfrage für Live- oder VOD-Streams erstellen, um die Pod-Auslieferung zu aktivieren

Pod-Auslieferung im Livestream

Entfernen Sie die Methode buildStreamRequest(), die verwendet wurde, um zwischen verschiedene Arten von Streams erstellen. Ändern Sie dann requestAndPlayAds() zu Anruf ImaSdkFactory.createPodStreamRequest(), um eine Anzeige für die Live-Pod-Auslieferung zu erstellen Fordern Sie den Stream schließlich mit AdsLoader.requestStream() an.

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);
}

Pod-Auslieferung von VOD-Streams

Entfernen Sie die Methode buildStreamRequest(), die verwendet wurde, um zwischen verschiedene Arten von Streams erstellen. Ändern Sie dann requestAndPlayAds() zu Anruf ImaSdkFactory.createPodVodStreamRequest(), um eine VOD-Pod-Auslieferungsanzeige zu erstellen Fordern Sie den Stream schließlich mit AdsLoader.requestStream() an.

public void requestAndPlayAds() {
  StreamRequest request =
      sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
  request.setFormat(StreamFormat.HLS);

  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  adsLoader.requestStream(request);
}

Stream-URL bearbeiten und festlegen

Pod-Auslieferung im Livestream

Rufe StreamManager.getStreamId() auf, um die Stream-ID abzurufen. Dies muss dann in STEAM_URL eingefügt, wodurch "[[STREAMID]]" ersetzt wird. Nach dieser Änderung kann die neue Stream-URL mit videoPlayer.setStreamUrl() festgelegt werden.

@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();
}

Pod-Auslieferung von VOD-Streams

Rufe StreamManager.getStreamId() auf, um die Stream-ID abzurufen. Fordern Sie dann eine Stream-URL von Ihrem Videotechnologiepartner. Rufen Sie dann StreamManager.loadThirdPartyStream(), damit die Stream-URL von IMA geladen wird, sowie von deinem TVP zurückgegeben.

@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);
}

Wenn die Pod-Auslieferung aktiviert ist, sendet IMA keine Aufrufe an VideoStreamPlayer.loadUrl(), damit Sie alle Anrufe für videoPlayer.setStreamUrl() und videoPlayer.play() davon.

Fertig! Sie fordern jetzt Anzeigen in einem Pod-Auslieferungsstream mit das IMA DAI SDK verwenden. Weitere Beispiele für das verwendete Android SDK: sieh dir die Beispiele auf GitHub