Livestreams abspielen, die bei der Google Cloud Video Stitcher API registriert sind
In dieser Anleitung wird beschrieben, wie Sie mit dem IMA DAI SDK für Android einen Livestream für ein Ereignis anfordern und abspielen, das bei der Google Cloud Video Stitcher API registriert ist. Außerdem erfahren Sie, wie Sie während der Wiedergabe eine Werbeunterbrechung einfügen.
Dieser Leitfaden erweitert das grundlegende Beispiel aus dem Startleitfaden für die dynamische Anzeigenbereitstellung mit IMA.
Informationen zur Integration in andere Plattformen oder zur Verwendung der clientseitigen IMA SDKs finden Sie unter Interactive Media Ads SDKs.
Google Cloud-Projekt einrichten
Geben Sie die folgenden Variablen zur Verwendung im IMA SDK ein:
- Standort
- Die Google Cloud-Region, in der die Live-Konfiguration erstellt wurde:
LOCATION
- Projektnummer
- Die Google Cloud-Projektnummer, für die die Video Stitcher API verwendet wird:
PROJECT_NUMBER
- OAuth-Token
Das kurzlebige OAuth-Token eines Dienstkontos mit der Video Stitcher-Nutzerrolle:
OAUTH_TOKEN
Weitere Informationen finden Sie unter Kurzlebige Anmeldedaten für Dienstkonten erstellen. Das OAuth-Token kann für mehrere Anfragen wiederverwendet werden, solange es nicht abgelaufen ist.
- Netzwerkcode
Der Ad Manager-Netzwerkcode für die Anzeigenanfragen:
NETWORK_CODE
- Live-Konfigurations-ID
- Die Live-Konfigurations-ID, die Sie beim Erstellen der Livestream-Veranstaltung angegeben haben:
LIVE_CONFIG_ID
- Benutzerdefinierter Asset-Schlüssel
- Der benutzerdefinierte Asset-Schlüssel in Ad Manager, der beim Erstellen einer Konfiguration für ein Livestream-Ereignis mit der Video Stitcher API generiert wird:
CUSTOM_ASSET_KEY
Einfaches Beispiel herunterladen
Laden Sie das IMA Android DAI Basic Example herunter und führen Sie es aus. Klicke im Videoplayer auf die Schaltfläche Wiedergabe, um den Kurzfilm „Tears of Steel“ zu starten. Er enthält alle 30 Sekunden Werbeunterbrechungen.
Livestream anfordern
Wenn Sie den Beispielstream durch Ihren Livestream ersetzen möchten, müssen Sie mit ImaSdkFactory.createVideoStitcherLiveStreamRequest()
eine Anzeigensitzung mit Google Ad Manager erstellen. Über die Google Ad Manager-Benutzeroberfläche können Sie die generierten Sitzungen für die dynamische Anzeigenbereitstellung suchen, um sie zu Monitoring- und Fehlerbehebungszwecken zu nutzen.
Im vorhandenen Beispiel gibt es bedingte Anweisungen zum Anfordern eines VOD-Streams oder eines Livestreams. Damit sie mit der Google Cloud Video Stitcher API funktioniert, müssen Sie einen neuen Pfad hinzufügen, um einen mit ImaSdkFactory.createVideoStitcherLiveStreamRequest()
erstellten StreamRequest
zurückzugeben.
Beispiel:
videoplayerapp/SampleAdsWrapper.java
private sdkFactory ImaSdkFactory;
...
private enum ContentType {
LIVE_HLS,
LIVE_DASH,
// Add a Live HLS Google Cloud type.
LIVE_HLS_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.LIVE_HLS_GOOGLE_CLOUD;
...
@Nullable
private StreamRequest buildStreamRequest() {
StreamRequest request;
switch (CONTENT_TYPE) {
...
case LIVE_HLS_GOOGLE_CLOUD:
// Live HLS stream generated by the Google Cloud Video Stitcher API.
request = sdkFactory.createVideoStitcherLiveStreamRequest(
"NETWORK_CODE",
"CUSTOM_ASSET_KEY",
"LIVE_CONFIG_ID",
"LOCATION",
"PROJECT_NUMBER",
"OAUTH_TOKEN"
);
request.setFormat(StreamFormat.HLS);
return request;
}
// Content type not selected.
return null;
}
...
Aktualisiere die App, um deinen benutzerdefinierten Livestream anzufordern und abzuspielen.
Optional: Optionen für Streamingsitzungen hinzufügen
Passen Sie die Streamanfrage an, indem Sie Sitzungsoptionen hinzufügen, um die standardmäßige Konfiguration der Cloud Video Stitcher API mit StreamRequest.setVideoStitcherSessionOptions()
zu überschreiben.
Wenn Sie eine unbekannte Option angeben, gibt die Cloud Video Stitcher API den HTTP-Fehler 400 zurück. Weitere Informationen finden Sie in der Anleitung zur Fehlerbehebung.
Sie können beispielsweise die Manifestoptionen mit dem folgenden Code-Snippet überschreiben, das zwei Streammanifeste mit Wiedergaben anfordert, die von der niedrigsten zur höchsten Bitrate sortiert sind.
public void requestAndPlayAds() {
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
StreamRequest streamRequest = buildStreamRequest();
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);
}
Werbeunterbrechung einfügen
Über die Google Cloud Video Stitcher API werden für jede Werbeunterbrechung Anzeigen eingefügt, die aus dem Anzeigen-Tag abgerufen werden. Werbeunterbrechungen werden im Manifest durch Anzeigenmarkierungen gekennzeichnet. Anzeigenmarkierungen werden vom Livestreamencoder eingefügt.
Wenn Sie Ihren eigenen Livestream verwenden, müssen Sie die Anzeigenmarkierung einfügen. Weitere Informationen zu den unterstützten HLS- und DASH-Anzeigenmarkierungen finden Sie in der Dokumentation zu Anzeigenmarkierungen.
Wenn Sie einen Livestream mit der Google Cloud Livestream API erstellt haben, fügen Sie ein Kanalereignis für eine Werbeunterbrechung ein.
Die Anzeige wird sofort nach dem Einfügen der Werbeunterbrechung wiedergegeben.
Bereinigen
Nachdem Sie nun einen Livestream mit der Google Cloud Video Stitcher API gehostet und über das IMA DAI SDK für Android angefordert haben, müssen Sie alle Bereitstellungsressourcen bereinigen.
Folgen Sie der Anleitung zur Livestream-Bereinigung, um nicht benötigte Ressourcen und Assets zu entfernen.