Revenir à une coupure publicitaire ignorée

Sélectionner une plate-forme : HTML5 Android iOS tvOS Roku

En tant qu'éditeur de vidéos, vous pouvez empêcher vos spectateurs de passer vos annonces mid-roll. Lorsqu'un utilisateur passe une coupure publicitaire, vous pouvez le ramener au début de cette coupure, puis le renvoyer à l'emplacement qu'il avait sélectionné une fois la coupure publicitaire terminée. Cette fonctionnalité est appelée "retour rapide".

Pour en savoir plus, consultez le diagramme ci-dessous. Votre spectateur regarde une vidéo et décide de passer de la 5e à la 15e minute. Cependant, vous souhaitez qu'il regarde une coupure publicitaire à la 10e minute avant de pouvoir regarder le contenu qui suit :

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

  1. Vérifiez si l'utilisateur a passé une coupure publicitaire non visionnée. Si c'est le cas, ramenez-le à cette coupure.
  2. Une fois la coupure publicitaire terminée, renvoyez-le à l'emplacement qu'il avait sélectionné.

Voici le diagramme correspondant :

Voici comment implémenter le retour rapide à l'aide du SDK IMA DAI, comme illustré dans notre exemple avancé.

Empêcher un utilisateur de passer une coupure publicitaire sans la regarder

Vérifiez si l'utilisateur a passé une coupure publicitaire non visionnée. Si c'est le cas, ramenez-le à cette coupure. L'exemple avancé Roku repose sur des pressions de boutons à distance pour que l'utilisateur puisse sélectionner un point précis de la vidéo. Chaque fois qu'il appuie sur le bouton "Suivant", il avance dans le flux d'un certain nombre de secondes. La même méthode qui gère ce saut vérifie également si le saut passe une coupure publicitaire ou y arrive. Si c'est le cas, elle envoie 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

Renvoyer l'utilisateur à l'emplacement qu'il avait sélectionné

Dans votre gestionnaire adBreakEnded, vérifiez si la coupure publicitaire précédente a été diffusée à la suite d'un retour rapide. Si c'est le cas, renvoyez l'utilisateur à l'emplacement qu'il avait initialement sélectionné (à condition qu'il ne s'agisse pas du 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