Revenir à une coupure publicitaire ignorée

En tant qu'éditeur de vidéos, vous voulez peut-être empêcher vos spectateurs après avoir regardé vos annonces mid-roll. Lorsqu'un utilisateur cherche au-delà d'une coupure publicitaire, vous pouvez les rediriger au début de la coupure publicitaire, vers l'emplacement recherché une fois la coupure publicitaire terminée. Ce est appelée « snapback ».

À titre d'exemple, consultez le schéma ci-dessous. votre spectateur regarde une vidéo ; et décide de passer de 5 à 15 minutes. En revanche, il y a une coupure publicitaire au bout de 10 minutes avant de pouvoir regarder le contenu après:

Pour diffuser cette coupure publicitaire, procédez comme suit:

  1. Vérifier si l'utilisateur a lancé une recherche qui dépasse une coupure publicitaire non visionnée Si c'est le cas, redirigez-les vers la coupure publicitaire.
  2. Une fois la coupure publicitaire terminée, faites revenir l'utilisateur à sa recherche initiale.

Sous forme de diagramme, cela se présente comme suit:

Voici comment implémenter Snapchat à l'aide du SDK IMA DAI, comme illustré dans notre Exemple avancé.

Empêcher une recherche de laisser une coupure publicitaire sans visionnage

Vérifier si l'utilisateur a effectué une recherche après une coupure publicitaire non visionnée Si c'est le cas, redirigez-les vers la coupure publicitaire. L'exemple avancé Roku repose sur l'appui sur le bouton de la télécommande pour le que l'utilisateur recherche. Chaque fois que l'utilisateur appuie sur le bouton "Suivant", avancer dans le flux d'un nombre défini de secondes. Identique qui gère ce saut vérifie également si le saut après ou dans une coupure publicitaire et, le cas échéant, envoie l'internaute au début de cette coupure publicitaire:

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

Renvoyer l'utilisateur à sa recherche initiale

Dans votre gestionnaire adBreakEnded, vérifiez si l'annonce précédente a été déclenchée par un Snapback. Si c'est le cas, renvoyez le à l'utilisateur sur lequel il cherchait initialement (à condition car ce n'était pas le milieu de la coupure publicitaire qui vient d'être diffusée):

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