Menangani metadata dengan waktu di streaming DAI linear

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.