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:
- 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.
- 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;
}
}