In qualità di editore di video, potresti voler impedire ai tuoi spettatori di andare avanti oltre gli annunci mid-roll. Quando un utente avanza oltre un'interruzione pubblicitaria, puoi riportarlo all'inizio dell'interruzione pubblicitaria e poi alla posizione che aveva raggiunto dopo che l'interruzione pubblicitaria è terminata. Questa funzionalità si chiama "ritorno".
Ad esempio, vedi il diagramma riportato di seguito. Lo spettatore sta guardando un video e decide di passare dal minuto 5 al minuto 15. Tuttavia, c'è un'interruzione pubblicitaria al minuto 10 che vuoi che guardino prima di poter guardare i contenuti successivi:
Per mostrare questa interruzione pubblicitaria, segui questi passaggi:
- Controlla se l'utente ha eseguito un avanzamento che ha saltato un'interruzione pubblicitaria non guardata e, in caso affermativo, riportalo all'interruzione pubblicitaria.
- Al termine dell'interruzione pubblicitaria, riporta l'utente alla posizione di avanzamento originale.
In forma di diagramma, la formula è la seguente:
Ecco come implementare snapback utilizzando l'SDK IMA DAI, come illustrato nel nostro esempio avanzato.
Impedire che una ricerca lasci un'interruzione pubblicitaria non visualizzata
Controlla se l'utente ha eseguito una ricerca che ha superato un'interruzione pubblicitaria non visualizzata e, in caso affermativo, riportalo all'interruzione pubblicitaria. L'esempio avanzato di Roku si basa sulla pressione dei tasti del telecomando per la ricerca dell'utente. Ogni volta che l'utente preme il tasto Avanti, il video avanza di un numero prestabilito di secondi. Lo stesso metodo che gestisce questo salto controlla anche se il salto porta l'utente oltre o all'interno di un'interruzione pubblicitaria e, in caso affermativo, lo indirizza 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
Riportare l'utente alla posizione di riproduzione originale
Nel gestore adBreakEnded
, controlla se la pausa pubblicitaria precedente
è stata riprodotta a seguito di un ritorno rapido. In questo caso, riporta l'utente
al punto che stava cercando di raggiungere inizialmente (a condizione
che non si tratti della metà dell'interruzione pubblicitaria appena riprodotta):
player.adBreakEnded = Function(adBreakInfo as Object)
If m.isSnapback
m.seek(m.timeAfterSnapback * 1000)
m.isSnapback = False
End If
End Function