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 illustrer cela, consultez le diagramme ci-dessous. Votre spectateur regarde une vidéo et décide de passer de 5 à 15 minutes. Cependant, il y a une coupure publicitaire à 10 minutes que vous souhaitez qu'il regarde avant de pouvoir regarder le contenu qui suit :

Pour afficher cette coupure publicitaire, procédez comme suit :
- Vérifiez si l'utilisateur a effectué une recherche qui a dépassé une coupure publicitaire non visionnée. Si c'est le cas, ramenez-le à la coupure publicitaire.
- Une fois la coupure publicitaire terminée, renvoyez-le à sa recherche d'origine.
Voici le diagramme correspondant :

Voici comment implémenter le retour rapide à l'aide du SDK IMA DAI, comme illustré dans l'exemple avancé.
Empêcher une recherche de quitter 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. Si c'est le cas, ramenez-le à la coupure publicitaire.
Dans le SDK HTML5, définissez un écouteur d'événements sur 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. S'il n'est pas lu, accédez au début de cette coupure publicitaire au lieu du point de recherche souhaité initialement, et enregistrez ce point de recherche souhaité 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;
}
Ramener l'utilisateur à sa recherche d'origine
Maintenant, lorsque vous recevez un événement AD_BREAK_ENDED, vérifiez si snapForwardTime est défini. Si c'est le cas, redirigez l'utilisateur vers ce point du flux, car la coupure publicitaire qu'il vient de regarder est le résultat du retour rapide :
function onAdBreakEnded(e) {
videoElement.controls = true;
clickElement.style.display = 'none';
adUiDiv.style.display = 'none';
if (snapForwardTime && snapForwardTime > videoElement.currentTime) {
videoElement.currentTime = snapForwardTime;
snapForwardTime = null;
}
}