Tornare a un'interruzione pubblicitaria saltata

In qualità di publisher di video, potresti voler impedire agli spettatori di che cerca oltre gli annunci mid-roll. Quando un utente va oltre un'interruzione pubblicitaria, puoi riportarli all'inizio dell'interruzione pubblicitaria e poi tornare alla loro posizione di ricerca al termine dell'interruzione pubblicitaria. Questo è chiamata "snapback".

Osserva il diagramma seguente come esempio. Lo spettatore sta guardando un video e decide di andare dal minuto 5 al minuto 15. C'è, tuttavia, un'interruzione pubblicitaria al contrassegno dei 10 minuti che vorresti prima di poter guardare i contenuti successivi:

Per visualizzare questa interruzione pubblicitaria:

  1. Controllare se l'utente ha eseguito una ricerca saltata oltre un'interruzione pubblicitaria non guardata. e, in questo caso, riportali all'interruzione pubblicitaria.
  2. Al termine dell'interruzione pubblicitaria, riportali alla ricerca originale.

Il diagramma ha il seguente aspetto:

Di seguito viene spiegato come implementare lo snapshot usando l'SDK IMA DAI, come dimostrato nella nostra Esempio avanzato.

Evitare che una ricerca lasci un'interruzione pubblicitaria non guardata

Controlla se l'utente ha eseguito una ricerca successiva a un'interruzione pubblicitaria non guardata e, in questo caso, riportali all'interruzione pubblicitaria. L'esempio avanzato di Roku si basa sulla pressione dei pulsanti da remoto per all'utente di cercare: ogni volta che l'utente preme il pulsante Avanti, avanzare nello stream di un determinato numero di secondi. Uguale che gestisce questo passaggio verifica anche se passa o passa a un'interruzione pubblicitaria e, in caso affermativo, invia l'utente all'inizio dell'interruzione pubblicitaria:

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

Riporta l'utente alla ricerca originale

Nel gestore adBreakEnded, controlla se l'annuncio precedente è stata riprodotta come risultato dello snapshot. In questo caso, restituisci dal luogo in cui stava cercando di cercare inizialmente (purché dato che l'interruzione pubblicitaria appena riprodotta non era a metà dell'interruzione pubblicitaria):

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