IMA SDK für die dynamische Anzeigenbereitstellung einrichten

Mit den IMA SDKs lassen sich Multimedia-Anzeigen ganz einfach in Ihre Websites und Apps einbinden. Mit IMA SDKs können Anzeigen von jedem VAST-kompatiblen Ad-Server angefordert und die Anzeigenwiedergabe in Ihren Apps verwaltet werden. Mit IMA DAI SDKs senden Apps eine Streamanfrage für Anzeigen- und Contentvideos – entweder VOD- oder Liveinhalte. Das SDK gibt dann einen kombinierten Videostream zurück, sodass Sie das Umschalten zwischen Anzeigen- und Inhaltsvideo in Ihrer App nicht verwalten müssen.

Wählen Sie die DAI-Lösung aus, die Sie interessiert

Pod-Auslieferung mit dynamischer Anzeigenbereitstellung

Mit den IMA SDKs lassen sich Multimedia-Anzeigen ganz einfach in Ihre Websites und Apps einbinden. Mit IMA SDKs können Anzeigen von jedem VAST-kompatiblen Ad-Server angefordert und die Anzeigenwiedergabe in Ihren Apps verwaltet werden. Mit IMA DAI SDKs senden Apps eine Streamanfrage für Anzeigen- und Contentvideos – entweder VOD- oder Liveinhalte. Das SDK gibt dann einen kombinierten Videostream zurück, sodass Sie das Umschalten zwischen Anzeigen- und Inhaltsvideo in Ihrer App nicht verwalten müssen.

In dieser Anleitung wird gezeigt, wie Sie einen Stream mit Pod-Auslieferung mit dynamischer Anzeigenbereitstellung mit dem IMA DAI SDK und einem Videoplayer für die Wiedergabe von Live- und VOD-Streams abspielen. Wenn Sie sich eine vollständige Beispielintegration ansehen oder ihr folgen möchten, laden Sie das Beispiel für die Bereitstellung von Pods herunter.

Pod-Auslieferung mit dynamischer Anzeigenbereitstellung – Übersicht

  • StreamRequest: Ein Objekt, das eine Streamanfrage an die Werbeserver von Google definiert. Muss entweder mit ImaSdkFactory.createPodStreamRequest() oder ImaSdkFactory.createPodVodStreamRequest() erstellt werden, um die Pod-Auslieferung zu aktivieren. Für diese Methoden ist ein Network Code erforderlich. Für createPodStreamRequest ist außerdem ein Custom Asset Key und ein optionaler API-Schlüssel erforderlich. Beide enthalten weitere optionale Parameter.

  • StreamManager: Ein Objekt, das die Kommunikation zwischen dem Videostream und dem IMA DAI SDK übernimmt, z. B. das Senden von Tracking-Pings und das Weiterleiten von Streamereignissen an den Publisher.

Vorbereitung

Variablen für die Pod-Auslieferung einrichten

Alle Änderungen, die für die Pod-Auslieferung erforderlich sind, werden in SampleAdsWrapper.java vorgenommen. Im ersten Schritt müssen Sie die konstanten Variablen aktualisieren.

Hier sind die Konstanten für Ad-Pod-Streamanfragen, die hinzugefügt werden müssen:

  • STREAM_URL: Wird nur für Livestreams verwendet: Die Videostream-URL, die von Ihrem Manifest-Manipulator oder Drittanbieterpartner über die Pod-Auslieferung bereitgestellt wird. Sie sollten die vom IMA DAI SDK bereitgestellte Stream-ID einfügen müssen, bevor Sie eine Anfrage senden. In diesem Fall enthält die Stream-URL einen Platzhalter, "[[STREAMID]]", der vor dem Senden einer Anfrage durch die Stream-ID ersetzt wird.

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

  • CUSTOM_ASSET_KEY: Wird nur für Livestreams verwendet: Der benutzerdefinierte Asset-Schlüssel, mit dem Ihr Pod-Serving-Ereignis in Ad Manager 360 identifiziert wird. Sie kann von Ihrer Manifestbearbeitung oder einem Drittanbieter-Partner für die Pod-Auslieferung erstellt werden.

  • API_KEY: Wird nur für Livestreams verwendet: Ein optionaler API-Schlüssel, der erforderlich sein kann, um eine Stream-ID aus dem IMA DAI SDK abzurufen.

Das Android-DAI-BasicExample ist für die Wiedergabe verschiedener Streamtypen konzipiert. Für die Pod-Auslieferung ist es jedoch so eingerichtet, dass nur ein einzelner Stream wiedergegeben wird. Ändern Sie den Variablenabschnitt des Beispiels so:

/** 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;

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

Bereitstellung von Pods in Livestreams

Die Methode buildStreamRequest() wurde entfernt, die zum Wechseln zwischen verschiedenen Streamtypen verwendet wurde. Ändern Sie dann requestAndPlayAds(), um ImaSdkFactory.createPodStreamRequest() aufzurufen und eine Anzeigenanfrage für die Live-Pod-Bereitstellung zu erstellen.

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

Pod-Auslieferung von VOD-Streams

Die Methode buildStreamRequest() wurde entfernt, die zum Wechseln zwischen verschiedenen Streamtypen verwendet wurde. Ändern Sie dann requestAndPlayAds(), um ImaSdkFactory.createPodVodStreamRequest() aufzurufen und eine Anzeigenanfrage für die VOD-Pod-Bereitstellung zu erstellen.

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

Nachdem Sie die Streamanfrageinstanz erstellt haben, fordern Sie den Stream mit AdsLoader.requestStream() an:

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

Stream-URL bearbeiten und festlegen

Bereitstellung von Pods in Livestreams

Rufen Sie die Methode StreamManager.getStreamId() auf, um die Stream-ID abzurufen. Dies muss in STEAM_URL eingefügt werden und "[[STREAMID]]" ersetzen. Nachdem Sie diese Änderung vorgenommen haben, legen Sie die neue Stream-URL mit der Methode videoPlayer.setStreamUrl() fest und rufen Sie die Methode videoPlayer.play() auf, um die Streamwiedergabe zu starten.

// 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();

Pod-Auslieferung von VOD-Streams

  1. Rufen Sie die Methode StreamManager.getStreamId() auf, um die Stream-ID abzurufen.
  2. Fordern Sie eine Stream-URL von Ihrem Videotechnologiepartner an.
  3. Nachdem Sie die URL von Ihrem VTP erhalten haben, rufen Sie die Methode StreamManager.loadThirdPartyStream() mit der URL auf, um den Stream zu laden. Fügen Sie auch alle Untertitel hinzu, die Ihr VTP zurückgibt.
// 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);

Bei VOD-Pod-Auslieferungsanfragen ruft IMA den VideoStreamPlayer.loadUrl()-Callback auf, wenn der Stream geladen wurde. Fügen Sie die Aufrufe videoPlayer.setStreamUrl() und videoPlayer.play() in den VideoStreamPlayer.loadUrl()-Callback ein, um die Streamwiedergabe zu starten:

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

Assets für die dynamische Anzeigenbereitstellung mit IMA bereinigen

Wenn Sie Anzeigen in einem Stream mit Pod-Bereitstellung mit dem IMA DAI SDK erfolgreich angefordert und ausgeliefert haben, empfehlen wir, alle Ressourcen nach Abschluss der Pod-Bereitstellungssitzung zu bereinigen. Rufen Sie StreamManager.destroy() auf, um die Streamwiedergabe zu beenden, das gesamte Ad-Tracking zu stoppen und alle geladenen Stream-Assets freizugeben.

Weitere Beispiele für die Verwendung des Android SDK finden Sie in den Beispielen auf GitHub.