स्नैपबैक

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

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

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

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

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

IMA डीएआई SDK टूल का इस्तेमाल करके स्नैपबैक लागू करने का तरीका यहां बताया गया है बेहतर उदाहरण.

वीडियो में आगे/पीछे जाने की सुविधा इस्तेमाल न करें, ताकि कोई विज्ञापन न देखा जा सके

देखें कि क्या उपयोगकर्ता ने वीडियो में आगे/पीछे जाने की कार्रवाई की है, जो विज्ञापन के लिए नहीं देखे गए ब्रेक से आगे निकल चुकी है, और अगर ऐसा है, तो उन्हें विज्ञापन के लिए ब्रेक पर वापस ले जाएं. HTML5 SDK में, कॉन्टेंट प्लेयर के seeked इवेंट पर इवेंट लिसनर सेट करें onSeekEnd() ट्रिगर करने के लिए. यह तरीका (नीचे बताया गया है) क्यू पॉइंट की जांच करता है उपयोगकर्ता के ढूंढें जाने के समय से पहले. अगर इसे कभी नहीं चलाया जाता, तो इसके शुरू में जाएं विज्ञापन के लिए ब्रेक का इस्तेमाल किया जा सकता है. साथ ही, विज्ञापन के लिए snapForwardTime में सीक पॉइंट.

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

उपयोगकर्ता को उसके मूल वीडियो पर वापस ले जाएं

अब AD_BREAK_ENDED में होने वाला इवेंट होने पर, यह देख लें कि snapForwardTime सेट है. अगर ऐसा है, तो उपयोगकर्ता को स्ट्रीम में उस पॉइंट पर ले जाएं, क्योंकि विज्ञापन स्नैपबैक का नतीजा था कि उन्होंने अभी जो ब्रेक देखा वह स्नैपबैक का नतीजा था:

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