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