معالجة البيانات الوصفية المحددة بوقت في ساحات مشاركات DAI الخطية

تعتمد حزمة تطوير البرامج (SDK) لإدراج الإعلانات الديناميكية لإعلانات الوسائط التفاعلية (IMA) على معلومات البيانات الوصفية المضمّنة في شرائح وسائط البث (البيانات الوصفية ضمن النطاق) أو في ملف بيان البث (البيانات الوصفية ضمن البيان) لتتبُّع مواضع المشاهدين وأحداث الإعلانات من جهة العميل. وتتوفّر البيانات الوصفية من بث DAI بتنسيقات مختلفة حسب نوع البث الذي يتم تشغيله. تعالج حزمة تطوير البرامج لإعلانات الوسائط التفاعلية Roku جميع تنسيقات البيانات الوصفية من خلال واجهة برمجة تطبيقات واحدة.

تطبيقك مسؤول عن التقاط البيانات الوصفية وإعادة توجيهها إلى حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية. توفّر حزمة تطوير البرامج (SDK) طريقة StreamManager.onMessage() لتمرير هذه المعلومات. تعمل هذه الطريقة على إعادة توجيه البيانات الوصفية في شكل عنصر msg يوفّره منفذ roVideo. وتتم بعد ذلك معالجة هذه الكائنات بواسطة حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية لتحديد توقيت أحداث الإعلانات. يتطلب الأمر وسيطة واحدة:

  • msg: كائن نوع الرسالة يوفره منفذ roVideo

رمز نموذجي للبيانات الوصفية

في ما يلي مثال عن كيفية التعامل مع البيانات الوصفية من منفذ roVideo وتمريرها إلى أداة تطوير البرامج لإعلانات الوسائط التفاعلية من خلال StreamManager.onMessage().

Sub runLoop()
  ' Forward all timed metadata events to IMA.
  m.top.video.timedMetaDataSelectionKeys = ["*"]

  ' Cycle through all the fields and set listeners.
  ' IMPORTANT: Failure to listen to the position and timedmetadata fields could
  ' result in ad impressions not being reported.
  m.port = CreateObject("roMessagePort")
  fields = m.top.video.getFields()
  for each field in fields
    m.top.video.observeField(field, m.port)
  end for

  while True
    msg = wait(1000, m.port)
    if m.top.video = invalid
      print "exiting"
      exit while
    end if

    m.streamManager.onMessage(msg)
    currentTime = m.top.video.position
    If currentTime > 3 And not m.top.adPlaying
       m.top.video.enableTrickPlay = true
    End If
  end while
End Sub

للحصول على مزيد من المعلومات حول كيفية دمج البيانات الوصفية لمصدر معالجة التكرار في تطبيقك، يُرجى الاطّلاع على دليل بدء استخدام Roku لإعلانات الوسائط التفاعلية. يتضمّن قسم بداية البث وأداة معالجة الحدث في الدليل حلقة معالجة البيانات الوصفية.

أحداث بث HLS CMAF

إنّ أحداث البث المباشر وفق بروتوكول DAI (HLS) التي تستخدم إطار عمل الوسائط المشتركة (CMAF) تمرّر البيانات الوصفية المحدّدة زمنيًا من خلال مربّعات eMSGv1 ضمن النطاق وتتّبع معيار ID3 إلى CMAF. ويتم تضمين صناديق eMSG هذه في بداية كل قطاع من الوسائط، بحيث يحتوي كل معرّف eMSG على معرّف 3 على نقطة اتصال مرتبطة بآخر انقطاع في البث.

بالنسبة إلى IMA Roku، تُرسِل جميع عمليات بث HLS CMAF بيانات المعرّف 3 ضمن النطاق باستخدام تنسيق eMSGv0. وتجمع إعلانات الوسائط التفاعلية المعلومات التي يقدمها تنسيق eMSGv0 مع المعلومات من كائن الفيديو.

لتفعيل التحليل الصحيح لأحداث رقم التعريف 3 لمصدر البث HLS CMAF، يجب إرسال عنصر الفيديو في طلب البث باستخدام StreamRequest.videoObject.