はじめに
ライブSSAI でのブライトコーブのプレーヤー機能強化では、広告数、広告カウントダウンタイマー、クリックスルー広告、コンパニオン広告など、ライブストリームの広告ブレイクを向上させることができます。
広告情報は、VAST レスポンスを取得し、表示する広告を識別する広告構成を使用して指定します。VAST ファイルには、コンパニオン広告とビーコン URL に関する情報も含まれています。
ワークフロー
SSAI とプレーヤーの機能強化でライブストリームを作成するには、次の手順に従います。
- アカウントマネージャーに、ライブストリーム、サーバーサイド広告挿入 (SSAI)、およびライブ SSAI のプレーヤー機能強化を有効にするようアカウント管理者に依頼してください。
- 広告設定を作成する
- オプション:スレートアセットを作成して未使用の広告時間を埋める
- ライブジョブを作成する
- プレイバックトークンを作成する
- プレイヤーを構成する
- ストリーミングを開始する
- キューポイントを使用して広告をトリガーします(これはライブイベントの前または中に実行できます)
- クリーンアップ
広告設定を作成する
広告設定では、サーバーサイド広告をライブストリームに含めるために必要な情報を定義します。これには、広告プロバイダーの URL、予想される広告レスポンスタイプ、ビーコンを送信するかどうかが含まれます。
新しい広告構成を作成するには、POST
次のようにリクエストを送信します。
方法 | POST |
---|---|
URL | https://api.bcovlive.io/v1/ssai/applications |
ヘッダー | X-API-KEY: your API KEY |
コンテンツタイプ:アプリケーション/json |
すべてのリクエストは、アカウントのセットアップ時に提供される API キーを使用して認証されます。X-API-KEY
キーはヘッダーに渡されます。
リクエスト本文
リクエスト本文フィールドの詳細については、 Live APIリファレンスのドキュメントを参照してください。
Live SSAI のプレーヤーの拡張機能を使用すると、application_ad_configuration
ハイライト表示されたフィールドをオブジェクト内に設定できます。
リクエスト本文の例:
{
"application_ad_configuration": {
"ad_configuration_description": "your ad config description",
"ad_configuration_expected_response_type": "Vast",
"ad_configuration_headers_for_impressions": false,
"ad_configuration_strategy": "SingleAdResponse",
"ad_configuration_transforms": [],
"ad_configuration_url_format": "your ad server",
"ad_configuration_client_sdk_enabled": true,
"client_options": {
"show_ad_break_remaining_time": true / false,
"show_ad_remaining_time": true / false,
"show_number_of_remaining_ads": true / false,
"client_only_tracking": true / false
}
},
"application_description": "your application description"
}
Live SSAI でのプレーヤーの機能強化に関連する広告設定フィールドは次のとおりです。
フィールド | タイプ | 必須 | 説明 |
---|---|---|---|
ad_configuration_expected_response_type |
ストリング | はい | この機能では、広告構成の値はである必要があります。Vast |
ad_configuration_client_sdk_enabled |
ブール値 | はい | この機能を有効にするには、このフィールドの値がtrue |
client_options |
オブジェクト | プレイヤーエンハンスメントに関連するフィールドのオブジェクト | |
client_options. |
ブール値 | 広告休憩の残り時間を表示する
値: true / false
|
|
client_options. |
ブール値 | 広告の残り時間を表示する
値: true / false
|
|
client_options. |
ブール値 | 広告休憩に残っている広告の数を表示する
値: true / false
|
|
client_options. |
ブール値 | サーバー側の追跡イベント(インプレッション/四分位数)を無効にする
値: true / false
デフォルト: false
|
応答
レスポンスの例:
{
"application": {
"application_description": "Test ad configuration",
"application_ad_configuration": {
"ad_configuration_description": "Ad config description",
"ad_configuration_expected_response_type": "Vast",
"ad_configuration_strategy": "SingleAdResponse",
"ad_configuration_transforms": [],
"ad_configuration_url_format": "https://solutions.brightcove.com/bcls/ads/simple-vast.xml",
"ad_configuration_headers_for_impressions": false,
"ad_configuration_client_sdk_enabled": true,
"client_options": {
"show_ad_break_remaining_time": true,
"show_ad_remaining_time": true,
"show_number_of_remaining_ads": true,
"client_only_tracking": true
}
},
"application_id": "1234567890abcdefghijkl",
"application_type": "ads",
"account_id": "001122334455aabbccddee"
},
"action": "inserted"
}
広告構成を正常に作成したら、生成されたapplication_id
(広告構成 ID)をコピーします。これは、後でSSAI再生 URL を見つけるために必要です。
広告構成の一覧表示、更新、削除については、「広告設定の管理」ドキュメントを参照してください。
ライブジョブを作成する
ライブジョブを作成するには、POST
次のようにリクエストを送信します。
方法 | POST |
---|---|
URL | https://api.bcovlive.io/v1/jobs |
ヘッダー | X-API-KEY: your API KEY |
コンテンツタイプ:アプリケーション/json |
リクエスト本文
リクエスト本文フィールドの詳細については、 Live APIリファレンスのドキュメントを参照してください。
SSAI が有効なライブジョブの場合は、HTTP リクエスト本文に設定しますad_insertion: true
。
サンプルリクエスト(Video Cloud 動画)
ライブストリームに使用する Video Cloud ビデオを作成し、ライブストリームから VOD クリップを作成するには、videocloud
オブジェクトをリクエスト本文に含めます。詳細については、ライブ API を参照してください。VODクリップドキュメントを作成する。
以下の強調表示されたフィールドは、サーバーサイド広告挿入(SSAI)に必要です。
{
"live_stream": true,
"ad_insertion": true,
"region": "us-west-2",
"reconnect_time": 1800,
"outputs": [{
"label": "hls720p",
"live_stream": true,
"width": 1280,
"height": 720,
"video_codec": "h264",
"h264_profile": "high",
"video_bitrate": 2100,
"segment_seconds": 4,
"keyframe_interval": 60
},
{
"label": "hls540p",
"live_stream": true,
"width": 960,
"height": 540,
"video_codec": "h264",
"h264_profile": "main",
"video_bitrate": 1500,
"segment_seconds": 4,
"keyframe_interval": 60
},
{
"label": "hls360p",
"live_stream": true,
"width": 640,
"height": 360,
"video_codec": "h264",
"h264_profile": "main",
"video_bitrate": 800,
"segment_seconds": 4,
"keyframe_interval": 60
}
],
"videocloud": {
"video": {
"name": "Live SSAI VideoCloud Asset",
"description": "",
"long_description": "",
"tags": [],
"reference_id": "live_ssai_vc_asset",
"link": {
"url": "",
"text": ""
},
"schedule": {
"starts_at": null,
"ends_at": null
},
"custom_fields": {}
}
}
}
サンプルリクエスト(リモートビデオ)
ライブストリームでリモートビデオを使用するには、リクエスト本文がこれに似ているはずです。
以下の強調表示されたフィールドは、サーバーサイド広告挿入(SSAI)に必要です。
{
"live_stream":true,
"ad_insertion":true,
"region":"us-west-2",
"reconnect_time":1800,
"outputs":[
{
"label": "hls720p",
"live_stream": true,
"width": 1280,
"height": 720,
"video_codec": "h264",
"h264_profile": "high",
"video_bitrate": 2100,
"segment_seconds": 4,
"keyframe_interval": 60
},
{
"label": "hls540p",
"live_stream": true,
"width": 960,
"height": 540,
"video_codec": "h264",
"h264_profile": "main",
"video_bitrate": 1500,
"segment_seconds": 4,
"keyframe_interval": 60
},
{
"label": "hls360p",
"live_stream": true,
"width": 640,
"height": 360,
"video_codec": "h264",
"h264_profile": "main",
"video_bitrate": 800,
"segment_seconds": 4,
"keyframe_interval": 60
}
]
}
その他の役立つリソース:
応答
レスポンスの例(ビデオクラウド動画)
{
"id": "227356abcdefghijklmno12345",
"outputs": [
{
"id": "0-2273561a201ec18",
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_0/chunklist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_0/chunklist_dvr.m3u8",
"playback_url_vod": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_0/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls720p"
},
{
"id": "1-2273561a201e8c18",
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_1/chunklist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_1/chunklist_dvr.m3u8",
"playback_url_vod": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_1/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls540p"
},
{
"id": "2-2273561a201ec18",
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_2/chunklist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_2/chunklist_dvr.m3u8",
"playback_url_vod": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_2/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls360p"
},
{
"id": "3-2273561a201ec18",
"playlist_type": "defaultS3",
"type": "playlist",
"filename": "playlist.m3u8",
"dvr_filename": "playlist_dvr.m3u8",
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/playlist_dvr.m3u8",
"ssai_playback_urls": {
"b907ac7935e2": {
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/b907ac7935e2/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/b907ac7935e2/playlist_dvr_ssaiM.m3u8",
"playback_added_cdns": [],
"description": "Test ad configuration for SLS",
"type": "ads"
},
"dc9aa8ee3520f2": {
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/dc9aa8ee3520f2/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/dc9aa8ee3520f2/playlist_dvr_ssaiM.m3u8",
"playback_added_cdns": [],
"description": "Test live ad config for SLS",
"type": "ads"
}
},
"playback_added_cdns": []
}
],
"stream_url": "rtmp://ec2-54-184-149-60.us-west-2.compute.amazonaws.com:1935/2273561a201ec18",
"stream_name": "alive",
"static": false,
"job_videocloud_asset_id": "6227380655001",
"encryption": {},
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/playlist_dvr.m3u8",
"ssai_playback_urls": {
"b907ac7935e2": {
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/b907ac7935e2/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/b907ac7935e2/playlist_dvr_ssaiM.m3u8",
"playback_added_cdns": [],
"description": "Test ad configuration for SLS",
"type": "ads"
},
"dc9aa8ee3520f2": {
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/dc9aa8ee3520f2/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/dc9aa8ee3520f2/playlist_dvr_ssaiM.m3u8",
"playback_added_cdns": [],
"description": "Test live ad config for SLS",
"type": "ads"
}
},
"playback_added_cdns": []
}
サンプル応答(リモートビデオ)
{
"id": "bbccddeeffgghhiijjkk0011223344",
"outputs": [
{
"id": "0-bbccddeeffgghhiijjkk0011223344",
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_0/chunklist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_0/chunklist_dvr.m3u8",
"playback_url_vod": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_0/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls720p"
},
{
"id": "1-bbccddeeffgghhiijjkk0011223344",
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_1/chunklist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_1/chunklist_dvr.m3u8",
"playback_url_vod": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_1/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls540p"
},
{
"id": "2-bbccddeeffgghhiijjkk0011223344",
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_2/chunklist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_2/chunklist_dvr.m3u8",
"playback_url_vod": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_2/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls360p"
},
{
"id": "3-bbccddeeffgghhiijjkk0011223344",
"playlist_type": "defaultS3",
"type": "playlist",
"filename": "playlist.m3u8",
"dvr_filename": "playlist_dvr.m3u8",
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/playlist_dvr.m3u8",
"ssai_playback_urls": {
"91bc2d5ff4a4441db34c2457c751c3ca": {
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/91bc2d5ff4a4441db34c2457c751c3ca/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/91bc2d5ff4a4441db34c2457c751c3ca/playlist_dvr_ssaiM.m3u8",
"playback_added_cdns": [],
"description": "Test ad configuration",
"type": "ads"
},
"e7f6e9a3022a45e1b0b322ba57399150": {
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/e7f6e9a3022a45e1b0b322ba57399150/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/e7f6e9a3022a45e1b0b322ba57399150/playlist_dvr_ssaiM.m3u8",
"playback_added_cdns": [],
"description": "House Ads - 0077db20eb444b5daa7487438c90a271",
"type": "ads"
}
}
}
],
"stream_url": "rtmp://ep4-usw2.bcovlive.io:1935/bbccddeeffgghhiijjkk0011223344",
"stream_name": "alive",
"static": false,
"encryption": {},
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/playlist_dvr.m3u8",
"ssai_playback_urls": {
"91bc2d5ff4a4441db34c2457c751c3ca": {
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/91bc2d5ff4a4441db34c2457c751c3ca/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/91bc2d5ff4a4441db34c2457c751c3ca/playlist_dvr_ssaiM.m3u8",
"playback_added_cdns": [],
"description": "Test ad configuration",
"type": "ads"
}
}
}
API応答から、次のステップのために次のフィールド値をメモします。
id
-あなたのライブジョブ IDstream_url
,stream_name
-ライブストリームエンコーダの入力job_videocloud_asset_id
-ビデオクラウドビデオ ID
再生トークンを作成する
プレーヤーと一緒に再生トークンが必要になります。
再生トークンを作成するには、POST
次のようにリクエストを送信します。
方法 | POST |
---|---|
URL | https://api.bcovlive.io/v1/jobs/your live job id/playback-token |
ヘッダー | X-API-KEY: your API KEY |
コンテンツタイプ:アプリケーション/json |
リクエスト本文
リクエスト本文の例:
{
"dvr":true / false,
"application_id":"your ad config id"
}
応答
レスポンスの例:
{
"playback_token": "live.JhQabcdefghijkl000000000abcdefghi"
}
レスポンス本文には、生成された再生トークンが含まれます。プレーヤーで Playback API 呼び出しを行うときに使用します。
プレーヤーを設定する
再生 API からライブストリームを再生するプロセスは、通常の Video Cloud ビデオの再生方法とは少し異なります。動画 ID(参照 ID)だけでなく、使用する広告設定を識別する再生トークンを含める必要があります。また、DVR 再生を行うかどうかも指定する必要があります。
ウェブプレーヤー
Brightcove Player の設定の詳細については、『Brightcove Player での Live SSAI でのプレーヤーの拡張の使用』ドキュメントを参照してください。
ネイティブAndroidプレーヤー
Android 用ネイティブ Player の設定の詳細については、ネイティブ SDK での Live SSAI でのプレーヤーの拡張機能の使用」を参照してください。
ネイティブ iOS プレーヤー
iOS 用ネイティブ Player の設定の詳細については、ネイティブ SDK での Live SSAI でのプレーヤーの拡張機能の使用」を参照してください。
ストリーミングを開始
ライブストリーミングイベントを作成するツールはたくさんあります。CDN によって配信されるライブストリームを生成するために使用できるエンコーダーを次に示します。
クリーンアップ
ライブ配信が完了したら、ストリームのアーティファクトを次のようにクリーンアップできます。
- ストリーミングエンコーダを停止する
-
ライブジョブをキャンセルします。
ライブジョブをキャンセルするには、
PUT
次のようにリクエストを送信します。方法 PUT
URL https://api.bcovlive.io/v1/jobs/your live job id/cancel
ヘッダー X-API-KEY: your API KEY
コンテンツタイプ:アプリケーション/json
詳細については、『 Live API リファレンス』ドキュメントを参照してください。
-
広告設定を削除する
広告構成を削除するには、
DELETE
次のようにリクエストを送信します。方法 PUT
URL https://api.bcovlive.io/v1/ssai/applications/application/your ad config id
ヘッダー X-API-KEY: your API KEY
コンテンツタイプ:アプリケーション/json
詳細については、『 Live API リファレンス』ドキュメントを参照してください。