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:

Gelişmiş Örneği'nde gösterildiği gibi, bu iş akışını Roku IMA SDK'da nasıl uygulayacağınızı buradan öğrenebilirsiniz.

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. Roku gelişmiş örneği, kullanıcının arama yapacağı uzaktan kumandadaki düğmelere basılmasına dayanır. Kullanıcı ileri düğmesine her bastığında, akışta belirli bir saniye kadar ileri atlar. Bu atlama işlemini gerçekleştiren aynı yöntem, atlamanın mı yoksa bir reklam arasına mı geçtiğini ve atlanırsa kullanıcıyı bunun yerine reklam arasının başına mı gönderdiğ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ı ilk aradığı yere geri götürmek

adBreakEnded işleyicinizde, önceki reklam arasının "Snapback" sonucunda oynatılıp oynatılmadığını kontrol edin. Bu durumda, kullanıcıyı başlangıçta gitmek istedikleri 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