Lesezeichen

In diesem Leitfaden erfahren Sie, wie Sie Lesezeichen mit dem IMA DAI SDK implementieren. wenn Sie die dynamische Anzeigenbereitstellung für Video-on-Demand-Streams (VOD) verwenden. Dies setzt voraus, dass die dynamische Anzeigenbereitstellung funktioniert, wie im Jetzt starten

Was ist Lesezeichen?

Als Lesezeichen speichern Sie einen bestimmten Punkt, im Contentstream. Angenommen, ein Nutzer sieht sich fünf Minuten lang Inhalte an, verlässt den Videostream und kehrt dann dorthin zurück. Als Lesezeichen speichern Sie die Position des Nutzers im Stream, damit der Stream dort fortgesetzt werden kann, die aufgehört haben, und sorgt so für ein nahtloses Erlebnis.

Dynamische Anzeigenbereitstellung – Interne Lesezeichen

Wenn Sie einen Stream für die dynamische Anzeigenbereitstellung als Lesezeichen speichern, müssen Sie die Stream-ID und die Uhrzeit erfassen wenn der Nutzer das Video verlässt. Wenn der Nutzer zurückkehrt, fordern Sie den Parameter zu streamen und zur eingesparten Zeit zu springen. Da jede Instanz des angeforderten Stream kann Werbeunterbrechungen von unterschiedlicher Dauer haben. Der Stream wird einfach gespeichert. wird die Uhrzeit nicht funktionieren. Setzen Sie die Änderungen content time auf.

Konvertierungsmethoden zur Rettung

Das IMA DAI SDK bietet zwei Methoden, um die Inhaltszeit anzufordern. für einen bestimmten Stream-Zeitpunkt und die Stream-Zeit für einen bestimmten Content Mit diesen Konvertierungsmethoden können Sie die als Lesezeichen content time auf und springen Sie dann zur entsprechenden Streamzeit in die neue Instanz des Streams. Hier ist der Ansatz, einschließlich eines Links, bis hin zu einer Beispiel-App, die eine funktionierende Lesezeichen-Implementierung zeigt.

Lesezeichen werden gespeichert

Lesezeichen speichern, wenn die Aktivität pausiert ist.

- (void)viewWillDisappear:(BOOL)animated {
  [super viewWillDisappear:animated];
  [self.contentPlayer pause];
  // Ignore this if you're presenting a modal view (e.g. in-app clickthrough).
  if ([self.navigationController.viewControllers indexOfObject:self] ==
      NSNotFound) {
    NSTimeInterval contentTime =
        [self.streamManager contentTimeForStreamTime:CMTimeGetSeconds(
            self.contentPlayer.currentTime)];
    self.video.savedTime = contentTime;
    ...
    }
  }
}

Lesezeichen werden geladen

Das Lesezeichen wird geladen, wenn Sie einen Stream noch einmal anfordern. Es ist Teil der Implementierung der VideoStreamPlayer-Schnittstelle.

- (void)streamManager:(IMAStreamManager *)streamManager didReceiveAdEvent:(IMAAdEvent *)event {
  ...
  case kIMAAdEvent_STREAM_LOADED: {
    if (self.video.savedTime > 0) {
      NSTimeInterval streamTime =
          [self.streamManager streamTimeForContentTime:self.video.savedTime];
      [self.IMAVideoDisplay.playerItem
          seekToTime:CMTimeMakeWithSeconds(streamTime, NSEC_PER_SEC)];
      self.video.savedTime = 0;
    }
  }
}

Beispiel-App

Beispiel-App