Reklam akışı yer işaretlerini kaydetme ve yükleme

Platform seçin: HTML5 Android iOS tvOS Roku

Bu kılavuzda, seç-izle video (VOD) akışları için Dinamik Reklam Ekleme (DAI) kullanılırken IMA DAI SDK'sı ile yer işaretlerinin nasıl uygulanacağı gösterilmektedir. Bu örnekte, Başlarken bölümünde sunulan gibi çalışan bir IMA DAI uygulaması olduğu varsayılmaktadır.

Yer işaretleme nedir?

Yer işareti koyma, içerik akışında belirli bir noktayı kaydetme ve daha sonra bu noktaya dönme olanağıdır. Bir kullanıcının beş dakikalık içerik izlediğini, bu video akışından ayrıldığını ve daha sonra akışa döndüğünü varsayalım. Yer işareti koyma özelliği, kullanıcının akış içindeki konumunu kaydederek akışın kaldığı yerden devam edebilmesini sağlar ve böylece izleyiciye sorunsuz bir deneyim sunar.

Ayrıntılı DAI yer işareti incelemesi

Bir DAI akışını yer işaretlerine eklerken akış kimliğini ve kullanıcının videodan ayrıldığı zamanı kaydetmeniz gerekir. Kullanıcı geri döndüğünde akışı yeniden isteyin ve kayıtlı zamana gidin. İstenen akışın her örneğinde farklı uzunluklarda reklam araları olabileceğinden akış süresini kaydetmek yeterli olmaz. Aslında aynı içerik zamanından devam etmek istersiniz.

Dönüşüm yöntemleri kurtarıcı olabilir

IMA DAI SDK, belirli bir akış zamanı için içerik zamanını ve belirli bir içerik zamanı için akış zamanını istemek üzere iki yöntem sunar. Bu dönüşüm yöntemlerini kullanarak, yer işaretli içerik zamanını saklayabilir ve ardından akışın yeni örneğinde ilgili akış zamanına gidebilirsiniz. Çalışan bir yer işareti uygulama örneğini gösteren bir bağlantı da dahil olmak üzere yaklaşımı burada bulabilirsiniz.

Yer işaretlerini kaydetme

Etkinlik duraklatıldığında yer işareti kaydedebilirsiniz.

- (void)viewWillAppear:(BOOL)animated {
  ...
  self.bookmarkTime =
      [self.streamManager contentTimeForStreamTime:CMTimeGetSeconds(
          self.playerViewController.player.currentTime)];
}

Yer işaretleri yükleniyor

Akış yeniden istendiğinde yer işaretini yükleyin. VideoStreamPlayer arayüzünü uygulama sürecinin bir parçasıdır.

- (void)streamManagerIsPlaybackReady:(IMAStreamManager *)streamManager {
...
  if (self.bookmarkTime != 0) {
    NSTimeInterval streamTime = [self.streamManager
        streamTimeForContentTime:self.bookmarkTime];
    [self.playerViewController.player
        seekToTime:CMTimeMakeWithSeconds(streamTime, NSEC_PER_SEC)];
  }
}

Örnek uygulama

Örnek uygulama