概要
プレーヤーのビューアビリティ(視認性)は、広告連携やフローティング プレーヤーのような UI 表現において極めて重要です。本コンテキストでは、「ビューアビリティ」を、任意の時点でブラウザのビューポート内に表示されているプレーヤーの割合として定義します。プレーヤーの一定割合がビューポート内にある場合、そのプレーヤーは「ビューアブル(可視)」と見なされます。
Brightcove Player 7 では、ビューアビリティを追跡する DOM イベントが導入され、プレーヤーの視認状態に依存する有用な動作が追加されています。
プレーヤー設定
プレーヤーのビューアビリティ イベントと動作は、プレーヤーの JSON 設定で構成できます。すべての設定は viewability プロパティ配下にあります。
| プロパティ | 説明 | タイプ | デフォルト |
|---|---|---|---|
pause_in_background_tab |
true の場合、ブラウザタブがバックグラウンドに移動するとプレーヤーが自動的に一時停止します。 | boolean |
false |
viewability_threshold |
プレーヤーが「ビューアブル」と見なされるために、ビューポート内に表示される必要がある割合(0〜1)。 | number |
0.6 |
min_duration_for_viewable_impression |
広告再生開始後、ビューアブル インプレッションを判定するまでに待機するミリ秒数。 デフォルトでは、広告再生開始から 2 秒後に viewable-ad-impression イベントを使用して判定が行われます。
|
number |
2000 |
threshold_percentage_increment |
viewable-percent-change イベントが発火するために必要なビューアビリティの変化量。デフォルト値 5 は、プレーヤーの視認率が 5% 以上変化した場合(例:45% → 50%)にのみイベントが発火することを意味します。これ以上細かくすることは推奨されません。イベントが大量に発生するためです。 |
number |
5 |
delay_autoplay_if_not_viewable |
自動再生が有効なプレーヤーでのみ動作します。true の場合、プレーヤーがビューアブルになるまで再生開始を遅延します。false の場合、視認状態に関係なく再生を試みます(自動再生プレーヤーのデフォルト動作)。
|
boolean |
false |
delay_autoplay_on_mobile_only |
true の場合、この自動再生遅延機能はモバイル環境(iOS または Android)のみで有効になります。注意:この場合、タブレットもモバイル環境として扱われます。 |
boolean |
true |
pause_when_not_viewable |
true の場合、プレーヤーがビューアブルでなくなると一時停止し、再びビューアブルになると再生が再開されます。false の場合、viewable-change によって再生/停止は切り替わりません(プレーヤーのデフォルト動作)。
|
boolean |
false |
pause_on_blur |
true の場合、ユーザーがブラウザ ウィンドウから別のアプリへ移動するとプレーヤーが自動的に一時停止します。
|
boolean |
false |
例
以下はビューアビリティ設定を含むプレーヤー構成 JSON の例です:
{
... other properties ...
"viewability": {
"viewability_threshold": 0.3,
"pause_when_not_viewable": true
}
}
この例では、プレーヤーの可視部分が 30% 未満になる(ユーザーがスクロールして画面外に移動するなど)と再生が一時停止し、再び可視範囲に戻ると再生が再開されます。
ビューアビリティ イベント
ユーザーは、ビューアビリティに関連する 3 つの新しいイベントを利用できます。
-
viewable-changeこのイベントは、プレーヤーがビューアブルな状態へ移行する、またはその状態から離れる際に発火します。
例プロパティ タイプ 説明 viewableboolean プレーヤーがビューアブルな状態かどうかを示します viewablePercentnumber 現在ビューポートに表示されているプレーヤーの割合を 0〜1 の小数で表します(例:0.5 は 50% を意味します) player.on('viewable-change', (e) => { if (e.viewable) { player.log('the player is viewable!'); } else { player.log('the player is not viewable!'); } });
-
viewable-percent-changeこのイベントは、プレーヤーのビューアブル割合が変化したときに発火します。
例プロパティ タイプ 説明 viewableboolean プレーヤーがビューアブルな状態かどうかを示します viewablePercentnumber 現在ビューポートに表示されているプレーヤーの割合を 0〜1 の小数で表します(例:0.5 は 50%) player.on('viewable-percent-change', (e) => { let percentage = e.viewablePercent * 100; player.log(`the player is ${percentage}% viewable!`); });
-
viewable-ad-impressionこのイベントは、ビューアブルな広告インプレッションが計測された際に発火します。広告再生時以外には発火しません。
つまり、広告が再生を開始し、プレーヤーがビューアブルな状態で
min_duration_for_viewable_impressionで指定した時間だけ再生された後、このイベントが発火します。このイベントでは追加データは渡されません。