Kitap Ayraçları

Bu kılavuzda, seç-izle video (VOD) akışları için Dinamik Reklam Ekleme'yi (DAI) kullanırken IMA DAI SDK'sı aracılığıyla yer işaretinin nasıl uygulanacağı gösterilmektedir. Bu işlem, Başlayın bölümünde sunulan gibi çalışan bir IMA DAI uygulaması olduğunu varsayar.

Yer işareti koymak 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, video akışından ayrıldığını ve daha sonra içeriğe geri döndüğünü varsayalım. Yer işareti koyma, kullanıcının akıştaki konumunu kaydederek akışın kaldığı yerden devam edebilmesini ve böylece izleyiciye sorunsuz bir deneyim sunulmasını sağlar.

Gelişmiş DAI yer işareti koyma

Bir DAI akışına yer işareti koyarken kullanıcı videodan ayrıldığında akış kimliğini ve zamanını kaydetmeniz gerekir. Kullanıcı geri döndüğünde, akışı yeniden isteyin ve kaydedilen zamanı arayın. İstenen akışın her örneği farklı sürelerde reklam aralarına sahip olabileceğinden yalnızca akış süresinden tasarruf etmek işe yaramaz. En iyisi aynı içerik zamanından devam etmektir.

Kurtarma yöntemleri

IMA DAI SDK'sı, belirli bir akış süresi için içerik süresini ve belirli bir içerik süresi için akış süresini istemek amacıyla bir dizi yöntem sunar. Bu dönüştürme yöntemlerini kullanarak yer işareti koyduğunuz içerik süresini depolayabilir ve ardından yeni akış örneğinde karşılık gelen akış zamanına gidebilirsiniz. Yaklaşıma, çalışan bir yer işareti uygulamasını gösteren örnek bir uygulamaya yönlendiren bir bağlantı da ekleyebilirsiniz.

Yer işaretleri kaydediliyor

Etkinlik duraklatıldığında bir yer işareti kaydedin.

- (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

Yeniden akış isteğinde bulunurken yer işaretini yükleyin. Bu, VideoStreamPlayer arayüzünü uygulamanın 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