Como editor de vídeos, talvez você queira impedir que os espectadores pulem os anúncios intermediários. Quando um usuário pula um intervalo comercial, você pode levá-lo de volta ao início desse intervalo de anúncio e, em seguida, retornar ao local de busca após a conclusão do intervalo de anúncio. Esse recurso é chamado de "ajuste".
Confira um exemplo no diagrama abaixo. O espectador está assistindo um vídeo e decide buscar do minuto 5 ao 15. No entanto, há um intervalo de anúncio no minuto 10 que você quer que ele assista antes de poder assistir o conteúdo depois dele:

Para mostrar esse intervalo de anúncio, siga estas etapas:
- Verifique se o usuário fez uma busca que pulou um intervalo de anúncio não assistido e, em caso afirmativo, leve-o de volta ao intervalo de anúncio.
- Depois que o intervalo de anúncio for concluído, retorne à busca original.
No diagrama, isso fica assim:

Confira como implementar o ajuste usando o SDK IMA DAI, conforme demonstrado no exemplo avançado.
Impedir que uma busca deixe um intervalo de anúncio não assistido
Verifique se o usuário fez uma busca que pulou um intervalo de anúncio não assistido e, em caso afirmativo, leve-o de volta ao intervalo de anúncio.
No SDK 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 ele não for reproduzido, busque o início desse intervalo de anúncio em vez do ponto de busca desejado inicial e salve esse ponto de busca desejado 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;
}
Retornar o usuário à busca original
Agora, quando você receber um evento AD_BREAK_ENDED, verifique se snapForwardTime está definido. Em caso afirmativo, leve o usuário a esse ponto no stream, porque o intervalo comercial que ele acabou 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;
}
}