Mit IMA SDKs können Sie 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 stellen Apps eine Streamanfrage für Anzeigen- und Contentvideos – entweder VOD oder Livecontent. Das SDK gibt dann einen kombinierten Videostream zurück, sodass Sie in Ihrer App nicht zwischen Anzeigen- und Contentvideo wechseln müssen.
Wählen Sie die gewünschte Lösung für die dynamische Anzeigenbereitstellung aus.
Dynamische Anzeigenbereitstellung für die Pod-Auslieferung
Mit IMA SDKs können Sie 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 stellen Apps eine Streamanfrage für Anzeigen- und Contentvideos – entweder VOD oder Livecontent. Das SDK gibt dann einen kombinierten Videostream zurück, sodass Sie in Ihrer App nicht zwischen Anzeigen- und Contentvideo wechseln müssen.
In diesem Leitfaden wird erläutert, wie Sie mit dem IMA Android DAI SDK einen Stream zur Pod-Auslieferung mit dynamischer Anzeigenbereitstellung mit einem einfachen Videoplayer für die Wiedergabe von Live- und VOD-Streams wiedergeben. Wenn Sie sich eine fertige Beispielintegration ansehen oder mit ihr arbeiten möchten, laden Sie das Beispiel für die Pod-Bereitstellung herunter.
Pod-Auslieferung mit IMA3-Anzeigen – Übersicht
StreamRequest
: Ein Objekt, das eine Streamanfrage an die Werbeserver von Google definiert. Muss mitImaSdkFactory.createPodStreamRequest()
oderImaSdkFactory.createPodVodStreamRequest()
erstellt werden, um die Pod-Bereitstellung zu aktivieren. Diese Methoden erfordern einen Netzwerkcode. FürcreatePodStreamRequest
sind außerdem ein benutzerdefinierter Asset-Schlüssel 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 verwaltet, z. B. das Auslösen von Tracking-Pings und das Weiterleiten von Streamereignissen an den Publisher.
Voraussetzungen
Eine Android-App, in der das IMA DAI SDK bereits für die Wiedergabe von Videostreams mit Anzeigen für die dynamische Anzeigenbereitstellung verwendet wird Wenn Sie noch keine solche App haben, empfehlen wir Ihnen als Ausgangspunkt das BasicExample für die Android-dynamische Anzeigenbereitstellung. Das BasicExample enthält die Codebasis, auf die in diesem Leitfaden verwiesen wird.
Ihre App muss ID3-Ereignisse mit
VideoStreamPlayerCallback.onUserTextReceived()
senden, damit die IMA-Anzeigenbereitstellung funktioniert. Beispiel für ein Code-Snippet für die dynamische Anzeigenbereitstellung mit Komplettservice
Variablen für die Pod-Auslieferung einrichten
Alle für die Pod-Auslieferung erforderlichen Änderungen werden in SampleAdsWrapper.java vorgenommen. Der erste Schritt besteht darin, die konstanten Variablen zu aktualisieren.
Im Folgenden sind die Konstanten für Anzeigen-Pod-Stream-Anfragen aufgeführt, die hinzugefügt werden sollen:
STREAM_URL
: Wird nur für Livestreams verwendet: Das ist die Videostream-URL, die von Ihrem Manifestbearbeitungsprogramm oder einem Drittanbieter für die Pod-Bereitstellung bereitgestellt wird. Sie sollten die Stream-ID aus dem IMA DAI SDK einfügen, bevor Sie eine Anfrage stellen. In diesem Fall enthält die Stream-URL den Platzhalter"[[STREAMID]]"
, der durch die Stream-ID ersetzt wird, bevor eine Anfrage gestellt wird.NETWORK_CODE
: Das ist der Netzwerkcode für Ihr Ad Manager 360-Konto.CUSTOM_ASSET_KEY
: Wird nur für Livestreams verwendet: Das ist der benutzerdefinierte Asset-Schlüssel, der Ihr Pod-Auslieferungsereignis in Ad Manager 360 kennzeichnet. Dies kann von Ihrem Manifestbearbeitungsprogramm oder einem Drittanbieter-Pod-Bereitstellungspartner erstellt werden.API_KEY
: Wird nur für Livestreams verwendet: Das ist ein optionaler API-Schlüssel, der erforderlich sein kann, um eine Stream-ID aus dem IMA DAI SDK abzurufen.
Das BasicExample der Android-Anzeigenbereitstellung ist für die Wiedergabe verschiedener Streamtypen vorgesehen. Für die Pod-Bereitstellung ist es jedoch so eingerichtet, dass nur ein einzelner Stream wiedergegeben wird. Ändern Sie den Variablenabschnitt des Beispiels so:
/** 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 {
...
Anfrage für einen Live- oder VOD-Pod-Stream erstellen, um die Pod-Bereitstellung zu aktivieren
Bereitstellung von Livestream-Pods
Entfernen Sie die Methode buildStreamRequest()
, mit der zwischen der Erstellung einer Vielzahl von Streamtypen gewechselt wurde. Ändern Sie dann requestAndPlayAds()
in ImaSdkFactory.createPodStreamRequest()
, um eine Anzeigenanfrage für die Live-Pod-Auslieferung zu erstellen. Fordern Sie schließlich den Stream 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-Bereitstellung für VOD-Streams
Entfernen Sie die Methode buildStreamRequest()
, mit der zwischen der Erstellung einer Vielzahl von Streamtypen gewechselt wurde. Ändern Sie dann requestAndPlayAds()
in den Aufruf von ImaSdkFactory.createPodVodStreamRequest()
, um eine Anzeigenanfrage für die VOD-Pod-Auslieferung zu erstellen. Fordern Sie schließlich den Stream 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
Bereitstellung von Livestream-Pods
Rufe StreamManager.getStreamId()
auf, um die Stream-ID zu erhalten. Dieses muss dann in die STEAM_URL
eingefügt werden, 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-Bereitstellung für VOD-Streams
Rufe StreamManager.getStreamId()
auf, um die Stream-ID zu erhalten. Fordern Sie dann eine Stream-URL von Ihrem Videotechnologiepartner (VTP) an. Rufen Sie dann StreamManager.loadThirdPartyStream()
auf, damit IMA die Stream-URL und alle von Ihrem TVP zurückgegebenen Untertitel lädt.
@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()
. Sie können also alle Aufrufe von videoPlayer.setStreamUrl()
und videoPlayer.play()
daraus entfernen.
Fertig! Sie fordern jetzt mit dem IMA Android DAI SDK Anzeigen in einem Pod-Auslieferungsstream an. Weitere Beispiele für das verwendete Android SDK finden Sie in den Beispielen auf GitHub.