Snapback hareketi

Video yayıncısı olarak, izleyicilerinizin videonun ortasında gösterilen reklamları geçmesini önlemek isteyebilirsiniz. Kullanıcı bir reklam arasını geçtikten sonra arama yaptığında reklam arasının başlangıcına geri götürebilir ve reklam arası tamamlandıktan sonra daha önce gittiği oynatma konumuna geri döndürebilirsiniz. Bu özelliğe "snapback" denir.

Örnek olarak aşağıdaki şemaya bakın. İzleyiciniz bir video izliyor ve 5 dakika ile 15 dakika arasında geçiş yapmaya karar veriyor. Bununla birlikte, 10 dakika sonra içeriği izleyebilmek için önce izlemesini istediğiniz bir reklam arası vardır:

Bu reklam arasını göstermek için aşağıdaki adımları uygulayın:

  1. Kullanıcının izlenmemiş bir reklam arasından atlayan bir arama çalıştırıp çalıştırmadığını kontrol edin. Bu durumda, kullanıcıyı reklam arasına geri götürün.
  2. Reklam arası tamamlandıktan sonra, reklamları asıl konumlarına döndürün.

Diyagram biçiminde, bu şöyle görünür:

Bu iş akışını, Gelişmiş Örnek'te gösterildiği gibi HTML5 IMA SDK'da nasıl uygulayacağınız aşağıda açıklanmıştır.

Aramanın, reklam arasını izlenmeden bırakmasını önleme

Kullanıcının izlenmemiş bir reklam arasından geçen bir arama gerçekleştirip gerçekleştirmediğini kontrol edin. Bu durumda, kullanıcıyı reklam arasına geri götürün. HTML5 SDK'sında onSeekEnd() tetiklemek için içerik oynatıcının seeked etkinliğinde bir etkinlik işleyici ayarlayın. Bu yöntem (aşağıda sunulmuştur), kullanıcının arama zamanından önce işaret noktasını kontrol eder. Çalınmıyorsa ilk istenen arama noktası yerine reklam arasının başlangıcına gidin ve istenen arama noktasını snapForwardTime konumuna kaydedin.

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

Kullanıcıyı ilk aradığı yere geri götürmek

Şimdi bir AD_BREAK_ENDED etkinliği aldığınızda, snapForwardTime ayarlı olup olmadığını kontrol edin. Öyleyse kullanıcıyı akışta ilgili noktaya yönlendirin. Çünkü az önce izledikleri reklam arası reklam atlamanın sonucudur:

function onAdBreakEnded(e) {
  videoElement.controls = true;
  clickElement.style.display = 'none';
  adUiDiv.style.display = 'none';
  if (snapForwardTime && snapForwardTime > videoElement.currentTime) {
    videoElement.currentTime = snapForwardTime;
    snapForwardTime = null;
  }
}