Snapback

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:

Vous trouverez ci-dessous la procédure à suivre pour implémenter la fonctionnalité "Snapback" à l'aide du SDK IMA DAI 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. Dans le SDK HTML5, définissez un écouteur d'événements pour l'événement seeked du lecteur de contenu. pour déclencher onSeekEnd(). Cette méthode (présentée ci-dessous) vérifie le point de repère avant l'heure de recherche de l'utilisateur. Si la vidéo n'est pas lue, recherchez le début au lieu du point de recherche initial souhaité, puis enregistrez cette point de recherche dans snapForwardTime.

function onSeekEnd() {
  if (isLiveStream) { return; }
  if (isSnapback) {
    isSnapback = false;
    return;
  }
  var currentTime = videoElement.currentTime;
  var previousCuePoint =
      streamManager.previousCuePointForStreamTime(currentTime);
  if (previousCuePoint && !previousCuePoint.played) {
    isSnapback = true;
    snapForwardTime = currentTime;
    videoElement.currentTime = previousCuePoint.start;
}

Renvoyer l'utilisateur à sa recherche initiale

Lorsque vous recevez un événement AD_BREAK_ENDED, vérifiez si snapForwardTime est définie. Si c'est le cas, dirigez l'utilisateur vers ce point du flux, car l'annonce une pause qu'ils viennent de regarder est le résultat d'un Snapback:

function onAdBreakEnded(e) {
  videoElement.controls = true;
  clickElement.style.display = 'none';
  adUiDiv.style.display = 'none';
  if (snapForwardTime && snapForwardTime > videoElement.currentTime) {
    videoElement.currentTime = snapForwardTime;
    snapForwardTime = null;
  }
}