概要
サーバー側の広告挿入( SSAI)広告をビデオコンテンツストリームにつなぎ合わせて、テレビのような視聴体験を提供できます。ネイティブ SDK でライブストリームを再生するには、ビデオリクエストとともに再生トークンを渡す必要があります。
このドキュメントは、NextGen Live と、SSAI プラグインを使用する従来のライブストリームに適用されます。Live 1.0 は提供終了となっています。NextGen Live のチャネル設定と SDK の互換性の詳細については、ネイティブ SDK での NextGen Live の使用を参照してください。
ライブ SSAI では、次のことが可能になります。
- エンコーダから送信されたキューポイントを使用して広告を挿入するか、を使用してインスタントキューポイントを作成しますライブAPI
- 「スレート」アセットを取り込み、未使用の広告時間を埋める
- サーバー側のライブストリームに縫い付けられた広告で広告ブロッカーを避ける
ステップ
でライブストリームを再生するにはSSAI、 次の手順を実行します:
- Video Cloud Studioを使用してライブ広告設定を作成する
- オプション:スレートアセットの作成、キューポイントと広告ビーコンの挿入
- ライブイベントを作成する
- 再生トークンを取得する
-
アプリを構築する:
- 広告中断をリクエストする
ライブイベントを作成する
デフォルトでは、ライブストリームはBrightcove CDN を使用します。ご希望の場合は、CDN(BYO CDN または「独自の帯域幅を持参」)の独自選択を使用できます。独自の CDN を使用するには、このセクションと [ 再生トークンの取得 ] セクションにオプションの手順を含めます。
ライブイベントを作成するには、次の手順に従います。
- Live Module ドキュメントの「サーバーサイド広告の実装」を参照してください。
- を展開します高度なオプションセクション。
-
選択するサーバーサイド広告挿入(SSAI)を有効にする、およびを選択しますスレートを埋める。
SSAI を有効にする -
オプション :独自の CDN を使用するには、次の追加手順を含めます。
-
の中に高度なオプションセクションで、マルチCDN構成を追加するオプション。
マルチ CDN の設定 -
自分の CDN のラベルと URL を入力します。詳細については、コンテンツ配信オプション資料。
ラベルとURLを追加する
-
- ライブイベントの設定が完了したら、をクリックしますイベントの作成。
再生トークンを取得する
ライブストリームを公開すると、プレーヤーの埋め込みコードに再生トークンが含まれます。現在の NextGen Live の埋め込みコードでは livePlaybackToken として提供され、以前のライブの埋め込みコードでは adConfigId でした。アプリで動画コンテンツをリクエストするときにこの値を使用します。
再生トークンを取得するには、次の手順を実行します。
- Video Cloud Studio で Live モジュールを開き、チャネルを選択します。
- Control Room で Embed on Web を選択します。
-
プレーヤー、サイズ、必要な詳細オプションを選択します。チャネルで SSAI が有効になっている場合、生成された埋め込みコードはチャネルの再生トークンを使用します。
-
埋め込みコードをクリップボードにコピーします。
従来の Live 1.0 の埋め込みコード(参考) -
埋め込みコードから、
videoIdパラメータ値をコピーします。この値は後のステップで使用します。これは次のようになります。1700044540369289748 -
埋め込みコードから、
livePlaybackTokenパラメータ値をコピーします。この値は後のステップで使用します。eyJで始まる JWT で、次のようになります。eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtbiI6InBsYXlsaXN0Iiwic3NhaSI6dHJ1ZSwiYWNpZCI6IjRmMWFjYWQyLTE2MDMtNDg1Ni1hZmFjLThhYWM3NjM1YzEyYyIsImlzcyI6ImJsaXZlLXBsYXliYWNrLW1hbmFnZW1lbnQtYXBpIiwic3ViIjoicGxheWJhY2t0b2tlbiIsImF1ZCI6WyI2NDE1NTE4NjI3MDAxIl0sImp0aSI6IjYzNzk3ODk3NTIxMTIifQ.zdWC1VA5nm3CKNqNclYYNi6aSL3FbjbeHHmb5oHoziQ - また、アカウントのアカウント ID とポリシーキーも必要です。
Androidの実装
ライブストリームを再生するには、livePlaybackToken パラメータに再生トークンを指定してビデオリクエストに含めます。従来の Playback API クエリキーは ad_config_id であり、埋め込みオプション名の adConfigId ではありません。従来のキーを渡しても、NextGen Live 対応より前にリリースされた SDK に NextGen Live の広告機能が追加されるわけではありません。
アプリを構築するには、次の手順に従います。
- 基本的な SSAIサンプルアプリをコードの出発点として使用します。
- res/values/strings.xml ファイルで、次の値を独自の値に置き換えます
- アカウント ID
- ポリシーキー
- ビデオID(から再生トークンを取得する上記のセクション)
-
MainActivity.java ファイルで、
livePlaybackTokenの値を、上の再生トークンを取得するセクションで Live モジュールからコピーした再生トークンに置き換えます。private final String LIVE_PLAYBACK_TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."; -
再生トークンの値が
livePlaybackTokenクエリパラメータとして HTTP リクエストに追加されます。HttpRequestConfig httpRequestConfig = new HttpRequestConfig.Builder() .addQueryParameter("livePlaybackToken", LIVE_PLAYBACK_TOKEN) .build(); -
ライブストリーム動画 ID と更新された HTTP リクエストを使用して、Playback API へのカタログ呼び出しを行います。
catalog.findVideoByID(getString(R.string.video_id), httpRequestConfig, new VideoListener() { @Override public void onVideo(Video video) { plugin.processVideo(video); } }); -
アプリはライブストリームを再生する準備ができました。
各 SDK バージョンの SSAI の改善と修正については、Android 用ネイティブ SDK のリリースノートを参照してください。
iOSの実装
ライブストリームを再生するには、livePlaybackToken パラメータに再生トークンを指定してビデオリクエストに含めます。従来の Playback API クエリキーは ad_config_id であり、埋め込みオプション名の adConfigId ではありません。従来のキーを渡しても、NextGen Live 対応より前にリリースされた SDK に NextGen Live の広告機能が追加されるわけではありません。
アプリを構築するには、次の手順に従います。
- 基本的な SSAIサンプルアプリをコードの出発点として使用します。
- ViewController.swift ファイルで、以下を独自の値に置き換えます
- アカウント ID
- ポリシーキー
- ビデオID(から再生トークンを取得する上記のセクション)
-
ViewController.swift ファイルで、
LivePlaybackTokenの値を、上の再生トークンを取得するセクションで Live モジュールからコピーした再生トークンに置き換えます。static let LivePlaybackToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." -
再生トークンの値が
livePlaybackTokenクエリパラメータとして追加されます。let queryParameters = [BCOVPlaybackService.ParameterKeyLivePlaybackToken: Constants.LivePlaybackToken] -
ライブストリーム動画 ID と更新された HTTP リクエストを使用して、Playback API へのカタログ呼び出しを行います。
let configuration = [BCOVPlaybackService.ConfigurationKeyAssetID: Constants.VideoId] playbackService.findVideo(withConfiguration: configuration, queryParameters: queryParameters) { [weak self] (video: BCOVVideo?, jsonResponse: Any?, error: Error?) -> Void in guard let _video = video else { print("ViewController Debug - Error retrieving video: \(error?.localizedDescription ?? "unknown error")") return } self?.playbackController?.setVideos([_video]) } - アプリはライブストリームを再生する準備ができました。