VOD アセットに広告を挿入する
このページでは、Video Stitcher API と curl
、PowerShell、またはクライアント ライブラリを使用して、ビデオ オンデマンド(VOD)アセットの再生に広告を挿入する方法について説明します。
始める前に
Video Stitcher API を呼び出す前に、次の手順を行います。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google Cloud プロジェクトを作成または選択します。
-
Google Cloud プロジェクトを作成します。
gcloud projects create PROJECT_ID
PROJECT_ID
は、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_ID
は、実際の Google Cloud プロジェクト名に置き換えます。
-
-
Video Stitcher API を有効にします。
gcloud services enable videostitcher.googleapis.com
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
-
Google アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/videostitcher.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。EMAIL_ADDRESS
は実際のメールアドレスに置き換えます。ROLE
は、個々のロールに置き換えます。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google Cloud プロジェクトを作成または選択します。
-
Google Cloud プロジェクトを作成します。
gcloud projects create PROJECT_ID
PROJECT_ID
は、作成する Google Cloud プロジェクトの名前に置き換えます。 -
作成した Google Cloud プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_ID
は、実際の Google Cloud プロジェクト名に置き換えます。
-
-
Video Stitcher API を有効にします。
gcloud services enable videostitcher.googleapis.com
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
-
Google アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/videostitcher.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。EMAIL_ADDRESS
は実際のメールアドレスに置き換えます。ROLE
は、個々のロールに置き換えます。
- このクイックスタートでは、MPEG-DASH マニフェスト(.mpd)ファイルまたは HTTP Live Streaming(HLS)マニフェスト(.m3u8)ファイルが必要です。コード変換ジョブを作成して、MP4 や MOV などの他のメディア ファイル形式からマニフェスト ファイルを生成できます。
- オプションとして、このクイックスタートではコンテンツ配信ネットワーク(CDN)を使用できます。CDN を構成していない場合は、メディア CDN のクイックスタートの手順に沿って次の変更を加えます。
- MPEG-DASH または HLS マニフェスト ファイルとメディア セグメントを Cloud Storage バケットにアップロードします。
- Cloud Storage バケットを一般公開にする必要はありません。
- 署名付き URL または署名なし URLを使用できます。
CDN キーを作成する
Video Stitcher API では、コンテンツ配信ネットワーク(CDN)から動画を取得できます。動画アセットが URL 署名で保護されている場合は、Video Stitcher API で CDN キーを登録する必要があります。
CDN キーを登録するには、projects.locations.cdnKeys.create
メソッドを使用します。
REST(メディア CDN)
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_NUMBER
: IAM 設定ページの [プロジェクト番号] フィールドにある Google Cloud プロジェクト番号LOCATION
: CDN キーを作成するロケーション。サポートされているリージョンのいずれかを使用します。3~7 つの店舗を表示us-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
CDN_KEY_ID
: CDN キーのユーザー定義 ID。CDN キーのリソース名の最終的なコンポーネントになります。この ID に使用できるのは、小文字、数字、ハイフンに限られます。 最初の文字は英字で、最後の文字は英字または数字で、ID 全体は最大 63 文字です。HOSTNAME
: この CDN キーに関連付ける CDN のホスト名(35.190.60.252
などの IP アドレスやcdn.example.com
などのドメイン名)MEDIA_CDN_KEYNAME
: メディア CDN キーのキーセット名MEDIA_CDN_PRIVATE_KEY
: base64 でエンコードされた文字列としての 64 バイトの Ed25519 秘密鍵。詳細については、Media CDN の秘密鍵を作成するをご覧ください。
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/cdnKeys/CDN_KEY_ID", "verb": "create", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
name
フィールドの最後の部分)をコピーします。REST(Cloud CDN)
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_NUMBER
: IAM 設定ページの [プロジェクト番号] フィールドにある Google Cloud プロジェクト番号LOCATION
: CDN キーを作成するロケーション。サポートされているリージョンのいずれかを使用します。3~7 つの店舗を表示us-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
CDN_KEY_ID
: CDN キーのユーザー定義 ID。CDN キーのリソース名の最終的なコンポーネントになります。この ID に使用できるのは、小文字、数字、ハイフンに限られます。 最初の文字は英字で、最後の文字は英字または数字で、ID 全体は最大 63 文字です。HOSTNAME
: この CDN キーに関連付ける CDN のホスト名(35.190.60.252
などの IP アドレスやcdn.example.com
などのドメイン名)GCDN_KEYNAME
: Cloud CDN 鍵の名前GCDN_PRIVATE_KEY
: Cloud CDN 鍵の base64 エンコード文字列 Secret
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/cdnKeys/CDN_KEY_ID", "verb": "create", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
name
フィールドの最後の部分)をコピーします。REST(Akamai CDN)
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_NUMBER
: IAM 設定ページの [プロジェクト番号] フィールドにある Google Cloud プロジェクト番号LOCATION
: CDN キーを作成するロケーション。サポートされているリージョンのいずれかを使用します。3~7 つの店舗を表示us-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
CDN_KEY_ID
: CDN キーのユーザー定義 ID。CDN キーのリソース名の最終的なコンポーネントになります。この ID に使用できるのは、小文字、数字、ハイフンに限られます。 最初の文字は英字で、最後の文字は英字または数字で、ID 全体は最大 63 文字です。HOSTNAME
: この CDN キーに関連付ける CDN のホスト名(35.190.60.252
などの IP アドレスやcdn.example.com
などのドメイン名)AKAMAI_TOKEN_KEY
: Akamai CDN エッジ構成の Base64 でエンコードされた文字列トークンキー
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/cdnKeys/CDN_KEY_ID", "verb": "create", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
name
フィールドの最後の部分)をコピーします。C#
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある C# の設定手順を実施してください。詳細については、Video Stitcher API C# API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Go の設定手順を実施してください。詳細については、Video Stitcher API Go API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Java の設定手順を実施してください。詳細については、Video Stitcher API Java API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Node.js の設定手順を実施してください。詳細については、Video Stitcher API Node.js API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある PHP の設定手順を実施してください。詳細については、Video Stitcher API PHP API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Python の設定手順を実施してください。詳細については、Video Stitcher API Python API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Ruby の設定手順を実施してください。詳細については、Video Stitcher API Ruby API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
結果を確認する
CDN キーが作成されたかどうかを確認するには、projects.locations.operations.get
メソッドを使用します。レスポンスに "done: false"
が含まれている場合は、レスポンスに "done: true"
が含まれるまでコマンドを繰り返します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_NUMBER
: IAM 設定ページの [プロジェクト番号] フィールドにある Google Cloud プロジェクト番号LOCATION
: データのロケーション。サポートされているリージョンのいずれかを使用します。3~7 つの店舗を表示us-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
OPERATION_ID
: オペレーションの ID。
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "endTime": END_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/cdnKeys/CDN_KEY_ID", "verb": "create", "cancelRequested": false, "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.video.stitcher.v1.CdnKey", "name": "projects/PROJECT_NUMBER/locations/LOCATION/cdnKeys/CDN_KEY_ID", "hostname": "HOSTNAME", "mediaCdnKey": { "keyName": "MEDIA_CDN_KEYNAME" } } }
セッションを作成する
広告合成された動画のセッションを作成するには、projects.locations.vodSessions.create
メソッドを使用します。
REST
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_NUMBER
: IAM 設定ページの [プロジェクト番号] フィールドにある Google Cloud プロジェクト番号LOCATION
: セッションを作成するロケーション。サポートされているリージョンのいずれかを使用します。3~7 つの店舗を表示us-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
VOD_URI
: 合成するメディアの URI。この URI は、MPEG-DASH マニフェスト(.mpd)ファイルまたは M3U プレイリストマニフェスト(.m3u8)ファイルを参照する必要があります。CDN 鍵を登録した公開 URI または署名なし URI を使用します。AD_TAG_URI
: 広告タグの公開 URI。ない場合は、VMAP プレロールサンプルを使用できます。
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/vodSessions/SESSION_ID", "interstitials": { "sessionContent": { "duration": "60s" } }, "playUri": "PLAY_URI", # This is the ad-stitched VOD URI "sourceUri": "VOD_URI", "adTagUri": "AD_TAG_URI", "assetId": "ASSET_ID", "adTracking": "SERVER" }
C#
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある C# の設定手順を実施してください。詳細については、Video Stitcher API C# API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Go の設定手順を実施してください。詳細については、Video Stitcher API Go API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Java の設定手順を実施してください。詳細については、Video Stitcher API Java API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Node.js の設定手順を実施してください。詳細については、Video Stitcher API Node.js API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある PHP の設定手順を実施してください。詳細については、Video Stitcher API PHP API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Python の設定手順を実施してください。詳細については、Video Stitcher API Python API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Ruby の設定手順を実施してください。詳細については、Video Stitcher API Ruby API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Video Stitcher API は、リクエストごとに一意のセッション ID を生成します。セッションは 4 時間後に期限切れになります。
広告の挿入を確認する
VOD セッションに広告を合成する前にエンコードする必要があります。
vodSessions.create
コマンドで指定した広告が前のセッションですでにエンコードされている場合、Video Stitcher API は adBreaks
イベントを JSON レスポンスに含めます。Video Stitcher API は、Google Cloud プロジェクトに関連付けられたセッションによって作成されたエンコード済みの広告のみを検索します。
広告がまだエンコードされていない場合、JSON レスポンスには adBreaks
イベントが含まれません。前のセクションのような JSON レスポンスを受け取った場合は、広告がエンコードされるまで待機してから、vodSessions.create
コマンドを再実行します。
エンコードされた広告が正常にセッションに合成されると、レスポンスは次のようになります。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/vodSessions/SESSION_ID", "interstitials": { "adBreaks": [ { "progressEvents": [ { "timeOffset": "0s", "events": [ { "type": "IMPRESSION", "uri": "https://securepubads.g.doubleclick.net/pcs/view..." }, { "type": "START", "uri": "https://pubads.g.doubleclick.net/pagead/interaction/..." }, ... ] }, ... ], "ads": [ { "duration": "10s", "activityEvents": [ { "type": "ERROR", "uri": "https://pubads.g.doubleclick.net/pagead/interaction/..." }, { "type": "CLICK_THROUGH", "uri": "https://pubads.g.doubleclick.net/pcs/click...", "id": "GDFP" }, ... ] } ], "endTimeOffset": "10s", "startTimeOffset": "0s" } ], "sessionContent": { "duration": "70s" } }, "playUri": "PLAY_URI", "sourceUri": "VOD_URI", "adTagUri": "AD_TAG_URI", "assetId": "ASSET_ID", "adTracking": "SERVER" }
広告合成された VOD セッションを再生する
レスポンス オブジェクトの playUri
フィールドの URI を使用して、広告合成された VOD セッションを再生します。Shaka Player でこの VOD セッションを再生するには、次の手順を行います。
- オンライン メディア プレーヤーである Shaka Player に移動します。
- 上部のナビゲーション バーにある [CUSTOM CONTENT](カスタム コンテンツ)をクリックします。
- [+] ボタンをクリックします。
playUri
フィールド(PLAY_URI)の値を [マニフェスト URL] ボックスに貼り付けます。[Name] ボックスに名前を入力します。
[保存] をクリックします。
[Play] をクリックします。
動画が Cloud Storage バケットに配置されている場合は、バケットが一般公開されており、CORS が有効になっていることを確認してください。
Transcoder API のサンプル動画と VMAP プリロール広告タグの URL を使用する、広告合成された動画の例をご覧ください。
クリーンアップ
このページで使用したリソースに対して Google Cloud アカウントで課金されないようにするには、Google Cloud プロジェクトとそのリソースを削除します。
CDN 鍵を削除する
CDN キーを削除するには、次のコマンドを実行します。
REST
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_NUMBER
: IAM 設定ページの [プロジェクト番号] フィールドにある Google Cloud プロジェクト番号LOCATION
: CDN キーが配置されているロケーション。サポートされているリージョンのいずれかを使用します。3~7 つの店舗を表示us-central1
us-east1
us-west1
asia-east1
asia-south1
asia-southeast1
europe-west1
southamerica-east1
CDN_KEY_ID
: CDN 鍵のユーザー定義の識別子
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.common.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/cdnKeys/CDN_KEY_ID", "verb": "delete", "cancelRequested": false, "apiVersion": "v1" }, "done": false }
C#
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある C# の設定手順を実施してください。詳細については、Video Stitcher API C# API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Go の設定手順を実施してください。詳細については、Video Stitcher API Go API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Java の設定手順を実施してください。詳細については、Video Stitcher API Java API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Node.js の設定手順を実施してください。詳細については、Video Stitcher API Node.js API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある PHP の設定手順を実施してください。詳細については、Video Stitcher API PHP API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Python の設定手順を実施してください。詳細については、Video Stitcher API Python API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
このサンプルを試す前に、クライアント ライブラリを使用した Video Stitcher API クイックスタートにある Ruby の設定手順を実施してください。詳細については、Video Stitcher API Ruby API リファレンス ドキュメントをご覧ください。
Video Stitcher API への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
認証情報を取り消す
-
作成した認証情報を取り消して、ローカル認証情報ファイルを削除します。
gcloud auth application-default revoke
-
(省略可)gcloud CLI から認証情報を取り消します。
gcloud auth revoke