Como editor de vídeo, talvez você queira evitar que seus espectadores além dos anúncios intermediários. Quando um usuário passa por um intervalo de anúncio, você pode levá-los de volta ao início do intervalo de anúncio e, então, retornar ao local de busca após a conclusão do intervalo comercial. Isso é chamado de "Snapback".
Como exemplo, veja o diagrama abaixo. O espectador estiver assistindo um vídeo, e decide procurar da marca de 5 para a de 15 minutos. No entanto, há um intervalo comercial na marca de 10 minutos que você deseja que eles assistam antes de poderem assistir ao conteúdo depois dele:
Para mostrar esse intervalo de anúncio, siga estas etapas:
- Verifique se o usuário executou uma busca que ultrapassou um intervalo de anúncio não assistido. Em caso afirmativo, leve-o de volta ao intervalo de anúncio.
- Após a conclusão do intervalo comercial, volte à busca original.
No formato de diagrama, o código fica assim:
Veja como implementar o ajuste usando o SDK de DAI do IMA, conforme demonstrado nas Exemplo avançado.
Evite que um usuário tente deixar um intervalo de anúncio sem assistir.
Verifique se o usuário fez uma busca que passou de um intervalo de anúncio não assistido.
Em caso afirmativo, leve-o de volta
ao intervalo de anúncio.
No SDK para HTML5, defina um listener de eventos no evento seeked
do player de conteúdo.
para acionar onSeekEnd()
. Esse método (apresentado abaixo) verifica o ponto de inserção
antes do tempo de busca do usuário. Se não for tocado, vá para o início
em vez do ponto de busca inicial desejado e salve o intervalo
ponto de busca em 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;
}
Colocar o usuário de volta na busca original
Agora, quando você receber um evento AD_BREAK_ENDED
, confira se snapForwardTime
está definido. Se for o caso, leve o usuário a esse ponto do stream, porque o anúncio
que acabaram de assistir foi o resultado do ajuste:
function onAdBreakEnded(e) {
videoElement.controls = true;
clickElement.style.display = 'none';
adUiDiv.style.display = 'none';
if (snapForwardTime && snapForwardTime > videoElement.currentTime) {
videoElement.currentTime = snapForwardTime;
snapForwardTime = null;
}
}