スナップバック

動画のパブリッシャーは、視聴者が スキップできますユーザーがミッドロール挿入点を超えてシークすると、 その広告ブレークの先頭に戻って そのミッドロール挿入点が完了した後に、シークする位置にユーザーが移動します。この 「スナップバック」と呼ばれます。

例として、以下の図をご覧ください。視聴者が動画を視聴している 5 分時点から 15 分の時点までシークします。 希望する 10 分の時点でミッドロール挿入点を設けたい。 ユーザーが次のコンテンツを視聴する前に、次の動画を視聴するようユーザーに促すことができます。

このミッドロール挿入点を表示する方法は次のとおりです。

  1. ユーザーがシークを実行して、視聴していないミッドロール挿入点を通過したかどうかを確認します。 その場合はミッドロール挿入点に戻ります
  2. ミッドロール挿入点が完了したら、元の移動に戻ります。

図形式では、次のようになります。

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;
  }
}