Snapback

In qualità di publisher di video, potresti voler impedire agli spettatori di guardare oltre i tuoi annunci mid-roll. Quando un utente cerca oltre un'interruzione pubblicitaria, puoi riportarlo all'inizio dell'interruzione e riportarlo nella posizione di ricerca al termine dell'interruzione pubblicitaria. Questa funzione è chiamata "snapback".

Ad esempio, consulta il diagramma riportato di seguito. Lo spettatore sta guardando un video e decide di andare dall'indicatore dei 5 minuti a quello dei 15 minuti. Tuttavia, c'è un'interruzione pubblicitaria in corrispondenza dell'indicatore dei 10 minuti che vuoi che i tuoi spettatori guardino prima che possano guardare i contenuti successivi:

Per mostrare questa interruzione pubblicitaria, svolgi i seguenti passaggi:

  1. Controlla se l'utente ha eseguito una ricerca che ha superato un'interruzione pubblicitaria non guardata e, in questo caso, riportalo all'interruzione pubblicitaria.
  2. Al termine dell'interruzione pubblicitaria, riporta l'utente alla ricerca originale.

In forma di diagramma, ha il seguente aspetto:

Di seguito viene spiegato come implementare lo snapack utilizzando l'SDK IMA DAI, come dimostrato nel nostro Esempio avanzato.

Impedire a una ricerca di interrompere la visione di un'interruzione pubblicitaria

Controlla se l'utente ha eseguito una ricerca che ha superato un'interruzione pubblicitaria non guardata e, in questo caso, riportalo all'interruzione pubblicitaria. L'esempio avanzato di Roku si basa sulla pressione dei pulsanti in remoto per consentire all'utente di eseguire la ricerca. 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 passaggio controlla anche se il passaggio va oltre o entra in un'interruzione pubblicitaria e, in caso affermativo, indirizza l'utente all'inizio di quell'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

Ripristinare la ricerca originale dell'utente

Nel gestore adBreakEnded, controlla se l'interruzione pubblicitaria precedente è stata riprodotta come risultato dello snapshot. Se è così, riporta l'utente nel punto in cui cercava inizialmente (a condizione che non si tratti di un'interruzione pubblicitaria che si è appena riprodotta):

player.adBreakEnded = Function(adBreakInfo as Object)
  If m.isSnapback
    m.seek(m.timeAfterSnapback * 1000)
    m.isSnapback = False
  End If
End Function