Tornare a un'interruzione pubblicitaria saltata

Seleziona la piattaforma: HTML5 Android iOS tvOS Roku

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:

  1. Controlla se l'utente ha eseguito un avanzamento che ha saltato un'interruzione pubblicitaria non guardata e, in caso affermativo, riportalo all'interruzione pubblicitaria.
  2. Al termine dell'interruzione pubblicitaria, riporta l'utente alla posizione di avanzamento originale.

In forma di diagramma, la formula è la seguente:

Ecco come implementare il ritorno rapido utilizzando l'SDK IMA DAI, come illustrato nell'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. 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 tempo di ricerca dell'utente. Se non è stato riprodotto, esegui la ricerca fino all'inizio della pausa pubblicitaria anziché fino al punto di ricerca iniziale desiderato e salva questo punto di ricerca desiderato in 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;
}

Riportare l'utente alla posizione di riproduzione originale

Ora, quando ricevi un evento AD_BREAK_ENDED, controlla se snapForwardTime è impostato. In questo caso, porta l'utente al punto dello stream in cui si trovava, perché la pausa pubblicitaria che ha appena guardato è il risultato della funzionalità di ripristino:

function onAdBreakEnded(e) {
  videoElement.controls = true;
  clickElement.style.display = 'none';
  adUiDiv.style.display = 'none';
  if (snapForwardTime && snapForwardTime > videoElement.currentTime) {
    videoElement.currentTime = snapForwardTime;
    snapForwardTime = null;
  }
}