Menangani metadata dengan waktu di streaming DAI linear

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.