はじめに
IMAプラグインは、BrightcoveプレーヤーをHTML5バージョン3用のGoogleのインタラクティブメディア広告(IMA)と統合します。これにより、VAST、VAST、VMAP 広告をプレイヤー用にリクエストして追跡することができます。Google IMA の詳細については、「IMA HTML5 SDK バージョン 3 の使用」を参照してください。
プレーヤーサンプル
以下のサンプルビデオは、IMA プラグインの使用方法を示しています。ビデオを再生すると、プリロールが表示され、5 秒でスキップ可能なミッドロール、最後にポストロールが表示されます。
広告サーバーのテスト
最初に行うべきことは、使用する予定の広告タグの有効性を検証することです。URL をコピーしたことを確認し、次のページを参照します。ビデオスイートのインスペクタ(このリンクをクリックすると、ページが新しいウィンドウまたはタブで開きます)。
[ 入力タイプ] フォーム入力フィールドに広告タグの URL を貼り付けます。[ 広告をテスト] をクリックすると、Google提供の動画が散在し、広告が再生されます。このテスト環境で広告タグが機能しない場合は、Brightcove Player では機能しません。
Playersモジュールを使用して実装-広告セクション
ドキュメントのこのセクションでは、Studioを使用して、広告セクション。この場合、フォームが提供するオプションに制限されます。このセクションでは提供されていない多くの利用可能なオプションを使用して実装をカスタマイズする場合は、Players モジュールを使用して実装する- プラグインセクションを使用します。JSON経由でオプションを提供する機会を提供します。
Players モジュールを使用して IMA プラグインを実装するには、次の手順を実行します。
- を開きますプレイヤーモジュールを作成し、新しいプレーヤーを作成するか、広告機能を追加するプレーヤーを見つけます。
- プレーヤーのリンクをクリックして、プレイヤーのプロパティを開きます。
- 左側のナビゲーションメニューで [ 広告 ] をクリックします。
- [クライアントサイド(IMA)を有効にする]チェックボックスをオンにします。
- 広告サーバーのサーバー URLを入力します。
-
[広告の要求]設定を選択します。
- On Load -プレイヤーがロードされるとすぐに広告がリクエストされます(通常、これはDFP/VPAYDにとって最高のエクスペリエンスです)。
- 再生時 -最初の広告リクエストは、再生が開始されるまで遅延します。
-
オンデマンド -すべての広告リクエストは、
player.ima3.adrequest()
メソッドを使用してプログラムによって開始されます。このモードでは、プリロール広告やポストロール広告はサポートされていません。 - キューポイントで -ディスパッチされた広告キューポイントで広告リクエストが開始されます。を参照してください広告キューポイントを使用した広告の表示詳細については、ドキュメントを参照してください。
-
広告 Vpaid モードを選択します。Vペイドモードは、IMA広告でVペイド 2 サポートを有効にするために使用されます。
- 有効 -異なるドメインの iframe で Vpaid 広告を再生する
- 安全ではありません -同じドメインの iframe で Vpaid 広告を再生する
- 無効 -Vpaid 広告でエラーが発生する
- [ タイムアウト]の値を設定します。これは、広告が再生される前に初期化されるまで待機する最大時間(ミリ秒単位)です。
- [ ハードタイムアウト] を選択します。このオプションをオフにすると、アドバタイズメントの読み込みが遅くなり、ビデオの再生が中断されることがあります。
- リダイレクトの最大数を設定します。これにより、後続のリダイレクトが拒否され、広告ロードが中止されるまでのリダイレクトの最大数を指定します。リダイレクトの数は、レイテンシーとユーザーエクスペリエンスに直接影響します。
- プラグインバージョンについては、最新バージョンを使用することを強くお勧めします。
- 記入済みのフォームの例を表示します。
- [ 保存] をクリックします。
- プレーヤーを公開するには、[ パブリッシュと埋め込み] > [変更の公開] の順にクリックします。
- 開くダイアログを閉じるには、[ 閉じる] をクリックします。
広告プロパティへの変更が保存されると、IMAプラグインはプラグイン設定の一部として構成されます。JavaScriptとCSSは、を介して追加したため非表示になります広告セクション。
IMAプラグインは、UIのこのセクションでは使用できない追加のプロパティをサポートします。その他の構成オプションを使用する方法については、このドキュメントの次のセクションを参照してください。
Playersモジュールを使用して実装-プラグインセクション
Advertising セクションで提供されているオプションを超えて IMA3 プラグインを構成する場合は、「プラグイン」セクションを使用できます。このセクションには、JSON 経由でオプションを指定できます。
IMA3 プラグインを実装するには、プラグインの関数名と URL をプラグインの JavaScript および CSS ファイルに追加します。
- を開きますプレイヤーモジュールを作成し、新しいプレーヤーを作成するか、プラグインを追加するプレーヤーを見つけます。
- プレーヤーのリンクをクリックして、プレイヤーのプロパティを開きます。
- 左側のナビゲーションメニューで [ プラグイン ] をクリックします。
- [ プラグインの追加 ] ドロップダウンから、[ カスタムプラグイン ] を選択します。
- [ プラグイン名 ] に、と入力します
ima3
。 -
JavaScript の URL には、次のように入力します。
https://players.brightcove.net/videojs-ima3/3/videojs.ima3.min.js
-
CSS の URL には、次のように入力します。
https://players.brightcove.net/videojs-ima3/3/videojs.ima3.min.css
-
[ オプション (JSON)] テキストボックスに構成オプションを入力します。
{ "serverUrl": "//pubads.g.doubleclick.net/gampad/ads?sz=400x300&iu=%2F6062...", "timeout": 5000, "debug": true }
- [ 保存] をクリックします。
- プレーヤーを公開するには、[ パブリッシュと埋め込み] > [変更の公開] の順にクリックします。
- 開くダイアログを閉じるには、[ 閉じる] をクリックします。
JSONとJavaScriptの表記
あなたが調べる場合オプション上記のセクションでは、構成情報がJSON形式で提供されていることがわかります。コードを使用してIMA3プラグインを実装している場合、JavaScriptでオプションを設定するための表記法は少し異なります。
ここでは、Studioで使用できるJSON形式のオプションが表示されます。
{
"requestMode": "onload",
"serverUrl": "//solutions.brightcove.com/bcls/brightcove-player/vmap/simple-vmap.xml?cust_params={mediainfo.ad_keys}",
"timeout": 5000
}
JavaScript を使用してオプションを設定している場合は、JSON 形式も機能しますが、ここに示すように JavaScript の構文を使用することもできます。
{
requestMode: 'onload',
serverUrl: '//solutions.brightcove.com/bcls/brightcove-player/vmap/simple-vmap',
timeout: 5000
}
オプション
video.js IMA3 プラグインは video.js 広告フレームワークの上に構築され、広告フレームワークが提供するオプションを受け入れます。広告フレームワークを見てくださいREADMEオーバーライド可能な設定の現在のセットの詳細については。ここでは、IMA プラグイン固有のオプションと広告フレームワークのオプションについて説明します。
オプションは次のとおりです。
- ClickTrackingElement
- デバッグする
- DebugContribads
- DisableCustomPlaybackForios10Plus
- HardTimeouts
- ima3SDKSettings
- RequestMode
- ServerUrl
- ShowVPaidControls
- タイムアウト
- usemediaCuePoints
- usePlayerAutoPlayhandling
- VPaidMode
ClickTrackingElement
タイプ:HTMLElement
デフォルト値:未定義
HTML 広告技術がカスタム広告再生モードで使用されている場合、動画要素に対する入力イベントをサポートしていないデバイスでの広告タップの追跡に使用する代替の HTML 要素を指定します。詳細については、 IMA addisplayContainer のパラメータドキュメントを参照してください。クリックトラッキング要素を提供する場合は、該当するプラットフォーム上で適切なタイミングで表示および非表示にする責任があります。ほとんどの場合、この設定を未定義のままにして、プラグインと IMA が広告インタラクションを管理できるようにすることをお勧めします。
デバッグします
タイプ:boolean
Default Value: false
デバッグが true に設定されている場合、広告フレームワークは再生中の現在の状態に関する追加情報を出力します。これは、広告統合における問題や予期しない動作の診断に役立ちます。
このオプションは広告フレームワークの一部であり、次のように構成されます。
player.ima3({
debug: true
});
次のスクリーンショットは、デバッグをオンにすることで表示される広範な情報を示しています。
debugContribAds
タイプ:boolean
Default Value: false
videojs-contrib-ads のデバッグログを有効にするために使用されます。ID3 oncue
リクエストが機能するためには、受信した ID3 TXXX フレームに、次のフィールドを含む JSON データが含まれている必要があります。
- 広告キュータグ形式:
- 名前:必須-文字列でなければなりません
adCue
- ID:必須-ライブストリームで時間が相対的であることを考えると、広告を識別するための一意の値
- サーバーURL:オプション-この広告のみの IMA3
serverUrl
設定内のをオーバーライドします。 - 期間:オプション-
breaklength
サーバーURLにパラメータとして追加
{"name": "adCue", "id": 123}
- 名前:必須-文字列でなければなりません
- 広告キャンセルタグの形式:
- 名前:必須-文字列の値でなければなりません
adCancel
- ID:必須-ライブストリームでの時間が相対的であることを考えると、広告のキャンセルを識別する一意の値
{"name": "adCancel", "id": 234}
- 名前:必須-文字列の値でなければなりません
DisableCustomPlaybackForios10Plus
タイプ:boolean
Default Value: false
ima3SdkSettings
このプロパティはオブジェクトの一部です。iOS 10以降のブラウザでカスタム再生を無効にするかどうかを制御するゲッターとセッターとして機能します。動作は次のとおりです。
- true の場合、コンテンツ動画がインラインの場合、広告はインラインで再生され、スキップ可能な広告が有効になります。ただし、広告はインラインで維持され、iOS のネイティブフルスクリーンはサポートされません。
- false の場合、広告はコンテンツと同じプレーヤーで再生されます。
この設定の使用例については、このドキュメントの「 iOS スキップ可能な広告」セクションを参照してください。
HardTimeouts
タイプ:boolean
Default Value: true
タイムアウト後に読み込みが終了した広告を放棄します。これにより、が経過してコンテンツ動画の再生が開始された後に、遅いプリロール広告が中断されるのを防ぐことができます。timeout
このオプションは広告フレームワークの一部であり、次のように構成されます。
player.ima3({
hardTimeouts: true
});
false
このオプションをに設定すると、広告の前にコンテンツが点滅します。
ima3SDKSettings
タイプ:object
デフォルト値:未定義
指定されている場合、このオブジェクトのプロパティはページレベルを設定するために使用されますIma3SdkSettings IMASDKの読み込みが完了したとき。このオブジェクトのプロパティは、 SDK設定オブジェクトの setter メソッドと、'set' 接頭辞' を引いたキャメルケースと同等です。たとえば、プラグインの初期化時にこのオブジェクトを指定した場合:
player.ima3({
ima3SdkSettings: {
'numRedirects': 3,
'ppid': 'publisher-provided-id'
}
}
次に、video.js IMA プラグインは、IMA がロードされたときに次のようなコードを実行します。
window.google.ima.ImaSdkSettings.setNumRedirects(3);
window.google.ima.ImaSdkSettings.setPpid('publisher-provided-id');
RequestMode
タイプ:string
Default Value: onload
このオプションは、広告フレームワークの一部であり、次のように構成されています。
player.ima3({
requestMode: 'onplay'
});
このオプションには、次の 4 つの値を使用できます。
-
onload
:プレーヤーがロードされると、広告はすぐに要求されます。これは通常、DFP/Vペイドにとって最高のエクスペリエンスです。 -
onplay
:最初の広告リクエストは、再生が開始されるまで遅延します。これは、広告リクエストが再生と見なされる広告ネットワークでは重要であるため、プレイリクエストの前に広告リクエストは望ましくありません。これにより、トラフィックされた広告が最終的に減少するか、表示される広告の受信数が少なくなります。 -
ondemand
:広告は、player.ima3.adrequest()
メソッドを手動で開始したときにのみ再生されます。このモードでは、プリロール広告やポストロール広告はサポートされていません。 -
oncue
:このオプションの動作は、useMediaCuePoints
オプションと一緒に使用しているかどうかによって異なります。Video Cloud でのキューポイントの使用
Studio で動画の広告キューポイントを作成し、キューポイントがトリガーされたときに広告を再生できます。詳細については、「広告キューポイントを使用したディスプレイ広告」を参照してください。
ライブストリームでのキューポイントの使用
広告は、ライブストリームの ID3 キューポイントに基づいてリクエストされます。このタイプの要求が正しく機能するためには、受信した ID3 TXXX フレームに、次のフィールドを含む JSON データが含まれている必要があります。
name
:必須。文字列値である必要がありますadCue
id
:必須。ライブストリームで時間が相対的であることを考えると、広告を識別するための一意の値serverUrl
:オプション。サーバーの URL にブレーク長パラメータとして追加duration
:オプション。広告期間
例:
{"name": "adCue", "id": 123}
によって作成されたライブストリームのID3キューポイントをキャンセルすることもできます
adCue
を使用してadCancel
。送信されるオブジェクトには、次の形式を使用する必要があります。{"name": "adCancel", "id": 123}
name
id
との両方が必須です。- Android では、ライブ ID3 広告キューはサポートされていません。
- iOSでは、ライブID3広告のキャンセルキューはサポートされていません。
ServerUrl
タイプ: string
またはfunction
デフォルト値(一般的な Google 広告):
//pubads.g.doubleclick.net/gampad/ads?sz=400x300&iu=%2F6062%2Fiab_vast_samples&ciu_szs=300x250%2C728x90&gdfp_req=1&env=vp&output=xml_vast2&unviewed_position_start=1&url=[referrer_url]&correlator=[timestamp]&cust_params=iab_vast_samples%3Dlinear
ここでは、広告サーバーへの URL を指定します。このオプションは、上記のように Brightcove Studio で設定できます。コードで値を設定することもできます。次に、2 つの例を示します。(覚えておいて、プラグインで使用する前に、サーバーで広告タグをテストする必要があります)。
値が文字列の場合、広告がリクエストされた広告サーバーの URL を表し、次のようにコードで設定できます。
player.ima3({
serverUrl: 'your ad server'
});
値が関数の場合、function パラメーターは、サーバーの URL callback
を引数として呼び出す必要がある関数です。これにより、ヘッダー入札などの非同期プロセスのサポートが提供されます。次の例では、アカウント ID に基づいて使用する広告 URL mediainfo
を決定するために使用されるオブジェクトからの情報が表示されます。
// Initialize IMA plugin
myPlayer.ima3({
serverUrl: function(callback) {
if (myPlayer.mediainfo.id === '4034552795001') {
callback('https://pubads.g.doubleclick.net/.../url1');
} else {
callback('https://pubads.g.doubleclick.net/.../url2');
}
},
requestMode: 'onload',
debug: true,
debugContribAds: true
});
ShowVPaidControls
タイプ:boolean
Default Value: false
true
に設定すると、Vペイド広告にブライトコーブのカスタムコントロールが表示されます。Vペイドの実装によっては、機能しない場合がありますので、ブライトコーブは、本稼働環境で有効にする前に、広告でこの機能をテストすることをお勧めします。
タイムアウト
タイプ:number
デフォルト値: 4000
広告がスキップされるまで広告が再生されるまで待機する最大時間(ミリ秒単位)。
このオプションは、広告フレームワークの一部であり、次のように構成されています。
player.ima3({
timeout: 5000
});
Brightcoveの内部テストでは、ほとんどの場合、4秒は遅い初期化に対応するのに十分な長さであるように見えましたが、初期化の失敗がプレーヤーまたはコンテンツビデオの失敗のように見えないほど短いことがわかりました。
useMediaCuePoints
タイプ:boolean
Default Value: false
広告キューポイント(Studio で定義されている)を使用して、広告の再生をトリガーできるようにします。
広告をトリガーするために使用されるVideoCloud広告キューポイントの場合、プラグイン構成で次のものが必要です。
useMediaCuePoints
: 真requestMode
:文字列oncue
serverUrl
:有効なVAST 広告を指している必要があります
Studio を使用して広告を設定している場合、キューポイントの [オン] を選択するとuseMediaCuePoints
、requestMode
オプションが正しく設定されます。
usePlayerAutoPlayhandling
タイプ:boolean
Default Value: false
true
に設定すると、Brightcove Player のコア自動再生処理が使用されます。それ以外の場合は、IMA3 プラグインのデフォルト自動再生処理を使用します。
VPaidMode
タイプ:string
デフォルト値: ENABLED
IMA HTML5 SDKでVペイド 2 モードを指定します。
このオプションには、次の 3 つの値があります。
ENABLED
:別のドメインを持つiframeでVペイド広告を再生します。INSECURE
:同じドメインを持つiframeでVペイド広告を再生します。DISABLED
:Vペイド広告がエラーをスローします。
このオプションは次のように構成されます。
player.ima3({
vpaidMode: 'DISABLED'
});
[プロパティ]
プラグインにはプロパティが 1 つだけ存在します。
- html5:これは、プラグインの初期化時にロードできる唯一の広告技術です。
広告マクロとサーバーURL
広告サーバー URL の作成時に作業を簡単にするために利用できる広告マクロがあります。これらのマクロを使用すると、IMA3 プラグインが適切な値を置き換えるサーバーの URL で変数を使用できます。たとえば、次のサーバー URL にはいくつかの変数が含まれています。
{"serverUrl": "//myadserver.com/ad?video={mediainfo.id}&duration={player.duration}"}
IMA3 プラグインは適切な値で代用され、実際に使用されるサーバー URL は次のように表示されます。
{"serverUrl": "//myadserver.com/ad?video=12340001&duration=60"}
次に、置換された値が使用される変数の完全なリストを示します。
マクロ | 説明 |
---|---|
{document.referrer} | 参照ページ URL。 |
{mediainfo.ad_keys} |
Studioの Media モジュールで追加および編集できる自由形式のテキスト文字列。クエリパラメータは、
|
{mediainfo.description} | 短い説明 (最大 250 文字) |
{mediainfo.duration} | Video Cloud によって報告された動画の再生時間 |
{mediainfo.id} | 動画ID |
{mediainfo.name} | ビデオタイトル |
{mediainfo.reference_id} | 参照 ID |
{mediainfo.tags} | 動画に関連付けられたタグ(メタデータ) |
{player.duration} |
プレーヤーによって測定されたビデオの長さ(おそらくわずかに異なるmediainfo.duration そしておそらくより正確です)。ビデオがロードされていない場合、これは0を返すことに注意してください。このマクロを使用して広告リクエストのタイミングを慎重に設定してください。
|
{player.height} | 現在のプレーヤーの身長 |
{player.id} | プレーヤーID |
{player.pageUrl} | ページのURL:iframe 内にある場合はドキュメントリファラーを返し、そうでない場合はウィンドウの場所を返します。 |
{player.width} | 現在のプレーヤーの幅 |
{playlist.id} | プレイリスト情報オブジェクトから引き出しました |
{playlist.name} | プレイリスト情報オブジェクトから引き出しました |
{random} | 0-1兆の乱数(ユニークな印象を作成するために使用されます。これにより、広告がブラウザにキャッシュされるのを防ぎ、インプレッションの不一致を防ぎます)。 |
{timestamp} | 1/1/70以降の現在の現地時間(ミリ秒) |
{window.location.href} | 現在のページ URL |
デフォルト値と広告マクロ
広告マクロにはデフォルト値を指定できます。マクロ内でデフォルト値を指定できます。この場合、変数が未定義の場合にこの値が使用されます。構文は次のとおりです。
{macro=default}
例えば、
http://example.com/ad/{pageVariable.adConf=1234}
が未定義の場合、window.adConf
次のように解決されます。
http://example.com/ad/1234
動的マクロ
動的マクロでは、次の値にアクセスできます。
customFields
mediainfo.customFields
変数を介したビデオのオブジェクト。- DOMの
window
を介してオブジェクトpageVariable
変数。
たとえば、広告リクエストで以下を使用できます。
//myadserver.com/ad?l={pageVariable.navigator.language}&category={mediainfo.customFields.type}
次の表に示すように、pageVariable
値については、特定の値タイプのみを使用できます。
タイプ | 何が起こる |
---|---|
ストリング | 変更なしで使用 |
[番号] | 自動的に文字列に変換される |
ブール値 | 自動的に文字列に変換される |
ヌル | 文字列 null を返します。 |
未定義 | 警告を記録し、空の文字列を返す |
その他 | 警告を記録し、空の文字列を返す |
TCF マクロ
GDPR の透明性と同意フレームワーク(TCF)をサポートする同意管理プラットフォーム、またはCMP(基本的に一連の広告技術をすべて1つの使いやすいプラットフォームにまとめる)が使用されている場合、追加のマクロが使用可能になります。構文は{tcf.*}
、 と*
のプロパティであることtcData物体。
最も一般的に使用されるマクロは次のとおりです。
名前 | 値 |
---|---|
{tcf.gdprApplies} | GDPR が現在のセッションに適用されるかどうか |
{tcf.tcString} | 同意文字列 |
gdprAdpls
はブール値であり、{tcf.gdprAppliesInt}
多くの広告サーバーは値を整数として期待しているため、1 または 0 を返す追加関数が提供されています。
プレーヤーが iframe にある場合、TCF API が親フレームで検出され、ポストメッセージ
API に同意するとプロキシが追加されます。CMP はプレーヤーの前にロードする必要があります。
マクロのデフォルト値
デフォルト値はマクロ内に提供できます。この場合、解決できない場所でこの値が使用されます。
http://example.com/ad/{pageVariable.adConf=1234}
になります
http://example.com/ad/1234
window.adconf
が未定義の場合。
カスタム広告マクロ
マクロを介して特定の情報にアクセスするには上記で説明した動的マクロ手法が望ましい方法ですが、動的マクロではアクセスできない広告サーバーから広告をリクエストする際に使用するカスタム値を定義している可能性があります。この場合、オーバーライドすることで値を利用できますadMacroReplacement()
方法。このメソッドをオーバーライドすると、広告リクエストに特殊な値を渡すことができます。
以下は、adMacroReplacement()
メソッドをオーバーライドする例です。この例では、カスタム値はページ DOM の一部として定義されるため、広告リクエストをページごとにカスタマイズできます。この例では、mySite.category
は広告リクエスト情報が格納される場所です。
brightcovePlayer.ima3.adMacroReplacement = function (url) {
var parameters = {
'{category}': mySite.category
};
for (var i in parameters) {
url = url.split(i).join(encodeURIComponent(parameters[i]));
}
return url;
}
特定の値を使用すると、何が起こっているのかを正確に明確にするのに役立ちます。広告サーバーへのリクエスト URL が次のものであると仮定します。
//myadserver.com/myads?adWord={category}
そして、mySite.category
ページ内で動的に割り当てられた値が文字列フィッシングポールであると仮定します。次に、あなたのバージョンの後adMacroReplacement()
メソッドは、広告リクエストURLと呼ばれ、次のように表示されます。
//myadserver.com/myads?adWord=fishing-pole
要約すると、adMacroReplacement()
メソッドをオーバーライドすると、カスタム値を広告マクロとして使用し、URL 広告リクエストに値を動的に割り当てることができます。
メソッド
IMA SDK と対話する必要がある場合は、SDK を正常に使用する前に、ima3-ready
イベントが送出されるのを待つ必要があります。これには、次の 2 つの方法が含まれます。
player.ima3.adrequest ()
このメソッドを呼び出すと、広告レスポンスが受信されるとすぐにオンデマンドアドリクエストが作成されます。このメソッドを呼び出すと、新しい IMA AdManager が作成されます。つまり、以前の広告レスポンス情報(たとえば、以前の VAST レスポンスで返されたポストロール広告)はすべて失われます。ブライトコーブでは、広告のタイミングに関する事前知識がわからない場合や、すべての広告コールをオンデマンドで発信する場合のみ、この方法を使用することをお勧めします。それ以外の場合には、プラグインの初期化時に最初の VAST 呼び出しにすべての広告データを入れるのが理にかなっています。
以下は、使用する際に考慮すべき2つの重要なポイントです。player.ima3.adrequest( )
:
- このメソッドは、オンデマンド要求モードでのみ使用します。
- この方法は、広告リクエストが完了する前にコンテンツが再生され、コンテンツがフラッシュされるため、プレロールにはお勧めしません。
パラメーター
-
adRequestURL
String
広大な広告タグへのパス。相対URLを渡すことができ、渡す必要があります。このパラメータはオプションで、serverUrl
パラメータが渡されなかった場合は、設定が使用されます。
戻り値:
- 何もない
例
player.ima3.adrequest('//pubads.g.doubleclick.net/gampad/ads?sz=640x360&iu=/6062/iab_vast_samples/skippable&ciu_szs=300x250,728x90&impl=s&gdfp_req=1&env=vp&output=xml_vast2&unviewed_position_start=1&url=[referrer_url]&correlator=[timestamp]');
Player.ima3.setadsRenderingSettings ()
このメソッドでは、HTML5 用の IMA SDK の広告レンダリング設定を設定できます。
広告マネージャーがまだない場合は、この設定が保存され、広告マネージャーが作成されると、指定した設定が使用されます。広告マネージャーがすでに存在する場合は、設定を使用するように更新されます。いずれの場合も、今後作成された新しい広告マネージャーでも、指定した最新の設定が使用されます。IMA SDK に直接アクセスして、AdsRenderingSettings
オブジェクトを作成できます。さまざまな設定が可能です。
パラメーター
- Google.ima.adsRenderingSettingsオブジェクト
戻り値:
- 何もない
例:
var adsRenderingSettings = new google.ima.AdsRenderingSettings();
adsRenderingSettings.bitrate = 2500;
adsRenderingSettings.enablePreloading = true;
player.ima3.setAdsRenderingSettings(adsRenderingSettings);
グーグルの adsManager
GoogleのGoogle.ima.adsManagerインターフェースから利用できるメソッドとプロパティがあります。情報を取得するインターフェイスのプロパティ/メソッドを使用できます。destroy
などのアクションを実行するメソッドを使用することはお勧めしませんsetAutoPlayAdBreaks
。stop
。たとえば、使用できるメソッドの 1 つがここに表示されます。
adsmanager.getremainingTime
タイプ: google.ima.AdsManager.getRemainingTime
使用法: myPlayer.ima3.adsManager.getRemainingTime()
このメソッドを呼び出すと、現在の広告の残り時間が返されます。広告が利用できない場合、または再生が終了した場合は-1 を返します。詳細については、Googleのを参照してくださいドキュメンテーションメソッドについて。
IMA SDKに直接アクセスする
プラグインオブジェクトでは、実行時に多くの IMA 設定を使用できます。たとえば、使用する広告 ID を特定するには、次のようにします。
var adId = player.ima3.currentAd.getAdId();
これらのプロパティと直接対話するように注意してください。間違ったメソッドを呼び出すと、予期せぬ結果や、アドバタイズメントが正しく再生されないことがあります。
adsLoader
タイプ: google.ima.AdsLoader
広告リクエストの作成に使用されるオブジェクトです。 ima.adsLoaderを参照。Ads Loads Loads は、adsready
プラグインによって起動されるまで利用できない場合があります。
AdsManager
タイプ: google.ima.AdsManager
広告の再生を担当するオブジェクトです。 ima.adsManager を参照してください。広告マネージャーは、adsready
がプラグインによって起動されるまで利用できません。
addisplayコンテナ
タイプ: google.ima.AdDisplayContainer
広告の表示要素を管理するオブジェクトです。 ima.addisplayContainer 広告表示コンテナは、adsready
がプラグインによって起動されるまで使用できない場合があります。
CurrentAD
タイプ: google.ima.Ad
広告が再生されているとき、現在の広告に関する情報をカプセル化するオブジェクト。 ima.adを参照。
イベント
プラグインは、ロード、初期化、および再生中にいくつかのカスタムイベントタイプを放出します。他のイベントと同様に、IMA3 イベントや広告フレームワークのイベントを聞くことができます。
player.on('ima3error', function(event) {
console.log('event', event);
});
イベント | 次の場合に送出されます。 |
---|---|
imA3-ready | ima3 プラグインコードがロードされ、IMA SDK をロードする準備が整いました。 |
ima3error | GoogleからIMA3 SDKをロード中にエラーが発生しました。それが発生した場合、広告は表示されません。 |
ima3-ad-エラー | IMA3 SDKでエラーが発生しました。広告の設定と設定を確認して、DoubleClick アカウントが正しく設定されていることを確認してください。一般的なトラブルシューティングタスクは、 DoubleClick サポートサイトで確認するか、DoubleClick アカウント担当者にお問い合わせください。 |
広告リクエスト | リクエストに応じて、広告データ。 |
ads-load | 広告リクエストの後に広告データが利用可能になったとき。 |
ads-ad-started | 広告の再生が開始されました。 |
ads-ad-ended | 広告の再生が終了しました。 |
ads-pause | 広告が一時停止されます。 |
ads-play | 一時停止から広告が再開されます。 |
ads-ad-スキップした | 広告はスキップされます。 |
広告第一四分位位 | 広告は合計期間の 25% を再生しました。 |
ads-midpoint | 広告は合計期間の 50% を再生しました。 |
ads-third-quartile | 広告は合計期間の 75% を演奏しました。 |
ads-click | 視聴者が再生中の広告をクリックした。 |
ads-volumechange | 再生中の広告のボリュームが変更されました。 |
ads-pod-started | リニア広告ポッド(シーケンスされた広告のグループ)の最初の広告が開始されました。 |
ads-pod-ended | リニア広告ポッド(シーケンシングされた広告のグループ)の最後の広告が終了しました。 |
ads-allpods-completed | すべてのリニア広告の再生が終了しました。 |
再発送ima3-
プレフィックス付きイベント
IMA3 プラグインを HTML モードで使用すると、すべての aderroEvents、 AdEvents、 adsManagerLoadedEventsがプレイヤーに再送されます。イベントが再ディスパッチされると、プレフィックスが付けられますima3-
。次の表に、再送されたイベントを示します。
再送されたイベント |
---|
ima3-ad-エラー |
ima3-ads-manager-ロード |
ima3-全部広告完成 |
ima3-クリック |
ima3-完全 |
ima3 コンテンツの一時停止が要求されました |
ima3-第一四分位数です |
im3-hardtimeout |
ima3-loaded |
imA3-中点 |
ima3-一時停止 |
imA3-ready |
ima3 再開 |
ima3 開始 |
ima3-三四分位 |
ima3 ボリュームが変更されました |
ライブビデオとIMA3
IMA3 プラグインのバージョン 3.1.0+ を使用している場合は、ライブイベントでプレロールを使用できます。プリロールは、ライブイベントが開始されたときではなく、各視聴者がライブイベントの視聴を開始したときに再生されます。ライブモジュールでイベントを設定する場合、「ライブモジュールを使用したライブイベントの作成と管理」ドキュメントに示すように、プレーヤーを選択するよう求められます。ステップバイステップに示すように、選択したプレーヤーの広告を設定します。広告文書を実装しています。
実装に関する次の詳細を確認します。
- プレロールのみが再生されます。ミッドロールとポストロールはサポートされていません。
- リクエスト広告の種類は、[ 読み込み時] または [プレイ時] のいずれかである必要があります。
- 前述のように、バージョン 3.1.0以降の IMA3 プラグインを使用する必要があります。
プレーヤー広告ライブラリ
videojs/videojs-contrib-ads GitHub リポジトリには、Brightcove Player と連携する動画広告ライブラリに必要な共通機能を提供するプラグインが含まれています。このプラグインは、動画広告の統合に必要な共通機能を提供し、広告インテグレーターにとって多くの懸念事項を処理し、広告統合のために記述する必要があるコードを削減します。プラグインは完全に文書化されており、インデックスページが最適な出発点となります。
プラグインから使用できるメソッド、イベント、プロパティがあります。詳細については、 videojs-contrib-ads APIリファレンスで提供されています。ここでは、メソッドから始めて、利用可能なツールのサンプルが提供されています。
方法 | 説明 |
---|---|
isinadMode () | true プレイヤーが広告モードであるかどうかを返します。 |
isWaitingForadBreak () | このメソッドは、true 広告モード中に広告休憩がまだ開始されていない場合に返されます。 |
isContentResuming () | このメソッドは、true 広告モード中に、広告ブレークが終了した後、コンテンツの再生を再開する前に戻ります。 |
プラグインはまた、多数のイベントを送出します、いくつかはここにリストされています:
イベント | 説明 |
---|---|
adstart | を呼び出した結果として直接発生しますstartLinearAdMode() 。 |
adend | endLinearAdMode() を呼び出した結果として直接起動しました。 |
readyforprerol | 広告プラグインがを呼び出して、プリロール広告ブレークを開始できることを示しますstartLinearAdMode() 。 |
プラグインはまた、多くのプロパティを提供し、いくつかはここにリストされています:
名前 | データタイプ | 説明 |
---|---|---|
ads.ad.id | ストリング | 再生される広告の一意の識別子 |
ads.ad.index | [番号] | 指定された時刻に再生される広告のインデックス。このインデックスは、広告ポッド内の広告の序数を識別します。 |
ads.ad.duration | [番号] | 広告の継続時間 (秒) |
ads.ad.type | 文字列 | プリロール、 MIDROLL、またはPOSTROLLのどちらか |
次のコードは、プロパティの使用方法を示しています。
var myPlayer,
player = bc('myPlayerID');
player.ima3({
serverUrl: '//solutions.brightcove.com/bcls/brightcove-player/vmap/simple-vmap.xml'
});
player.ready(function () {
myPlayer = this;
myPlayer.on('ads-ad-started', function (evt) {
console.log('ads-ad-started event passed to event handler', evt);
console.log('myPlayer.ads.ad.id', myPlayer.ads.ad.id);
console.log('myPlayer.ads.ad.index', myPlayer.ads.ad.index);
console.log('myPlayer.ads.ad.duration', myPlayer.ads.ad.duration);
console.log('myPlayer.ads.ad.type', myPlayer.ads.ad.type);
});
});
上記のコードからのコンソールでの出力は、ここに示されています。
コードを使用して実装する
IMA3 プラグインを実装するには、プレーヤーはプラグインコードの場所、スタイルシート、プラグイン名、プラグイン設定オプションを知る必要があります。プラグインコードとスタイルシートの場所は次のとおりです。
https://players.brightcove.net/videojs-ima3/3/videojs.ima3.min.js
https://players.brightcove.net/videojs-ima3/3/videojs.ima3.min.css
ima3
プラグインの名前はで、オプションの例は次のとおりです。
{
"serverUrl": "//pubads.g.doubleclick.net/gampad/ads?sz=400x300&iu=%2F6062...",
"timeout": 5000
}
次の例では、プレーヤーのページ内埋め込み実装を使用して、IMAプラグインをプレーヤーの単一インスタンスに関連付けます。
-
12行目です:
link
タグを使用して、プラグインの CSS をhead
HTML ページのに含めます。 -
15行目です:を与える
video
タグを付けるid
この場合、何らかの値を持つ属性myPlayerID。 -
23行目です:
script
タグを使用して、プラグインの JavaScript をbody
HTML ページのに含めます。 -
26-29行目は次のとおりです。メソッドを使用してプレーヤーを初期化し、
bc()
メソッドを呼び出しますima3()
。 -
30~33行目線:プレーヤーでは
ready
、プレイヤーへの参照が作成されます。コメントは、IMA3 プラグインのセットアップと設定を超えて、他のプレーヤーの動作を追加するためのコードを配置できる場所を示すために表示されます。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>IMA3 Plugin Code Example</title>
<style>
.video-js {
height: 344px;
width: 610px;
}
</style>
<link href="https://players.brightcove.net/videojs-ima3/3/videojs.ima3.min.css" rel="stylesheet">
</head>
<body>
<video-js id="myPlayerID"
data-video-id="3851380732001"
data-account="1752604059001"
data-player="Hy3gDJHu"
data-embed="default"
class="video-js"
controls></video-js>
<script src="https://players.brightcove.net/1752604059001/Hy3gDJHu_default/index.min.js"></script>
<script src="https://players.brightcove.net/videojs-ima3/3/videojs.ima3.min.js"></script>
<script>
var myPlayer;
var player = bc('myPlayerID');
player.ima3({
serverUrl: '//solutions.brightcove.com/bcls/brightcove-player/vmap/simple-vmap.xml'
});
player.ready(function() {
myPlayer = this;
//Do something
});
</script>
</body>
</html>
ハイブリッド実装
これまでのところ、この文書では、iMAプラグインがStudioで実装され、次にコードで実装されています。一部のお客様は、基本プラグインをStudioに追加し、その後ページのJavaScriptで設定を行うハイブリッド実装を実行したいと考えています。このハイブリッド実装については、このセクションで説明します。
前のセクションで見てきたように、IMA3 プラグインを純粋にコードで実装するときは、関数形式でプラグインを操作します。Studioにプラグインをインストールし、ページで設定する場合は、プラグインをオブジェクトとして扱う必要があります。たとえば、ここに示すように、Studioを使用してIMA3プラグインをインストールしたと仮定します。広告タグ提供されます:
これで、ページのJavaScriptで、次のようにプロパティ値を割り当てることができます(プラグインをオブジェクトとして扱うことを忘れないでください)。
videojs.getPlayer('myPlayerID').ready(function() {
var myPlayer = this;
myPlayer.ima3.settings.serverUrl = 'http://solutions.brightcove.com/bcls/brightcove-player/vmap/simple-vmap.xml';
});
もちろん、この方法で他のプロパティに値を割り当てることができます。
デバッグ支援
広告の再生に関する問題のデバッグに役立つオプションは 2 つあります。何もしない場合、コンソールには、広告がいつ開始および終了したかに関する情報のみが表示されます。
最初のオプションは、このドキュメントの前半のオプションセクション。これにより、プラグインレベルでデバッグがオンになります。追加のデバッグ情報が表示されます。
2番目のオプションは、Googleが提供するツールを利用します。sdkurlオプションには、Google が提供する JavaScript ファイルを指す値を指定します。構成例を次に示します。
var myPlayer = bc('myPlayerID');
myPlayer.ima3({
"serverUrl": "//solutions.brightcove.com/bcls/brightcove-player/vmap/simple-vmap.xml",
"debug": true,
"sdkurl": "//imasdk.googleapis.com/js/sdkloader/ima3_debug.js"
});
myPlayer.ready(function() {
myPlayer = this;
});
展開されたデバッグ情報は、次のようになります。(The yellow highlighted information is from the plugin's debugging and the blue highlighted information is generated by the Google tool.)
GoogleのIMAエラーの詳細については、クラスgoogle.ima.AdError GoogleのセクションGoogle IMA HTML5 SDK API資料。
既知の問題
ピクチャインピクチャ無効
IMA3 プラグインを実装すると、ピクチャインピクチャコントロールは無効になります。これは意図的な設計決定です。
Studioでの自動再生の設定
IMA3 プラグインを使用して広告を表示している場合は、Studio で自動再生を設定しないでください。Studioで自動再生を設定すると、広告の再生に失敗することがあります。を参照してください自動再生に関する考慮事項詳細については、ドキュメントを参照してください。
もっと詳しく かつ 広告カウントダウンタイマー デフォルトでは表示されなくなりました
を使用して回避策が存在しますuseStyledLinearAds
GoogleのIMASDKのプロパティ。次の図に示すように、この値を true に設定します。
adsRenderingSettings.useStyledLinearAds=true;
詳細については、Google の Google.ima.adsRenderingSettings のドキュメントを参照してください。
Androidのクロム:プリロールのミュートを解除すると、ビデオは自動再生されません
Android で Chrome(最新バージョン)を使用し、プリロールの再生中にプレーヤーのミュートを解除すると、プレロール終了後に自動的に動画の再生が開始されません。広告のミュートを解除すると、Brightcove Player の音量保持機能もコンテンツのミュートが解除されます。視聴者の意図は音声を聞くことです。ただし、新しいバージョンの Chrome Android では、ミュートされていないコンテンツは自動再生できず、再生を開始するためのユーザージェスチャ要件が追加されました。これは OS /デバイスレベルの設定であり、ブライトコーブが上書きできるものではありません。
プリロールの現在の時間表示が正確でない可能性があります
この問題は、IMA SDK が現在の時刻を報告する方法の制限と関係しています。現時点では、文書化された回避作業はありません。
Safari 11 デスクトップでミュートされていないミッドロールが再生されないことがある
GoogleのIMA SDKの変更により、Safari 11デスクトップでミュートされていないミッドロールが再生されないことがあります。Safari 11(デスクトップおよびおそらくiOS)で自動再生が拒否されたときにエラーをトリガーし、広告をキャンセルする新しい動作が導入されました。この方法で影響を受けたミッドロールは、自動再生が阻止されたことを示すエラーコード 1205 で、広告エラー 400 が発生します。
サポートされている環境
サポートされているプラットフォーム、広告標準、動画メディアの組み合わせを確認するには、Google の動画機能および SDK 互換性ドキュメントを参照してください。その文書とビデオスイートインスペクター単に機能しない試みられたIMA3アドバタイズメント構成を診断するのに役立ちます。
オーバーレイとフルスクリーントランジション
video.js では、フルスクリーン API が使用可能な場合に使用されます。異なるブラウザでは、フルスクリーンへの遷移が異なって実装され、フルスクリーンモードへの切り替えとフルスクリーンモードからの切り替え時に外観に矛盾が生じることがあります。ほとんどの実装では、フルスクリーンに反映されるエレメントは、元のサイズからターゲットサイズまで幾何学的にスケーリング (つまりズーム) されます。ただし、ほとんどのオーバーレイ広告は固定サイズで表示するように設計されているため、アニメーションが完了するまで歪んで表示されることがあります。
iOS デバイスでスキップ可能な広告
IMA3プラグインを使用すると、次の条件が満たされたときにスキップ可能な広告をiPhoneで再生できます。
playsinline
video
属性は要素に存在しています-
disableCustomPlaybackForIOS10Plus
設定はプラグインに渡され、true
playsinline
属性の場合は、video
タグの属性として含めるだけです。
<video-js id="player"
width="640"
height="360"
data-video-id="4524585416001"
data-account="4360108595001"
data-player="r12ukws9l"
data-embed="default"
class="video-js"
playsinline
controls></video-js>
のためにdisableCustomPlaybackForIOS10Plus
設定、のプロパティとして割り当てますima3SdkSettings
:
player.ima3({
ima3SdkSettings: {
"disableCustomPlaybackForIOS10Plus": true
}
})
Studioを使っていてそこでの設定を使いたい場合は、IMA3プラグインの設定にこれを追加してください:
{
"ima3SdkSettings": {
"disableCustomPlaybackForIOS10Plus": true
}
}
この設定の詳細については、 disableCustomPlaybackForIOS10Plusのエントリima3SdkSettings
このドキュメントのセクション。
スキップ可能な広告の制限:
- 広告をスキップボタン 広告コントロールバーによって部分的にカバーされる場合がある 一部のモバイルデバイスでは。これにより、エンドユーザーが実際に広告をスキップすることが困難になります。ユーザーはピンチしてズームして、モバイルデバイスで [ 広告をスキップ]ボタンを大きくして、クリックできるようにします。
-
playsinline
iPhoneとなしdisableCustomPlaybackForIOS10Plus
-スキップ可能な広告は再生されません。 -
iPhoneと
playsinline
とdisableCustomPlaybackForIOS10Plus
-広告はインラインで再生されますが、フルスクリーンを使用している場合、広告は表示されませんが、広告の音声は再生されます。つまり、全画面表示のスキップ可能な広告は正しく機能しません。 - iPad -広告はインラインで再生されますが、スキップはフルスクリーンモードでは使用できません
iOS 10 iPadおよびiPhone:playsinline
プリロール広告を使用して全画面表示すると機能しない
使用する場合playsinline
iOS 10 iPadおよびiPhoneで、フルスクリーンではなくビデオを表示できるようにすると、プレロール広告が開始され、フルスクリーンボタンがクリックされた場合、広告は再生されません。これはGoogleのIMA実装の制限であり、Googleは問題を解決する計画がありません。
gpt_proxy.jsとの競合
IMA3でGPTプロキシスクリプトを使用している場合、およびadTechOderはHTML5まず、再生の問題が発生する可能性があります。window.googleまたは window.google.ima を使用するスクリプトを使用すると、IMA3プラグインが影響を受けます。Brightcove Playerを使用しているかどうかを確認することをお勧めします。使用している場合は、そのような場合はプロキシをロードしないでください。
サイズ変更広告をスキップボタン
サイズを変更することはできません広告をスキップボタン。Brightcove Player API には、[ 広告をスキップ]ボタンのサイズを指定するメソッドやプロパティがありません。開発者レベルでは、パブリッシャーが Vpaid 広告を使用している場合、Brightcove Player の UI およびエレメント配信内に収まるよう、独自のスキップ広告ボタンとロジックを実装できます。
iOSでは広告は自動再生されません
IMA3プラグインに固有ではありませんが、, autoplay
それはiOSが制限されていることを知っています, ので、広告は、ユーザーのジェスチャーが行われるまで開始されません.
アドキューポイントの問題
アドキューポイントの使用に固有の問題については、既知の問題点のセクション広告キューポイントを使用した広告の表示資料。
IMA3SDKのURL
パラメータ
Google 広告マネージャーの URL
パラメーターは、広告リクエストの送信元となる完全な URL です。この値はIMA SDKによって自動的に設定され、実際には指定した値はすべて上書きされます。
更新履歴
過去のリリースノートについては、ここの changelog を参照してください。