Interactive Media Ads (IMA) Dynamic Ad Insertion SDK (DAI) mengandalkan informasi metadata yang disematkan dalam segmen media streaming (metadata dalam band), atau dalam file manifes streaming (metadata dalam manifes) untuk melacak posisi penonton dan peristiwa iklan sisi klien. Metadata tersedia dari streaming DAI dalam format yang berbeda, bergantung pada jenis streaming yang diputar. IMA DAI SDK menangani semua format metadata melalui satu API.
Aplikasi Anda bertanggung jawab untuk merekam metadata dan meneruskannya ke IMA DAI SDK. SDK menawarkan metode
StreamManager.onMessage()
untuk meneruskan informasi ini. Metode ini meneruskan metadata dalam bentuk objek msg
yang disediakan oleh port roVideo. Objek ini kemudian diproses oleh
IMA DAI SDK untuk menentukan waktu peristiwa iklan. Fungsi ini memerlukan satu
argumen:
msg
: objek jenis msg yang disediakan oleh port roVideo.
Kode contoh metadata
Berikut contoh cara menangani metadata dari port roVideo dan
meneruskannya ke IMA DAI SDK melalui 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
Untuk mengetahui informasi selengkapnya tentang cara menggabungkan metadata streaming penanganan loop ke dalam aplikasi Anda, lihat panduan memulai IMA Roku. Bagian pemroses peristiwa dan mulai streaming dalam panduan ini berisi loop penanganan metadata.
Streaming CMAF HLS
Streaming HLS DAI Linear yang menggunakan Common Media Application Framework (CMAF) meneruskan metadata berwaktu melalui kotak eMSGv1 dalam band sesuai dengan standar ID3 melalui CMAF. Kotak eMSG ini disematkan di awal setiap segmen media, dengan setiap eMSG ID3 berisi PTS relatif terhadap diskontinuitas terakhir dalam aliran.
Untuk IMA Roku, semua streaming CMAF HLS mengirim data ID3 dalam band menggunakan format eMSGv0. IMA menggabungkan informasi yang diberikan oleh format eMSGv0 dengan informasi dari objek video.
Untuk mengaktifkan parsing yang tepat dari peristiwa ID3 streaming CMAF HLS, Anda harus mengirim objek video dalam permintaan streaming menggunakan StreamRequest.videoObject
.