اسنپ ​​بک

به‌عنوان یک ناشر ویدیو، ممکن است بخواهید از جستجوی بینندگان خود در تبلیغات میان‌پول خود جلوگیری کنید. وقتی کاربر به دنبال وقفه تبلیغاتی است، می‌توانید او را به ابتدای آن وقفه تبلیغاتی برگردانید و پس از اتمام آن وقفه تبلیغاتی، او را به مکان جستجوی خود برگردانید. این ویژگی "snapback" نام دارد.

به عنوان مثال، نمودار زیر را ببینید. بیننده شما در حال تماشای یک ویدیو است و تصمیم می گیرد از نقطه 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 خود، بررسی کنید که آیا وقفه تبلیغاتی قبلی در نتیجه snapback پخش شده است یا خیر. اگر چنین است، کاربر را به مکانی که در ابتدا می‌خواست به دنبال آن بود برگردانید (تا زمانی که اواسط وقفه تبلیغاتی پخش نشده باشد):

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