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:
- Controllare se l'utente ha eseguito una ricerca saltata oltre un'interruzione pubblicitaria non guardata. e, in questo caso, riportali all'interruzione pubblicitaria.
- 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