स्नैपबैक

वीडियो पब्लिशर के तौर पर, हो सकता है कि आप चाहें, तो दर्शक वीडियो के बीच में दिखने वाले विज्ञापनों से विज्ञापन न देखें. जब कोई उपयोगकर्ता विज्ञापन के लिए ब्रेक की जगह देखता है, तो उसे विज्ञापन के लिए ब्रेक की शुरुआत में ले जाया जा सकता है. साथ ही, विज्ञापन के लिए ब्रेक की प्रोसेस पूरी होने के बाद, उसे खोजने की जगह पर वापस लाया जा सकता है. इस सुविधा को "स्नैपबैक" कहते हैं.

उदाहरण के तौर पर, नीचे दिया गया डायग्राम देखें. दर्शक कोई वीडियो देख रहा होता है और वह 5-मिनट से लेकर 15-मिनट के निशान तक वीडियो देखना चाहता है. हालांकि, 10 मिनट के अंदर एक विज्ञापन ब्रेक होता है, जिसे आप वीडियो के बाद देखने से पहले देखना चाहते हैं:

विज्ञापन के लिए यह ब्रेक दिखाने के लिए, यह तरीका अपनाएं:

  1. देखें कि क्या उपयोगकर्ता ने कोई ऐसी सीक चलाई है जो देखे गए विज्ञापन के लिए ब्रेक से आगे बढ़ गई है और अगर ऐसा है, तो उसे विज्ञापन के लिए ब्रेक पर वापस ले जाएं.
  2. विज्ञापन के लिए ब्रेक खत्म होने के बाद, वीडियो को उसके मूल वीडियो पर वापस ले जाएं.

डायग्राम के तौर पर, यह कुछ ऐसा दिखेगा:

जैसा कि हमारे बेहतर उदाहरण में बताया गया है, इस वर्कफ़्लो को Roku IMA SDK में लागू करने का तरीका यहां बताया गया है.

वीडियो में आगे/पीछे जाने की सुविधा को वीडियो के बीच में दिखने वाले विज्ञापन के लिए ब्रेक लेने से रोकें

देखें कि क्या उपयोगकर्ता ने कोई ऐसी खोज की है जो न देखे गए विज्ञापन ब्रेक के बाद भी हुई है. अगर ऐसा है, तो उन्हें विज्ञापन के लिए बने ब्रेक पर वापस ले जाएं. Roku का ऐडवांस सैंपल, उपयोगकर्ता के लिए रिमोट के बटन दबाकर दबाने पर निर्भर करता है. उपयोगकर्ता जब भी फ़ॉरवर्ड करने वाला बटन दबाता है, वह स्ट्रीम में एक तय सेकंड तक आगे बढ़ जाता है. इस जंप को मैनेज करने वाले तरीके का इस्तेमाल यह भी देखने के लिए किया जाता है कि जंप उन्हें पीछे ले जाता है या विज्ञापन ब्रेक में ले जाता है. अगर ऐसा होता है, तो उपयोगकर्ता को विज्ञापन ब्रेक की शुरुआत में भेज देता है:

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

दर्शक को वीडियो के मूल हिस्से पर वापस ले जाएं

अपने adBreakEnded हैंडलर में यह देखें कि क्या पिछला विज्ञापन ब्रेक, स्नैपबैक की वजह से चलाया गया था. अगर ऐसा है, तो उपयोगकर्ता को उस जगह पर वापस ले जाएं जिसे वे शुरुआत में खोज रहे थे (अगर इसे अभी-अभी चलाए गए विज्ञापन के लिए ब्रेक के बीच में न दिखाया गया हो):

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