الرجوع إلى فاصل إعلاني تم تخطّيه

وبصفتك ناشر فيديو، قد تحتاج إلى منع المشاهدين من تخطّي الإعلانات أثناء التشغيل عندما يتخطّى المستخدم الفاصل الإعلاني يمكنك إعادتها إلى بداية الفاصل الإعلاني، ثم إلى موقع البحث بعد اكتمال ذلك الفاصل الإعلاني. هذا النمط تسمى "Snapback".

كمثال، انظر الرسم التخطيطي أدناه. إذا كان المستخدم يشاهد فيديو ويقرر الانتقال من علامة 5 دقائق إلى 15 دقيقة. ومع ذلك، هناك فاصل إعلاني عند الوصول إلى علامة الـ 10 دقائق التي تريد ليتمكّنوا من مشاهدة المحتوى بعد انتهائه:

لعرض هذا الفاصل الإعلاني، اتّبِع الخطوات التالية:

  1. تحقّق مما إذا كان المستخدم قد أجرى عملية بحث تجاوزت فاصل إعلاني لم تتم مشاهدته. وفي هذه الحالة، ارجع إلى الفاصل الإعلاني.
  2. بعد اكتمال الفاصل الإعلاني، يمكنك إعادته إلى موضعه الأصلي.

وفي شكل الرسم التخطيطي، يبدو ذلك كما يلي:

في ما يلي طريقة تنفيذ Snapack باستخدام حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية، كما هو موضّح في مثال متقدم.

منع التمرير حتى لا تتم مشاهدة فاصل إعلاني

تحقّق مما إذا كان المستخدم قد أجرى عملية بحث تجاوزت فاصل إعلاني لم تتم مشاهدته. وفي هذه الحالة، ارجع إلى الفاصل الإعلاني. يعتمد نموذج 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