כבעלי תוכן וידאו, כדאי לכם למנוע מהצופים לדלג על מודעות באמצע הסרטון (mid-roll). כשמשתמש לוחץ ועובר את ההפסקה למודעות, אפשר להחזיר אותם לתחילת ההפסקה למודעות, ואז לחזור אותם למיקום שבו הם מחפשים אחרי שההפסקה למודעות תסתיים. הזה נקראת 'הקפאה'.
כדוגמה, ראו את התרשים הבא. הצופה שלך צופה בסרטון ומחליטה להריץ את נקודת הזמן של 5 דקות עד 15 דקות. עם זאת, יש הפסקה למודעה בדקה של 10 הדקות שרצית כדי לאפשר להם לצפות בתוכן לאחר מכן:
כדי להציג את ההפסקה למודעה הזו, יש לבצע את השלבים הבאים:
- בדקו אם המשתמש הפעיל דילוג שחלף מעבר להפסקה למודעות שלא נצפה, ואם כן, החזרו אותם להפסקת המודעות.
- כשההפסקה למודעה תסתיים, צריך להחזיר אותם לחיפוש המקורי.
בצורת תרשים, זה נראה כך:
כך תוכלו להטמיע הקשה חוזרת (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;
}
}