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 dalla soglia dei 5 minuti fino al limite dei 15 minuti. 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:
Ecco come implementare lo snapshot utilizzando l'SDK IMA DAI, come dimostrato in Esempio avanzato.
Impedire a una ricerca di lasciare 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.
Nell'SDK HTML5, imposta un listener di eventi sull'evento seeked
del player di contenuti
per attivare onSeekEnd()
. Questo metodo (presentato di seguito) controlla il cue point
prima del momento di ricerca dell'utente. Se non viene riprodotto, vai all'inizio
dell'interruzione pubblicitaria al posto del punto di ricerca iniziale desiderato e salvare quello desiderato
punto di spostamento tra 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;
}
Riporta l'utente alla ricerca originale
Ora, quando ricevi un evento AD_BREAK_ENDED
, controlla se snapForwardTime
è impostata. In questo caso, porta l'utente a quel punto dello stream, perché l'annuncio
l'interruzione appena vista è il risultato di uno snapshot:
function onAdBreakEnded(e) {
videoElement.controls = true;
clickElement.style.display = 'none';
adUiDiv.style.display = 'none';
if (snapForwardTime && snapForwardTime > videoElement.currentTime) {
videoElement.currentTime = snapForwardTime;
snapForwardTime = null;
}
}