Android で IMA DAI SDK を使用する

Google Cloud Video Stitcher API で登録された VOD ストリームの再生

このガイドでは、IMA DAI SDK for Android を使用して広告をリクエストし、 Google Cloud VOD ストリーム セッション。 再生する方法を説明します。

このガイドでは、IMA DAI のスタートガイドの基本的な例を拡張します。

他のプラットフォームとの統合や IMA クライアントサイド SDK の使用については、Interactive Media Ads SDK をご覧ください。

完成した統合サンプルを確認または確認する場合は、Cloud Video Stitcher の例をダウンロードしてください。

Google Cloud プロジェクトの設定

IMA SDK で使用する次の変数を入力します。

ロケーション
VOD 構成が作成された Google Cloud リージョン: LOCATION
プロジェクト番号
Video Stitcher API を使用する Google Cloud プロジェクト番号: PROJECT_NUMBER
OAuth トークン

Video Stitcher ユーザーロールを持つサービス アカウントの有効期間が短い OAuth トークン:

OAUTH_TOKEN

有効期間が短い OAuth トークンの作成の詳細を確認します。OAuth トークンは、期限が切れていない限り、複数のリクエストで再利用できます。

ネットワーク コード

広告をリクエストするためのアド マネージャー ネットワーク コード: NETWORK_CODE

VOD 構成 ID

VOD ストリームの VOD 構成 ID: VOD_CONFIG_ID

VOD 構成 ID の作成の詳細については、Cloud スティッチングで VOD 構成を作成するガイドをご覧ください。

基本的な例の設定

IMA Android DAI GitHub リリース ページに移動し、基本的な例をダウンロードします。この例は、テスト目的で Android Studio で開くことができる Android アプリです。

Cloud Video Stitcher 以外の VOD ストリームでテストするには、SampleAdsWrapper.java の CONTENT_TYPE 定数を ContentType.VOD_HLS または ContentType.VOD_DASH に設定して、ストリームの適切な CMS ID と 動画 ID を読み込みます。次に、SampleVideoPlayer.java で currentlyPlayingStreamTypeCONTENT_TYPE_HLS または CONTENT_TYPE_DASH に設定して、選択したストリームタイプのメタデータを適切に処理します。

すべてが正常に機能している場合、動画プレーヤーの再生ボタンをクリックすると、プレロール挿入点のあるショート フィルム「Tears of Steel」が開始します。

VOD ストリームのリクエスト

サンプル ストリームを広告合成された VOD ストリームに置き換えるには、sdkFactory.createVideoStitcherVodStreamRequest() を使用して Google アド マネージャーで広告セッションを作成します。Google アド マネージャーの UI を使用して、モニタリングとデバッグのために、生成された DAI セッションを特定できます。

sdkFactory.createVideoStitcherVodStreamRequest() は IMA DAI SDK v3.30.0 以降で使用できます。

vodConfigId パラメータで sdkFactory.createVideoStitcherVodStreamRequest() を使用するには、IMA DAI SDK バージョン 3.33.0 以降が必要です。

既存のサンプルには、VOD ストリームまたはライブ配信をリクエストするための条件ステートメントがあります。Google Cloud Video Stitcher API で機能させるには、sdkFactory.createVideoStitcherVodStreamRequest() を使用して作成された StreamRequest を返す新しいパスを追加する必要があります。

次に例を示します。

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;
  }
  ...

アプリを再読み込みして、カスタム VOD ストリームをリクエストして再生します。

(省略可)ストリーミング セッション オプションを追加する

StreamRequest.setVideoStitcherSessionOptions() を使用して、デフォルトの Cloud Video Stitcher API 構成をオーバーライドするセッション オプションを追加することで、ストリーム リクエストをカスタマイズします。認識されないオプションを指定すると、Cloud Video Stitcher API により HTTP 400 エラーの応答が返されます。詳しくは、トラブルシューティング ガイドをご覧ください。

たとえば、次のコード スニペットを使用してマニフェスト オプションをオーバーライドできます。このコードは、ビットレートを低い順に並べた 2 つのストリーム マニフェストをリクエストします。

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);
}

クリーンアップ

Google Cloud Video Stitcher API を使用して VOD ストリームを正常にホストし、Android 用の IMA DAI SDK を使用してリクエストできたので、サービング リソースをクリーンアップすることが重要です。

VOD のクリーンアップ ガイドに沿って、不要なリソースとアセットを削除します。