IMA DAI SDK auf Android-Geräten verwenden

VOD-Streams abspielen, die bei der Google Cloud Video Stitcher API registriert sind

In dieser Anleitung 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 Einbindung in andere Plattformen oder zur Verwendung der clientseitigen IMA SDKs finden Sie unter Interactive Media Ads SDKs.

Wenn Sie sich eine fertige Beispielintegration ansehen oder nachvollziehen möchten, laden Sie das Beispiel für den Cloud-Video-Stitcher herunter.

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 findest du im Leitfaden zum Erstellen einer VOD-Konfiguration für die Cloud-Stitching-Funktion.

Einfaches Beispiel einrichten

Rufen Sie die GitHub-Releaseseite für IMA Android DAI auf und laden Sie das einfache Beispiel herunter. Dieses Beispiel ist eine Android-App, die Sie zu Testzwecken in Android Studio öffnen können.

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. Lege dann in SampleVideoPlayer.java für currentlyPlayingStreamType entweder CONTENT_TYPE_HLS oder CONTENT_TYPE_DASH fest, um die Metadaten des ausgewählten Streamtyps richtig zu verarbeiten.

Wenn alles richtig funktioniert, wird durch Klicken auf die Wiedergabeschaltfläche im Videoplayer der Kurzfilm „Tears of Steel“ mit einer Pre-Roll-Werbeunterbrechung gestartet.

VOD-Stream anfordern

Wenn du den Beispielstream durch deinen VOD-Stream mit Anzeigen ersetzen möchtest, verwende sdkFactory.createVideoStitcherVodStreamRequest(), um eine Anzeigensitzung mit Google Ad Manager zu erstellen. Über die Google Ads-Benutzeroberfläche können Sie die generierten dynamischen Anzeigenaufrufe zum Überwachen und Beheben von Fehlern finden.

sdkFactory.createVideoStitcherVodStreamRequest() ist im IMA DAI SDK 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. Damit die Funktion mit der Google Cloud Video Stitcher API funktioniert, musst du einen neuen Pfad hinzufügen, um eine mit sdkFactory.createVideoStitcherVodStreamRequest() erstellte StreamRequest zurückzugeben.

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 die Streamingsitzung hinzufügen

Du kannst deine Streamanfrage anpassen, indem du Sitzungsoptionen hinzufügst, um die Standardkonfiguration der Cloud Video Stitcher API mit StreamRequest.setVideoStitcherSessionOptions() zu überschreiben. 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.

Du kannst die Manifest-Optionen beispielsweise mit dem folgenden Code-Snippet überschreiben. Dabei werden zwei Streammanifeste mit Darstellungen angefordert, die von der niedrigsten bis zur höchsten Bitrate sortiert sind.

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(
      "bitrateOrder", "ascending"
    )
  );

  /* sessionOptions JSON structure.
   * {
   *  "manifestOptions": {
   *    "bitrateOrder": "ascending"
   *  }
   * };
   */

  streamRequest.setVideoStitcherSessionOptions(sessionOptions);
  adsLoader.requestStream(streamRequest);
}

Bereinigen

Nachdem du einen VOD-Stream mit der Google Cloud Video Stitcher API gehostet und über das IMA DAI SDK für Android angefordert hast, solltest du alle Bereitstellungsressourcen bereinigen.

Folge der Anleitung unter VOD-Bereinigung, um alle nicht benötigten Ressourcen und Assets zu entfernen.