مدیریت فراداده های زمان بندی شده در جریان های DAI خطی

کیت توسعه نرم‌افزار (DAI) درج آگهی پویا تبلیغات رسانه‌ای تعاملی (IMA) به اطلاعات فراداده تعبیه‌شده در بخش‌های رسانه جریان (فراداده درون باند)، یا در فایل مانیفست جریان (فراداده درون آشکار) برای ردیابی موقعیت بینندگان و مشتری متکی است. رویدادهای تبلیغاتی جانبی متادیتا از جریان DAI در قالب های مختلف بسته به نوع جریان در حال پخش در دسترس است. IMA DAI SDK همه فرمت‌های فراداده را از طریق یک API مدیریت می‌کند.

برنامه شما مسئول گرفتن فراداده و ارسال آن به IMA DAI SDK است. SDK متد StreamManager.onMessage() را برای انتقال این اطلاعات ارائه می دهد. این روش ابرداده را در قالب یک شیء msg ارائه شده توسط پورت roVideo ارسال می کند. سپس این اشیاء توسط IMA DAI SDK پردازش می‌شوند تا زمان‌بندی رویدادهای تبلیغاتی مشخص شود. به یک استدلال واحد نیاز دارد:

  • msg : یک شی از نوع پیام ارائه شده توسط پورت roVideo.

کد نمونه فراداده

در اینجا مثالی از نحوه مدیریت ابرداده از پورت roVideo و ارسال آن به IMA DAI SDK از طریق 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

برای اطلاعات بیشتر در مورد نحوه ادغام فراداده های جریان مدیریت حلقه در برنامه خود، به راهنمای شروع IMA Roku مراجعه کنید. بخش شنونده رویداد و شروع جریان راهنما حاوی حلقه مدیریت فراداده است.

جریان های HLS CMAF

جریان‌های خطی DAI HLS با استفاده از چارچوب برنامه کاربردی رسانه مشترک (CMAF) ابرداده‌های زمان‌بندی‌شده را از طریق جعبه‌های eMSGv1 درون باند به دنبال استاندارد ID3 تا CMAF منتقل می‌کنند. این جعبه‌های eMSG در ابتدای هر بخش رسانه تعبیه شده‌اند و هر ID3 eMSG حاوی یک PTS نسبت به آخرین ناپیوستگی در جریان است.

برای IMA Roku، همه جریان‌های HLS CMAF داده‌های ID3 درون باند را با استفاده از قالب eMSGv0 ارسال می‌کنند. IMA اطلاعات ارائه شده توسط فرمت eMSGv0 را با اطلاعات شی ویدیو ترکیب می کند.

برای فعال کردن تجزیه مناسب رویدادهای ID3 جریان HLS CMAF، باید شی ویدیوی خود را در درخواست جریان با استفاده از StreamRequest.videoObject ارسال کنید.