Zu einer übersprungenen Werbeunterbrechung zurückkehren

Plattform auswählen:HTML5 Android iOS tvOS Roku>

Als Videoverleger möchtest du möglicherweise verhindern, dass Zuschauer deine Mid-Roll-Anzeigen überspringen. Wenn ein Nutzer eine Werbeunterbrechung überspringt, kannst du ihn an den Beginn dieser Werbeunterbrechung zurückbringen und ihn dann nach Abschluss der Werbeunterbrechung zu seiner Suchposition zurückleiten. Diese Funktion wird als „Snapback“ bezeichnet.

Ein Beispiel sehen Sie im Diagramm unten. Ein Zuschauer sieht sich ein Video an und beschließt, von der 5‑Minute zur 15‑Minute zu springen. Bei der 10-Minuten-Marke gibt es jedoch eine Werbeunterbrechung, die sich die Zuschauer ansehen müssen, bevor sie sich den Content danach ansehen können:

So zeigen Sie diese Werbeunterbrechung an:

  1. Prüfe, ob der Nutzer eine Suche durchgeführt hat, bei der eine nicht angesehene Werbeunterbrechung übersprungen wurde. Wenn ja, führe ihn zur Werbeunterbrechung zurück.
  2. Nach der Werbeunterbrechung kehren sie zur ursprünglichen Suchposition zurück.

In Diagrammform sieht das so aus:

So implementieren Sie diesen Workflow im IMA DAI SDK, wie im AdvancedExample beschrieben.

Verhindern, dass eine Werbeunterbrechung durch das Vorspulen nicht angesehen wird

Prüfe, ob der Nutzer eine Suche durchgeführt hat, die über eine nicht angesehene Werbeunterbrechung hinausging. Wenn ja, leite ihn zur Werbeunterbrechung zurück. Im Beispiel für iOS Advanced wird die Interaktion des Nutzers mit Ihrer Benutzeroberfläche verwendet, um zu erkennen, wann er eine Suche ausgeführt hat. Die Startzeit des Suchvorgangs wird beibehalten, um zu prüfen, ob Nutzer eine nicht abgespielte Werbeunterbrechung übersprungen haben. Wenn der Nutzer die Videosteuerung loslässt, vergleiche die aktuelle Zeit mit der Zeit der letzten Werbeunterbrechung. Wenn die Werbeunterbrechung nach dem Beginn der Suche erfolgt (d. h. der Nutzer hat sie übersprungen) und sie noch nicht wiedergegeben wurde, führe den Nutzer zurück zum Beginn der Werbeunterbrechung. Legen Sie außerdem ein Snapback-Flag fest, das Sie später in Ihrem Handler für das Ende des Werbeunterbrechungs-Handlers prüfen können:

- (IBAction)videoControlsTouchStarted:(id)sender {
  self.seekStartTime = self.contentPlayer.currentTime;
}

- (IBAction)videoControlsTouchEnded:(id)sender {
  self.seekEndTime = CMTimeMake(self.progressBar.value, 1);
  IMACuepoint *lastCuepoint =
      [self.streamManager previousCuepointForStreamTime:CMTimeGetSeconds(self.seekEndTime)];
  if (!lastCuepoint.played && (lastCuepoint.startTime > CMTimeGetSeconds(self.seekStartTime))) {
    self.snapbackMode = YES
    // Add 1 to the seek time to get the keyframe at the start of the ad to be your landing place.
    [self.contentPlayer seekToTime:CMTimeMakeWithSeconds(lastCuepoint.startTime + 1, NSEC_PER_SEC)];
  }
}

Den Nutzer zur ursprünglichen Position zurückbringen

Prüfen Sie in Ihrem Handler für das Ende von Werbeunterbrechungen, ob die vorherige Unterbrechung aufgrund von Snapback abgespielt wurde. Wenn ja, kehre mit dem Nutzer zur ursprünglichen Suchposition zurück, sofern es sich nicht um die Mitte der gerade abgespielten Werbeunterbrechung handelt:

- (void)streamManager:(IMAStreamManager *)streamManager didReceiveAdEvent:(IMAAdEvent *)event {
  switch (event.type) {
    case kIMAAdEvent_AD_BREAK_ENDED: {
      if (self.snapbackMode) {
        self.snapbackMode = NO;
        if (CMTimeCompare(self.seekEndTime, self.contentPlayer.currentTime)) {
          [self.contentPlayer seekToTime:self.seekEndTime];
        }
      }
      break;
    }
  }
}