טיפול במטא-נתונים מתוזמנים בשידורים לינאריים של הטמעת מודעות דינמיות (DAI)

ה-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.