Издатели видеоконтента могут запретить пользователям перематывать рекламу в середине видео. Если пользователь перемотал рекламную паузу, вы можете вернуть его к ее началу, а после показа рекламы возобновить просмотр с нужного момента времени. Эта функция называется "возврат".
Пример показан на диаграмме ниже. Пользователь смотрит видео и решает перемотать его с 5-й минуты на 15-ю. Однако на 10-й минуте есть рекламная пауза, которую зрители должны посмотреть, прежде чем продолжить просмотр контента.

Чтобы показать эту рекламную паузу, выполните следующие действия:
- Проверьте, не пропустил ли пользователь рекламную паузу при перемотке. Если да, верните его к началу этой паузы.
- После завершения рекламной паузы возобновите просмотр с нужного момента времени.
На диаграмме это выглядит так:

Ниже описано, как реализовать возврат с помощью IMA DAI SDK. Этот процесс также показан в расширенном примере.
Как запретить пользователям пропускать рекламные паузы
Проверьте, не пропустил ли пользователь рекламную паузу. Если да, верните его к ней.
В HTML5 SDK настройте прослушиватель событий для события seeked проигрывателя контента, чтобы активировать onSeekEnd(). Этот метод (представлен ниже) проверяет временную точку до времени перемотки. Если она не была воспроизведена, перейдите к началу рекламной паузы, а не к их исходной желаемой точке перехода, и сохраните эту желаемую точку перехода в 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;
}
Вернуть пользователя к исходной позиции
Теперь, когда вы получаете событие AD_BREAK_ENDED, проверьте, задано ли значение snapForwardTime. Если да, перенаправьте пользователя к этой точке в трансляции, поскольку рекламная пауза, которую он только что посмотрел, была результатом возврата:
function onAdBreakEnded(e) {
videoElement.controls = true;
clickElement.style.display = 'none';
adUiDiv.style.display = 'none';
if (snapForwardTime && snapForwardTime > videoElement.currentTime) {
videoElement.currentTime = snapForwardTime;
snapForwardTime = null;
}
}