Snapback

En tant qu'éditeur de vidéos, vous souhaitez peut-être empêcher les internautes de dépasser vos annonces mid-roll. Lorsqu'un utilisateur recherche après une coupure publicitaire, vous pouvez le ramener au début, puis le renvoyer à son emplacement de recherche une fois la coupure publicitaire terminée. Cette fonctionnalité est appelée "snapback".

Vous trouverez un exemple dans le schéma ci-dessous. Votre spectateur regarde une vidéo et décide de parcourir la plage de 5 minutes à 15 minutes. Toutefois, vous souhaitez qu'il regarde une coupure publicitaire au bout de 10 minutes avant de pouvoir regarder le contenu suivant:

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

  1. Vérifiez si l'utilisateur a exécuté une recherche qui a dépassé une coupure publicitaire non visionnée et, le cas échéant, revenez à la coupure publicitaire.
  2. Une fois la coupure publicitaire terminée, rétablissez leur recherche d'origine.

Sous la forme d'un diagramme, cela ressemble à ceci:

Voici comment implémenter le Snapack à l'aide du SDK IMA pour l'insertion dynamique d'annonce, comme indiqué dans notre exemple avancé.

Empêcher une recherche de laisser une coupure publicitaire non visionnée

Vérifiez si l'utilisateur a effectué une recherche qui a dépassé une coupure publicitaire non visionnée et, le cas échéant, retournez-le à la coupure publicitaire. L'exemple avancé Roku repose sur des pressions sur le bouton à distance que l'utilisateur peut rechercher. Chaque fois que l'utilisateur appuie sur le bouton "Suivant", il avance dans le flux d'un nombre défini de secondes. La même méthode qui gère ce saut vérifie également s'il les entraîne au-delà ou dans une coupure publicitaire et, le cas échéant, renvoie l'utilisateur au début de cette coupure:

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

Replacer l'utilisateur à sa recherche initiale

Dans votre gestionnaire adBreakEnded, vérifiez si la coupure publicitaire précédente a été lue à la suite du retour arrière. Si tel est le cas, renvoyez l'utilisateur à l'emplacement qu'il cherchait initialement (à condition que la vidéo ne soit pas au milieu de la coupure publicitaire):

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