จัดการข้อมูลเมตาที่มีการระบุเวลาในสตรีม DAI ที่ไม่ปรากฏร่วมกับวิดีโอ

SDK การแทรกโฆษณาแบบไดนามิก (DAI) ในโฆษณาสื่ออินเทอร์แอกทีฟ (IMA) ใช้ ข้อมูลเมตาที่ฝังในกลุ่มสื่อของสตรีม (ข้อมูลเมตาในวง) หรือในไฟล์ Manifest ของการสตรีม (ข้อมูลเมตาในไฟล์ Manifest) เพื่อติดตาม และเหตุการณ์โฆษณาฝั่งไคลเอ็นต์ ข้อมูลเมตาพร้อมใช้งานจากสตรีม 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 ส่วน Listener เหตุการณ์และการเริ่มสตรีม ของคู่มือจะมีลูปการจัดการข้อมูลเมตา

สตรีม HLS CMAF

สตรีม DAI แบบสดของ HLS ที่ใช้ Common Media Application Framework (CMAF) จะส่งข้อมูลเมตาที่มีการกำหนดเวลาผ่านกล่อง eMSGv1 ในแบนด์ตามมาตรฐาน ID3 ผ่าน CMAF ช่อง eMSG เหล่านี้ ฝังไว้ที่ตอนต้นของสื่อแต่ละกลุ่ม โดย eMSG รหัส 3 แต่ละกลุ่มมี PTS ที่สัมพันธ์กับความไม่ต่อเนื่องครั้งล่าสุดในสตรีม

สำหรับ IMA Roku สตรีม HLS CMAF ทั้งหมดจะส่งข้อมูล ID3 แบบแบนด์ในโดยใช้รูปแบบ eMSGv0 IMA รวมข้อมูลจากรูปแบบ eMSGv0 เข้ากับข้อมูล จากออบเจ็กต์วิดีโอ

หากต้องการเปิดใช้การแยกวิเคราะห์เหตุการณ์ ID3 ของสตรีม HLS CMAF อย่างถูกต้อง คุณต้องส่งออบเจ็กต์วิดีโอในคำขอสตรีมโดยใช้ StreamRequest.videoObject