بهعنوان ناشر ویدیو، ممکن است بخواهید از رد کردن آگهیهای میانویدیویی توسط بینندگان خود جلوگیری کنید. وقتی کاربر از وقفه آگهی رد میشود، میتوانید او را به ابتدای آن وقفه آگهی برگردانید و سپس پساز تکمیل آن وقفه آگهی، او را به مکان رد شدن برگردانید. به این ویژگی «بازگشت سریع» میگویند.
بهعنوان مثال، نمودار زیر را ببینید. بیننده شما درحال تماشای ویدیو است و تصمیم میگیرد از دقیقه ۵ به دقیقه ۱۵ برود. بااینحال، یک وقفه آگهی در دقیقه ۱۰ وجود دارد که میخواهید قبلاز تماشای محتوای بعداز آن، آن را تماشا کنند:

برای نمایش این وقفه آگهی، مراحل زیر را انجام دهید:
- بررسی کنید آیا کاربر جستجویی انجام داده است که از وقفه آگهی تماشانشده عبور کرده است، و اگر چنین است، او را به وقفه آگهی برگردانید.
- پساز تکمیل وقفه آگهی، آنها را به جستجوی اصلیشان برگردانید.
در قالب نمودار، اینگونه بهنظر میرسد:

در اینجا نحوه پیادهسازی snapack بااستفاده از IMA DAI 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