ה-Interactive Media Ads SDK (DAI) מסתמך על פרטי מטא-נתונים שמוטמעים בפלחי המדיה של השידור (מטא-נתונים בתוך הרצועה), או בקובץ המניפסט של הסטרימינג (מטא-נתונים במניפסט) כדי לעקוב אחרי המיקומים של הצופים ואירועי המודעות בצד הלקוח. המטא-נתונים זמינים מזרם 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. הקטע event listener והתחלת השידור במדריך מכיל את לולאת הטיפול במטא-נתונים.
שידורי HLS CMAF
שידורים לינאריים של DAI HLS באמצעות Common Media Application Framework (CMAF) מעבירים מטא-נתונים מתוזמנים דרך תיבות eMSGv1 בתוך תדרים לפי תקן ID3 עד CMAF. תיבות ה-eMSG האלה מוטמעות בתחילת כל קטע מדיה, וכל eMSG מזהה3 מכיל PTS ביחס לאי ההמשכיות האחרונה בשידור.
עבור IMA Roku, כל שידורי ה-CMAF של HLS שולחים נתוני ID3 בארגון באמצעות פורמט eMSGv0. IMA משלבת מידע שסופק בפורמט eMSGv0 עם המידע מאובייקט הסרטון.
כדי לאפשר ניתוח תקין של אירועי ID3 בשידור CMAF ב-HLS, עליכם לשלוח את אובייקט הווידאו בבקשת השידור באמצעות StreamRequest.videoObject
.