Tornare a un'interruzione pubblicitaria saltata

Seleziona la piattaforma: HTML5 Android iOS tvOS Roku

In qualità di publisher di video, potresti voler impedire agli spettatori di saltare gli annunci mid-roll. Quando un utente salta un'interruzione pubblicitaria, puoi riportarlo all'inizio dell'interruzione e poi alla posizione che aveva raggiunto dopo che l'interruzione è terminata. Questa funzionalità si chiama "snapback".

Ad esempio, guarda il diagramma di seguito. Lo spettatore sta guardando un video e decide di passare dal minuto 5 al minuto 15. Tuttavia, al minuto 10 è presente un'interruzione pubblicitaria che vuoi che guardi prima di poter guardare i contenuti successivi:

Per mostrare questa interruzione pubblicitaria, segui questi passaggi:

  1. Controlla se l'utente ha eseguito una ricerca 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 ricerca originale.

In forma di diagramma, si presenta così:

Ecco come implementare lo snapback utilizzando l'SDK IMA DAI, come illustrato nel nostro esempio avanzato.

Impedire che una ricerca lasci un'interruzione pubblicitaria non guardata

Controlla se l'utente ha eseguito una ricerca che ha saltato un'interruzione pubblicitaria non guardata e, in caso affermativo, riportalo all'interruzione pubblicitaria. L'esempio avanzato di Roku si basa sulle pressioni dei pulsanti del telecomando per la ricerca dell'utente: ogni volta che l'utente preme il pulsante Avanti, salta in avanti nello stream di un determinato numero 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 invia 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 ricerca originale

Nel gestore adBreakEnded, controlla se l'interruzione pubblicitaria precedente è stata riprodotta a seguito di uno snapback. In caso affermativo, riporta l'utente alla posizione in cui stava cercando di andare inizialmente (a condizione che non fosse la 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