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

เลือกแพลตฟอร์ม HTML5 Roku

SDK การแทรกโฆษณาแบบไดนามิก (DAI) ของโฆษณาสื่ออินเทอร์แอกทีฟ (IMA) จะอิงตาม ข้อมูลเมตาที่ฝังอยู่ในกลุ่มสื่อของสตรีม (ข้อมูลเมตาในแบนด์) หรือในไฟล์ Manifest ของการสตรีม (ข้อมูลเมตาใน Manifest) เพื่อติดตามตำแหน่งของผู้ชม และเหตุการณ์โฆษณาฝั่งไคลเอ็นต์ โดยเมตาดาต้าจะพร้อมใช้งานจากสตรีม DAI ในรูปแบบต่างๆ ขึ้นอยู่กับประเภทของสตรีมที่เล่น IMA DAI SDK จัดการรูปแบบข้อมูลเมตาทั้งหมดผ่าน API เดียว

แอปของคุณมีหน้าที่บันทึกข้อมูลเมตาและส่งต่อข้อมูลไปยัง IMA DAI SDK SDK มีเมธอด StreamManager.onMessage() สำหรับส่งข้อมูลนี้ เมธอดนี้จะส่งต่อข้อมูลเมตาในรูปแบบออบเจ็กต์ msg ที่พอร์ต roVideo จัดเตรียมไว้ให้ จากนั้น IMA DAI SDK จะประมวลผลออบเจ็กต์เหล่านี้เพื่อกำหนดเวลาสำหรับเหตุการณ์โฆษณา โดยรับอาร์กิวเมนต์เดียว

  • msg: ออบเจ็กต์ประเภท 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

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

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

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