Video yayıncısı olarak, izleyicilerinizin videonun ortasında gösterilen reklamları atlamasını engellemek isteyebilirsiniz. Kullanıcı bir reklam arasını atladığında onu reklam arasının başlangıcına geri götürebilir ve reklam arası tamamlandıktan sonra daha önce gittiği oynatma konumuna döndürebilirsiniz. Bu özelliğe "geri sarma" denir.
Örnek olarak aşağıdaki şemaya bakın. İzleyiciniz bir video izlerken 5. dakikadan 15. dakikaya atlamaya karar veriyor. Ancak, 10. dakikada bir reklam arası var ve bu reklam arasını izlemeden sonraki içeriği izleyemezler:
Bu reklam arasını göstermek için aşağıdaki adımları uygulayın:
- Kullanıcının, izlenmemiş bir reklam arasını atlayarak ileri sarma işlemi yapıp yapmadığını kontrol edin. Yaptıysa kullanıcıyı reklam arasına geri götürün.
- Reklam arası tamamlandıktan sonra kullanıcıları orijinal oynatma konumlarına geri döndürün.
Bu durum, diyagramda şu şekilde görünür:
Gelişmiş Örnek'te gösterildiği gibi, IMA DAI SDK'yı kullanarak snapack'i nasıl uygulayacağınız aşağıda açıklanmıştır.
İzleyicilerin, reklam arasını izlemeden geçmesini engelleme
Kullanıcının, izlenmemiş bir reklam arasını geçen bir sarma işlemi yapıp yapmadığını kontrol edin ve yaptıysa kullanıcıyı reklam arasına geri götürün. Roku gelişmiş örneğinde, kullanıcının arama yapması için uzaktan kumanda düğmelerine basması gerekir. Kullanıcı ileri düğmesine her bastığında akışta belirli bir süre ileri atlar. Bu atlamayı işleyen aynı yöntem, atlamanın kullanıcıyı reklam aralığının ötesine veya içine götürüp götürmediğini de kontrol eder. Atlamanın kullanıcıyı reklam aralığının ötesine veya içine götürmesi durumunda kullanıcıyı reklam aralığının başına yönlendirir:
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ı orijinal arama konumuna geri döndürme
adBreakEnded
işleyicinizde, önceki reklam arasının geri sarma sonucunda oynatılıp oynatılmadığını kontrol edin. Bu durumda, kullanıcıyı başlangıçta aradığı yere geri yönlendirin (yeni oynatılan reklam arası ortasında olmadığı sürece):
player.adBreakEnded = Function(adBreakInfo as Object)
If m.isSnapback
m.seek(m.timeAfterSnapback * 1000)
m.isSnapback = False
End If
End Function