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 kılavuzda, Başlarken bölümünde sunulan örnekteki 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)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;
    ...
    }
  }

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)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;
    }
  }
}

Örnek uygulama

Örnek uygulama