Voltar para um intervalo de anúncio ignorado

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