إشارات مرجعية

يوضِّح هذا الدليل كيفية تطبيق الإشارات المرجعية باستخدام حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية. عند استخدام ميزة "إدراج إعلان ديناميكي" (DAI) في فيديوهات البث عند الطلب وهذا يفترض تنفيذ إدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية، مثل ما يتم عرضه في البدء

ما هي الإشارات المرجعية؟

الإشارة المرجعية هي القدرة على الحفظ ثم العودة إلى نقطة محددة في تدفق المحتوى. لنفترض أن أحد المستخدمين يشاهد خمس دقائق من المحتوى، من بث الفيديو ثم يعود إليه يؤدي وضع إشارة مرجعية إلى حفظ موضع المستخدم في ساحة المشاركات لكي يتمكن البث من المضي قدمًا لتوفير تجربة سلسة للمشاهد.

الخيارات المتقدمة لإضافة إشارات مرجعية إلى "إدراج إعلان ديناميكي"

عند وضع إشارة مرجعية على بث DAI، عليك تسجيل معرّف البث ووقته. عندما يغادر المستخدم الفيديو عندما يعود المستخدم، اطلب للبث والاستفادة من الوقت الذي تم توفيره. نظرًا لأن كل مثيل مطلوب يمكن أن يتضمّن البث فواصل إعلانية لفترات مختلفة، ما يؤدي ببساطة إلى حفظ البث. لن يعمل الوقت. ما تريد القيام به حقًا هو المتابعة من نفس وقت المحتوى.

طرق التحويل للإنقاذ

توفِّر حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية طريقتَين لطلب وقت المحتوى. لوقت البث ووقت البث لمحتوى معيّن الوقت. باستخدام طرق التحويل هذه، يمكنك تخزين علامات وقت المحتوى ثم الانتقال إلى وقت البث المقابل في المثيل الجديد للبث. إليك النهج، بما في ذلك رابط إلى نموذج تطبيق يعرض عملية تنفيذ لإشارات مرجعية.

جارٍ حفظ الإشارات المرجعية

حفظ إشارة مرجعية عندما يكون "النشاط" متوقفًا مؤقتًا

- (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;
    ...
    }
  }
}

جارٍ تحميل الإشارات المرجعية

تحميل الإشارة المرجعية عند إعادة طلب ساحة مشاركات إنه جزء من تنفيذ الواجهة VideoStreamPlayer.

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

نموذج تطبيق

نموذج تطبيق