Menangani metadata dengan waktu di streaming DAI linear

Pilih platform: HTML5 Roku

Interactive Media Ads (IMA) Dynamic Ad Insertion SDK (DAI) mengandalkan informasi metadata yang disematkan dalam segmen media streaming (metadata in-band), atau dalam file manifes streaming (metadata in-manifest) untuk melacak posisi penonton dan peristiwa iklan sisi klien. Metadata tersedia dari streaming DAI dalam berbagai format, bergantung pada jenis streaming yang diputar. IMA DAI SDK menangani semua format metadata melalui satu API.

Aplikasi Anda bertanggung jawab untuk 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. Metode 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, lihat panduan memulai IMA Roku. Bagian pemroses peristiwa dan awal streaming dari panduan ini berisi loop penanganan metadata.

Streaming CMAF HLS

Streaming HLS DAI Linear menggunakan Common Media Application Framework (CMAF) meneruskan metadata berjangka waktu melalui kotak eMSGv1 in-band yang mengikuti ID3 melalui CMAF standar. Kotak eMSG ini disematkan di awal setiap segmen media, dengan setiap eMSG ID3 berisi PTS 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 yang tepat atas peristiwa ID3 streaming CMAF HLS, Anda harus mengirim objek video dalam permintaan streaming menggunakan StreamRequest.videoObject.