DAI (SDK Penyisipan Iklan Dinamis (DAI) Iklan Media Interaktif) mengandalkan informasi metadata yang disematkan dalam segmen media streaming (metadata in-band), atau di file manifes streaming (metadata dalam manifes) untuk melacak posisi dan peristiwa iklan sisi klien. Metadata tersedia dari aliran data DAI dalam berbagai format, tergantung pada jenis streaming yang diputar. IMA DAI SDK menangani semua format metadata melalui satu API.
Aplikasi Anda bertanggung jawab menangkap metadata dan meneruskannya ke IMA DAI SDK. SDK ini menawarkan
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 menetapkan waktu bagi peristiwa iklan. Dibutuhkan satu
argumen:
msg
: objek jenis pesan yang disediakan oleh port roVideo.
Kode contoh metadata
Berikut adalah contoh cara menangani
metadata dari porta 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 informasi selengkapnya tentang cara menggabungkan metadata streaming penanganan loop ke dalam aplikasi Anda, lihat panduan memulai IMA Roku. Tujuan bagian awal streaming dan pemroses peristiwa dalam panduan ini berisi loop penanganan metadata.
Streaming CMAF HLS
Streaming HLS DAI linier menggunakan penerusan Common Media Application Framework (CMAF) metadata berwaktu melalui kotak eMSGv1 in-band setelah ID3 hingga CMAF. Kotak eMSG ini disematkan di awal setiap segmen media, dengan setiap ID3 eMSG berisi PTS relatif terhadap diskontinuitas terakhir dalam aliran data.
Untuk IMA Roku, semua streaming CMAF HLS mengirim data in-band ID3 menggunakan format eMSGv0. IMA menggabungkan informasi yang diberikan oleh format eMSGv0 dengan informasi dari objek video.
Untuk mengaktifkan penguraian peristiwa ID3 streaming CMAF HLS yang tepat, Anda harus mengirim
objek video dalam permintaan streaming menggunakan
StreamRequest.videoObject
.