VOD-Streams abspielen, die bei der Google Cloud Video Stitcher API registriert sind
In diesem Leitfaden wird gezeigt, wie du mit dem IMA DAI SDK für Android eine Google Cloud VOD-Stream-Sitzung anforderst und wiedergibst.
In diesem Leitfaden wird das einfache Beispiel aus dem Einstiegsleitfaden für die dynamische Anzeigenbereitstellung in IMA erweitert.
Informationen zur Integration mit anderen Plattformen oder zur Verwendung des IMA clientseitige SDKs siehe Interactive Media Ads SDKs.
Google Cloud-Projekt einrichten
Gib die folgenden Variablen für die Verwendung im IMA SDK ein:
- Standort
- Die Google Cloud-Region, in der deine VOD-Konfiguration erstellt wurde:
LOCATION
- Projektnummer
- Die Google Cloud-Projektnummer, in der die Video Stitcher API verwendet wird:
PROJECT_NUMBER
- OAuth-Token
Das kurzlebige OAuth-Token eines Dienstkontos mit der Nutzerrolle „Video Stitcher“:
OAUTH_TOKEN
Weitere Informationen zum Erstellen kurzlebiger OAuth-Tokens Das OAuth-Token kann für mehrere Anfragen wiederverwendet werden, solange es nicht abgelaufen ist.
- Netzwerkcode
Der Ad Manager-Netzwerkcode zum Anfordern von Anzeigen:
NETWORK_CODE
- VOD-Konfigurations-ID
Die VOD-Konfigurations-ID für den VOD-Stream:
VOD_CONFIG_ID
Weitere Informationen zum Erstellen der VOD-Konfigurations-ID finden Sie unter Cloud Stitching – Konfigurationsanleitung für VOD-Inhalte
Einfaches Beispiel einrichten
Rufen Sie die GitHub-Release-Seite für IMA Android DAI auf und laden Sie das einfache Beispiel herunter. Dieses Beispiel ist eine Android-App, die Sie in Android öffnen können Studio zu Testzwecken verwenden.
Wenn du mit einem VOD-Stream testen möchtest, der nicht von Cloud Video Stitcher stammt, setze die Konstante CONTENT_TYPE
in SampleAdsWrapper.java auf ContentType.VOD_HLS
oder ContentType.VOD_DASH
, um die entsprechende CMS-ID und Video-ID für den Stream zu laden. Legen Sie dann in SampleVideoPlayer.java currentlyPlayingStreamType
auf
entweder CONTENT_TYPE_HLS
oder CONTENT_TYPE_DASH
, um den
des ausgewählten Streamtyps.
Wenn alles einwandfrei funktioniert, klicke im Videoplayer auf die Wiedergabeschaltfläche. beginnt den Kurzfilm „Tears of Steel“ mit einer Pre-Roll-Werbeunterbrechung.
VOD-Stream anfordern
Um den Beispielstream durch Ihren VOD-Stream aus Anzeigen-Stitching zu ersetzen, verwenden Sie
sdkFactory.createVideoStitcherVodStreamRequest()
um eine Anzeigensitzung
mit Google Ad Manager zu erstellen. Sie können die Google Ads-
Manager-UI zum Auffinden der generierten Sitzungen für die dynamische Anzeigenbereitstellung für Monitoring und Fehlerbehebung
sdkFactory.createVideoStitcherVodStreamRequest()
ist im IMA DAI SDK Version 3.30.0 oder höher verfügbar.
Wenn du sdkFactory.createVideoStitcherVodStreamRequest()
mit dem Parameter vodConfigId
verwenden möchtest, ist das IMA DAI SDK Version 3.33.0 oder höher erforderlich.
Im vorhandenen Beispiel gibt es bedingte Anweisungen zum Anfordern eines VOD-Streams oder eines Livestreams. Für die Verwendung mit dem Google Cloud Video Stitcher
API verwenden, müssen Sie einen neuen Pfad hinzufügen, um einen StreamRequest
zurückzugeben, der mit
sdkFactory.createVideoStitcherVodStreamRequest()
.
Beispiel:
videoplayerapp/SampleAdsWrapper.java
...
private enum ContentType {
LIVE_HLS,
LIVE_DASH,
// Add a VOD HLS Google Cloud type. DASH streams are also supported.
VOD_HLS_GOOGLE_CLOUD,
VOD_DASH_GOOGLE_CLOUD,
VOD_HLS,
VOD_DASH,
}
// Set CONTENT_TYPE to the associated enum for the
// stream type you would like to test.
private static final ContentType CONTENT_TYPE =
ContentType.VOD_HLS_GOOGLE_CLOUD;
...
@Nullable
private StreamRequest buildStreamRequest() {
StreamRequest request;
switch (CONTENT_TYPE) {
...
case VOD_HLS_GOOGLE_CLOUD:
case VOD_DASH_GOOGLE_CLOUD:
// VOD HLS or DASH stream generated by the
// Google Cloud Video Stitcher API.
request = sdkFactory.createVideoStitcherVodStreamRequest(
"NETWORK_CODE",
"LOCATION",
"PROJECT_NUMBER",
"OAUTH_TOKEN",
"VOD_CONFIG_ID"
);
if (CONTENT_TYPE == ContentType.VOD_HLS_GOOGLE_CLOUD) {
request.setFormat(StreamFormat.HLS);
} else {
request.setFormat(StreamFormat.DASH);
}
return request;
}
// Content type not selected.
return null;
}
...
Lade die App neu, um deinen benutzerdefinierten VOD-Stream anzufordern und abzuspielen.
Optional: Optionen für Streamingsitzungen hinzufügen
Passen Sie Ihre Streamanfrage an, indem Sie Sitzungsoptionen hinzufügen, um die Standardeinstellung zu überschreiben
Konfiguration der Cloud Video Stitcher API mithilfe von
StreamRequest.setVideoStitcherSessionOptions()
Wenn du eine nicht erkannte Option angibst, antwortet die Cloud Video Stitcher API mit einem HTTP-Fehler 400. Weitere Informationen finden Sie in der Anleitung zur Fehlerbehebung.
Beispielsweise können Sie den Parameter Manifestoptionen durch das folgende Code-Snippet, das zwei Streammanifeste mit Wiedergaben werden von der niedrigsten zur höchsten Bitrate sortiert.
public void requestAndPlayAds() {
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
StreamRequest streamRequest = buildStreamRequest();
// The following session options are examples. Use session options
// that are compatible with your video stream.
Map<String, Object> sessionOptions = Map.of(
"manifestOptions", Map.of(
"includeRenditions", List.of(
Map.of(
"bitrateBps", 3000, "codecs",
"hvc1.1.4.L126.B0, mp4a.40.2"),
Map.of(
"bitrateBps", 2000,
"codecs", "avc1.64001f, mp4a.40.2")
),
"bitrateOrder", "ascending"
)
);
/* sessionOptions JSON structure.
* {
* "manifestOptions": {
* "includeRenditions": [
* {"bitrateBps": 3000, "codecs": "hvc1.1.4.L126.B0, mp4a.40.2"},
* {"bitrateBps": 2000, "codecs": "avc1.64001f, mp4a.40.2"},
* ],
* "bitrateOrder": "ascending"
* }
* };
*/
streamRequest.setVideoStitcherSessionOptions(sessionOptions);
adsLoader.requestStream(streamRequest);
}
Bereinigen
Nachdem du nun erfolgreich einen VOD-Stream gehostet hast, über die Google Cloud Video Stitcher API und über das IMA DAI SDK angefordert. für Android ist es wichtig, alle bereitgestellten Ressourcen.
Folge der Anleitung unter VOD-Bereinigung, um alle nicht benötigten Ressourcen und Assets zu entfernen.