ביטול

כבעל אתר של וידאו, ייתכן שתרצה למנוע מהצופים שלך לעבור את המודעות שלך באמצע הסרטון. כשהמשתמש מדלג להפסקה למודעות, אפשר להחזיר אותו לתחילת ההפסקה למודעה, ולחזור למיקום הרצוי בסיום ההפסקה למודעה. התכונה הזו נקראת 'snapback'.

לדוגמה, אפשר לעיין בתרשים הבא. הצופה שלך צופה בסרטון, ומחליט לדלג מסמן של 5 דקות ל-15 דקות. עם זאת, יש הפסקה למודעה בסיום 10 הדקות שבהן אתם רוצים שהם יצפו לפני שיוכלו לצפות בתוכן שאחריה:

כדי להציג את ההפסקה הזו למודעות, יש לפעול לפי השלבים הבאים:

  1. בדקו אם המשתמש הפעיל הרצה שחרגה מההפסקה למודעות שלא נצפתה, ואם כן, מחזירים אותו להפסקה למודעות.
  2. לאחר השלמת ההפסקה למודעה, מחזירים את המשתמשים לשאילתת החיפוש המקורית.

בדיאגרמה, הנתונים ייראו כך:

כך מטמיעים את תהליך העבודה ב-IMA SDK של Roku, כפי שמוסבר בדוגמה המתקדמת.

מניעת הצגה של הפסקה למודעה ללא צפייה

עליכם לבדוק אם המשתמש הפעיל הרצה מעבר להפסקה למודעות שלא נצפה, ואם כן, להחזיר אותו להפסקה למודעות. הדוגמה המתקדמת של 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

החזרת המשתמש לדילוג המקורי שלו

ב-handler של adBreakEnded, צריך לבדוק אם ההפסקה הקודמת למודעות הופעלה כתוצאה מ-Snapback. אם כן, החזירו את המשתמש למקום שהוא ניסה לחפש בהתחלה (כל עוד זה לא היה באמצע ההפסקה למודעה ששודרה):

player.adBreakEnded = Function(adBreakInfo as Object)
  If m.isSnapback
    m.seek(m.timeAfterSnapback * 1000)
    m.isSnapback = False
  End If
End Function