Jako wydawca wideo możesz uniemożliwić widzom przeszukując reklamy w trakcie filmu. Gdy użytkownik przegląda przerwę na reklamę, możesz wrócić do początku przerwy na reklamę, do miejsca, w którym chcesz przewinąć, po zakończeniu przerwy na reklamę. Ten jest nazywany „przyciąganiem”.
Oto przykład: Widz ogląda film, i postanawia przejść od 5-minutowego filmu do piętnastego. Jednak po 10 minucie reklamy następuje przerwa na reklamę, aby zapoznać się z treścią, zanim obejrzą treść po filmie:
Aby wyświetlić tę przerwę na reklamę, wykonaj te czynności:
- Sprawdź, czy użytkownik przeprowadził przewijanie, które przeskoczyło poza nieobejrzaną przerwę na reklamę. Jeśli tak, wróć do przerwy na reklamę.
- Po zakończeniu przerwy na reklamę wróć do pierwotnego położenia reklamy.
W postaci diagramu wygląda to tak:
Oto, jak zaimplementować cofnięcie reklam z wykorzystaniem pakietu IMA DAI SDK, jak pokazano na Przykład zaawansowany.
Zapobiegaj pozostawaniu przez przewijanie nieobejrzanej przerwy na reklamę
sprawdzić, czy użytkownik przeprowadził przewijanie, które nie minęło od nieobejrzanej przerwy na reklamę;
Jeśli tak, wróć do przerwy na reklamę.
W pakiecie SDK HTML5 ustaw odbiornik zdarzenia seeked
odtwarzacza treści.
aby aktywować onSeekEnd()
. Ta metoda (poniżej) sprawdza punkt wstawienia reklamy
przed czasem przewijania użytkownika. Jeśli fragment nie jest odtworzony, przewiń do początku
zamiast żądanego punktu przewijania.
punkt przewijania w regionie 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;
}
Przywróć użytkownikowi pierwotne wyszukiwanie
Teraz gdy otrzymasz zdarzenie AD_BREAK_ENDED
, sprawdź, czy snapForwardTime
jest ustawiony. Jeśli tak, zabierz użytkownika do tego momentu transmisji, ponieważ reklama
film, który właśnie obejrzeli, to efekt
przyspieszenia:
function onAdBreakEnded(e) {
videoElement.controls = true;
clickElement.style.display = 'none';
adUiDiv.style.display = 'none';
if (snapForwardTime && snapForwardTime > videoElement.currentTime) {
videoElement.currentTime = snapForwardTime;
snapForwardTime = null;
}
}