Snapback hareketi

Video yayıncısı olarak, izleyicilerinizin videonun ortasında gösterilen reklamları geçmesini önlemek isteyebilirsiniz. Kullanıcı reklam arasını geçecek şekilde arama yaptığında, bu kullanıcıyı reklam arasının başlangıcına 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. dakikada, kullanıcının içeriği izleyebilmesi için 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ını atlayan bir arama gerçekleştirip gerçekleştirmediğini kontrol edin. Bu şekilde devam ediyorsa 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, grafik şu şekilde görünür:

Gelişmiş Örneğimizde gösterildiği gibi, IMA DAI SDK'sı kullanarak tutturma işlemini 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 işlemi gerçekleştirip gerçekleştirmediğini kontrol edin ve böyle bir durumda, kullanıcıyı reklam arasına geri götürün. Roku gelişmiş örneği, kullanıcının arama yapması için uzaktan düğmeye basılmasına dayanır. Kullanıcı ileri düğmesine her bastığında, akışta belirli sayıda saniye atlar. Bu atlamayı işleyen aynı yöntem, atlamanın bir reklam arasına mı yoksa reklam arasına mı geçtiğini ve atlanırsa kullanıcıyı bunun yerine reklam arasının başına gönderip göndermediğini kontrol eder:

Function handleFastForward(player as Object, streamManager as Object, updatedTime As Integer)
  previousAd = streamManager.getPreviousCuePoint(updatedTime)
  If previousAd = Invalid or previousAd.hasPlayed
    player.seek(updatedTime * 1000)
  Else If previousAd.start > player.currentTime
    player.isSnapback = True
    player.timeAfterSnapback = updatedTime
    player.seek(previousAd.start * 1000 + 1000)
  End If
End Function

Kullanıcıyı asıl konumuna geri getirmek

adBreakEnded işleyicinizde, önceki reklam arasının tutturma işlemi sonucunda oynatılıp oynatılmadığını kontrol edin. Böyle bir durumda, kullanıcıyı başlangıçta ulaşmaya çalıştığı yere geri döndürün (az önce oynatılan reklam arasının ortası olmadığı sürece):

player.adBreakEnded = Function(adBreakInfo as Object)
  If m.isSnapback
    m.seek(m.timeAfterSnapback * 1000)
    m.isSnapback = False
  End If
End Function