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

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

در اینجا نحوه پیادهسازی snapback بااستفاده از IMA DAI SDK، همانطور که در نمونه پیشرفته نشان داده شده است، آورده شده است.
جلوگیری از جستجو برای ترک وقفه آگهی تماشانشده
بررسی کنید که آیا کاربر جستجویی انجام داده است که از وقفه آگهی تماشانشده عبور کرده است یا نه،
و اگر چنین است، او را به وقفه آگهی برگردانید.
در HTML5 SDK، شنونده رویداد را روی رویداد seeked پخشکننده محتوا تنظیم کنید تا onSeekEnd() را راهاندازی کند. این روش (که در زیر ارائه شده است) نقطه نشانه را
قبلاز زمان جستجوی کاربر بررسی میکند. اگر پخش نشده است، بهجای نقطه جستجوی مطلوب اولیه، به ابتدای آن وقفه آگهی بروید و آن نقطه جستجوی مطلوب را در snapForwardTime ذخیره کنید.
function onSeekEnd() {
if (isLiveStream) { return; }
if (isSnapback) {
isSnapback = false;
return;
}
var currentTime = videoElement.currentTime;
var previousCuePoint =
streamManager.previousCuePointForStreamTime(currentTime);
if (previousCuePoint && !previousCuePoint.played) {
isSnapback = true;
snapForwardTime = currentTime;
videoElement.currentTime = previousCuePoint.start;
}
برگرداندن کاربر به جستجوی اصلی
اکنون وقتی رویداد AD_BREAK_ENDED را دریافت میکنید، بررسی کنید که آیا snapForwardTime
تنظیم شده است یا نه. If so, take the user to that point in the stream, because the ad
break they just watched was the result of snapback:
function onAdBreakEnded(e) {
videoElement.controls = true;
clickElement.style.display = 'none';
adUiDiv.style.display = 'none';
if (snapForwardTime && snapForwardTime > videoElement.currentTime) {
videoElement.currentTime = snapForwardTime;
snapForwardTime = null;
}
}