Snapback

Als Video-Publisher möchten Sie vielleicht verhindern, dass Nutzer Ihre Mid-Roll-Anzeigen überspringen. Wenn ein Nutzer nach einer Werbeunterbrechung springt, kannst du ihn an den Beginn der Werbeunterbrechung und nach Abschluss der Werbeunterbrechung zurückholen. Diese Funktion wird als „Snapback“ bezeichnet.

Ein Beispiel sehen Sie im Diagramm unten. Der Zuschauer sieht sich ein Video an und stuft zwischen 5 Minuten und 15 Minuten. Nach 10 Minuten gibt es jedoch eine Werbeunterbrechung, die Nutzer sehen sollen, bevor sie sich den Inhalt danach ansehen können:

So kannst du die Werbeunterbrechung schalten:

  1. Prüfe, ob der Nutzer eine Suche ausgeführt hat, die eine nicht gesehene Werbeunterbrechung überspringt hat. Wenn ja, kehre zur Werbeunterbrechung zurück.
  2. Wenn die Werbeunterbrechung abgeschlossen ist, kehre zur ursprünglichen Suche zurück.

In Diagrammform sieht das so aus:

Im Folgenden wird beschrieben, wie dieser Workflow wie in unserem erweiterten Beispiel im Roku IMA SDK implementiert wird.

Verhindern, dass eine Suche eine Werbeunterbrechung unbeobachtet verlässt

Prüfe, ob der Nutzer eine Suche ausgeführt hat, die über eine nicht angesehene Werbeunterbrechung hinausgeht. Wenn ja, kehre zur Werbeunterbrechung zurück. Für das erweiterte Roku-Beispiel drückt der Nutzer Remote-Tasten, um zu suchen. Jedes Mal, wenn der Nutzer die Schaltfläche „Weiter“ drückt, springt er im Stream um eine bestimmte Anzahl von Sekunden vor. Die Methode, die diesen Sprung verarbeitet, prüft auch, ob der Sprung über oder in eine Werbeunterbrechung geht. Falls ja, wird der Nutzer stattdessen zum Anfang dieser Werbeunterbrechung geleitet:

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

Den Nutzer zu seiner ursprünglichen Suche zurückversetzen

Prüfe im adBreakEnded-Handler, ob die vorherige Werbeunterbrechung als Ergebnis eines Snapbacks wiedergegeben wurde. Wenn ja, kehre den Nutzer an die Stelle zurück, an der er ursprünglich gesucht hatte, sofern es sich nicht in der Mitte der gerade abgespielten Werbeunterbrechung befand:

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