動画のパブリッシャーは、視聴者が スキップできますユーザーがミッドロール挿入点を超えてシークすると、 その広告ブレークの先頭に戻って そのミッドロール挿入点が完了した後に、シークする位置にユーザーが移動します。この 「スナップバック」と呼ばれます。
例として、以下の図をご覧ください。視聴者が動画を視聴している 5 分時点から 15 分の時点までシークします。 希望する 10 分の時点でミッドロール挿入点を設けたい。 ユーザーが次のコンテンツを視聴する前に、次の動画を視聴するようユーザーに促すことができます。
このミッドロール挿入点を表示する方法は次のとおりです。
- ユーザーがシークを実行して、視聴していないミッドロール挿入点を通過したかどうかを確認します。 その場合はミッドロール挿入点に戻ります
- ミッドロール挿入点が完了したら、元の移動に戻ります。
図形式では、次のようになります。
IMA DAI SDK を使ってスナップバックを実装する方法は次のとおりです。 高度な例。
シークで広告ブレークが再生されないままにならないようにする
ユーザーが再生していない広告ブレークを通過したシークをユーザーが実行したかどうかを確認します。
その場合はミッドロール挿入点に戻ります
HTML5 SDK では、コンテンツ プレーヤーの seeked
イベントにイベント リスナーを設定します。
onSeekEnd()
をトリガーします。このメソッド(下記参照)はキューポイントをチェックし、
ユーザーがシーク時間の前に位置を決定できます。その曲が未再生の場合は、その曲の最初まで移動します。
最初の目的のシーク ポイントではなくミッドロール挿入点を指定し、
snapForwardTime
内の移動点。
function onSeekEnd() {
if (isLiveStream) { return; }
if (isSnapback) {
isSnapback = false;
return;
}
var currentTime = videoElement.currentTime;
var previousCuePoint =
streamManager.previousCuePointForStreamTime(currentTime);
if (previousCuePoint && !previousCuePoint.played) {
isSnapback = true;
snapForwardTime = currentTime;
videoElement.currentTime = previousCuePoint.start;
}
ユーザーを元の検索モードに戻す
AD_BREAK_ENDED
イベントを受け取ったときに、snapForwardTime
かどうかを確認する
設定されます。広告を表示するには、ストリーム内のその時点にユーザーを誘導します。
視聴した休憩はスナップバックの結果です。
function onAdBreakEnded(e) {
videoElement.controls = true;
clickElement.style.display = 'none';
adUiDiv.style.display = 'none';
if (snapForwardTime && snapForwardTime > videoElement.currentTime) {
videoElement.currentTime = snapForwardTime;
snapForwardTime = null;
}
}