Interactive Media Ads (IMA) Dynamic Ad Insertion SDK (DAI) ใช้ข้อมูลเมตาที่ฝังอยู่ในส่วนสื่อของสตรีม (ข้อมูลเมตาในแบนด์) หรือในไฟล์ 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 ส่วน Listener เหตุการณ์และการเริ่มต้นสตรีม ของคู่มือจะมีลูปการจัดการข้อมูลเมตา
สตรีม HLS CMAF
สตรีม DAI HLS เชิงเส้นที่ใช้ Common Media Application Framework (CMAF) จะส่ง ข้อมูลเมตาที่กำหนดเวลาผ่านกล่อง eMSGv1 ในแบนด์ตามมาตรฐาน ID3 ผ่าน CMAF กล่อง eMSG เหล่านี้จะฝังอยู่ที่จุดเริ่มต้นของส่วนสื่อแต่ละส่วน โดย eMSG ID3 แต่ละรายการจะมี PTS สัมพัทธ์กับการหยุดชะงักครั้งล่าสุดในสตรีม
สำหรับ IMA Roku สตรีม HLS CMAF ทั้งหมดจะส่งข้อมูล ID3 ในแบนด์โดยใช้รูปแบบ eMSGv0 IMA จะรวมข้อมูลที่จัดทำโดยรูปแบบ eMSGv0 กับข้อมูลจากออบเจ็กต์วิดีโอ
หากต้องการเปิดใช้การแยกวิเคราะห์เหตุการณ์ ID3 ของสตรีม HLS CMAF อย่างถูกต้อง คุณต้องส่งออบเจ็กต์วิดีโอในคำขอสตรีมโดยใช้
StreamRequest.videoObject