Snapback

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:

  1. 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.
  2. 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;
  }
}