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