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

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

در اینجا نحوه پیادهسازی snappack با استفاده از 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 خود، بررسی کنید که آیا تبلیغ قبلی در نتیجهی snapback پخش شده است یا خیر. در این صورت، کاربر را به جایی که در ابتدا قصد جستجو به آن را داشته است، برگردانید (البته تا زمانی که وسط تبلیغ پخش نشده باشد):
player.adBreakEnded = Function(adBreakInfo as Object)
If m.isSnapback
m.seek(m.timeAfterSnapback * 1000)
m.isSnapback = False
End If
End Function