IMA DAI SDK für Android verwenden

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.

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.