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

اختيار النظام الأساسي: HTML5 Android iOS tvOS Roku

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

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

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

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

في شكل رسم بياني، يبدو ذلك على النحو التالي:

في ما يلي كيفية تنفيذ snapack باستخدام حزمة تطوير البرامج (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