حفظ الإشارات المرجعية لبث الإعلانات وتحميلها

اختيار النظام الأساسي: HTML5 Android iOS tvOS Roku

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

ما هي إضافة المواقع الإلكترونية إلى الإشارات المرجعية؟

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

الإشارات المرجعية في "الإعلانات الديناميكية أثناء البث"

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

طُرق الإحالة الناجحة في الخدمة

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

حفظ إشارات مرجعية في بث الإعلانات وتحميلها

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

onPause() {
    var bookmarkTime = Math.floor(
    streamManager.contentTimeForStreamTime(videoElement.currentTime));
}

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

حمِّل الإشارة المرجعية عند إعادة طلب بث.

function loadUrl(url) {
  hls.on(Hls.Events.MANIFEST_PARSED, () => {
    var startTime = 0;
    if (bookmarkTime) {
      var startTime = streamManager.streamTimeForContentTime(bookmarkTime);
      // Seeking on load triggers the onSeekEnd event, so treat this seek as
      // if it's snapback. Without this, resuming at a bookmark kicks you
      // back to the ad before the bookmark.
      isSnapback = true;
    }
    hls.startLoad(startTime);
    videoElement.addEventListener('loadedmetadata', () => { videoElement.play(); });
  });
  hls.loadSource(url);
  hls.attachMedia(videoElement);
}

تطبيق نموذجي

نزِّل تطبيق Sample للاطّلاع على طريقة تنفيذ ميزة الإشارات المرجعية.