Powrót do pominiętej przerwy na reklamę

Wybierz platformę: HTML5 Android iOS tvOS Roku

Jako wydawca filmów możesz chcieć uniemożliwić widzom przewijanie reklam w trakcie filmu. Gdy użytkownik przewinie przerwę na reklamę, możesz cofnąć odtwarzanie do początku tej przerwy, a następnie po jej zakończeniu wrócić do miejsca przewinięcia. Ta funkcja nazywa się „snapback”.

Przykład znajdziesz na diagramie poniżej. Widz ogląda film i postanawia przewinąć go z 5 minuty do 15 minuty. W 10 minucie filmu znajduje się jednak przerwa na reklamę, którą chcesz wyświetlić użytkownikom przed odtworzeniem dalszej części filmu:

Aby wyświetlić tę przerwę na reklamy, wykonaj te czynności:

  1. Sprawdź, czy użytkownik przewinął nieobejrzaną przerwę na reklamę, a jeśli tak, cofnij go do tej przerwy.
  2. Po zakończeniu przerwy na reklamę odtwarzanie jest wznawiane od miejsca przewinięcia.

Na diagramie wygląda to tak:

Oto jak wdrożyć snapback przy użyciu pakietu IMA DAI SDK, co pokazujemy w naszym przykładzie zaawansowanym.

Zapobieganie pomijaniu przerw na reklamy

Sprawdź, czy użytkownik przewinął film poza nieobejrzaną przerwę na reklamę, a jeśli tak, cofnij go do tej przerwy. Zaawansowany przykład Roku opiera się na naciśnięciach przycisków pilota, które umożliwiają użytkownikowi przewijanie. Za każdym razem, gdy użytkownik naciśnie przycisk przewijania do przodu, przeskakuje w strumieniu o określoną liczbę sekund. Ta sama metoda, która obsługuje to przeskoczenie, sprawdza też, czy przeskoczenie przenosi użytkownika do przerwy na reklamę lub poza nią. Jeśli tak, przenosi użytkownika na początek tej przerwy:

Function handleFastForward(player as Object, streamManager as Object, updatedTime As Integer)
  previousAd = streamManager.getPreviousCuePoint(updatedTime)
  If previousAd = Invalid or previousAd.hasPlayed
    player.seek(updatedTime * 1000)
  Else If previousAd.start > player.currentTime
    player.isSnapback = True
    player.timeAfterSnapback = updatedTime
    player.seek(previousAd.start * 1000 + 1000)
  End If
End Function

Przywróć użytkownikowi pierwotne miejsce odtwarzania

W obsłudze adBreakEnded sprawdź, czy poprzednia przerwa na reklamę została odtworzona w wyniku powrotu do poprzedniego stanu. Jeśli tak, przywróć użytkownikowi miejsce, do którego chciał przejść (o ile nie była to środek właśnie odtworzonej przerwy na reklamę):

player.adBreakEnded = Function(adBreakInfo as Object)
  If m.isSnapback
    m.seek(m.timeAfterSnapback * 1000)
    m.isSnapback = False
  End If
End Function