يوضّح هذا الدليل كيفية تنفيذ ميزة وضع الإشارات المرجعية باستخدام حزمة تطوير البرامج لإدراج الإعلانات الديناميكية (DAI) من "إعلانات الوسائط التفاعلية" عند استخدام ميزة "إدراج الإعلانات الديناميكية" لبث الفيديوهات عند الطلب. يفترض هذا المثال أنّ هناك عملية تنفيذ ناجحة لخدمة "إدراج الإعلانات الديناميكي" من IMA، مثل تلك المعروضة في مقالة البدء.
ما هي إضافة المواقع الإلكترونية إلى الإشارات المرجعية؟
الإشارة المرجعية هي القدرة على حفظ نقطة معيّنة في بث المحتوى ثم الرجوع إليها. لنفترض أنّ أحد المستخدمين شاهد خمس دقائق من المحتوى، ثم غادر بث الفيديو، ثم عاد إليه. تتيح ميزة وضع الإشارة المرجعية للمستخدم حفظ موضع الفيديو في البث المباشر، ما يتيح له متابعة المشاهدة من حيث توقّف، وبالتالي توفير تجربة سلسة للمشاهد.
الإشارات المرجعية في "الإعلانات الديناميكية أثناء البث"
عند وضع إشارة مرجعية على بث DAI، عليك تسجيل معرّف البث والوقت عندما يغادر المستخدم الفيديو. عندما يعود المستخدم، أعِد طلب البث وانتقِل إلى الوقت المحفوظ. بما أنّ كل مثيل من البث المطلوب يمكن أن يتضمّن فواصل إعلانية بمدد مختلفة، لن يكون حفظ وقت البث كافيًا. ما عليك فعله هو المتابعة من وقت المحتوى نفسه.
طُرق الإحالة الناجحة في الخدمة
توفّر حزمة تطوير البرامج (SDK) الخاصة بإعلانات البث المباشر من "إعلانات الوسائط التفاعلية" طريقتَين لطلب وقت المحتوى لوقت بث معيّن ووقت البث لوقت محتوى معيّن. باستخدام طرق التحويل هذه، يمكنك تخزين وقت المحتوى الذي تمت إضافة إشارة مرجعية إليه، ثم البحث عن وقت البث المقابل في مثيل جديد من البث. في ما يلي الطريقة، بما في ذلك رابط إلى تطبيق نموذجي يعرض عملية تنفيذ ناجحة للإشارات المرجعية.
حفظ الإشارات المرجعية
حفظ إشارة مرجعية عندما يكون النشاط متوقفًا مؤقتًا
- (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;
}
}
}