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

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

در اینجا نحوه پیادهسازی 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 تنظیم شده است یا خیر. اگر چنین است، کاربر را به آن نقطه از جریان ببرید، زیرا وقفه تبلیغاتی که آنها مشاهده کردهاند نتیجه 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;
}
}