Doğrusal DAI akışlarında zamanlanmış meta verileri işleme

Platform seçin: HTML5 Roku

Interactive Media Ads (IMA) Dinamik Reklam Ekleme SDK'sı (DAI), izleyicilerin konumlarını ve istemci tarafı reklam etkinliklerini izlemek için akışın medya segmentlerine yerleştirilmiş meta veri bilgilerine (bant içi meta veriler) veya akış manifest dosyasına (manifest içi meta veriler) dayanır. Meta veriler, oynatılan akışın türüne bağlı olarak farklı biçimlerde DAI akışında kullanılabilir. IMA DAI SDK, tüm meta veri biçimlerini tek bir API üzerinden işler.

Uygulamanız, meta verileri yakalamaktan ve IMA DAI SDK'ya iletmekten sorumludur. SDK, bu bilgileri iletmek için StreamManager.onMessage() yöntemini sunar. Bu yöntem, roVideo bağlantı noktası tarafından sağlanan bir msg nesnesi biçiminde meta verileri yönlendirir. Bu nesneler daha sonra reklam etkinliklerinin zamanlamasını belirlemek için IMA DAI SDK'sı tarafından işlenir. Tek bir bağımsız değişken alır:

  • msg: roVideo bağlantı noktası tarafından sağlanan bir msg türü nesnesi.

Meta veri örnek kodu

roVideo bağlantı noktasından gelen meta verilerin nasıl işleneceği ve StreamManager.onMessage() aracılığıyla IMA DAI SDK'sına nasıl iletileceğine dair bir örneği burada bulabilirsiniz.

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

Döngü işleme akışı meta verilerini uygulamanıza nasıl dahil edeceğiniz hakkında daha fazla bilgi için IMA Roku'ya başlama kılavuzunu inceleyin. Kılavuzun event listener and stream start section (Etkinlik dinleyici ve akış başlatma bölümü), meta veri işleme döngüsünü içerir.

HLS CMAF akışları

Common Media Application Framework (CMAF) kullanan doğrusal DAI HLS akışları, ID3 through CMAF standardına uygun olarak bant içi eMSGv1 kutuları aracılığıyla zamanlanmış meta verileri iletir. Bu eMSG kutuları, her medya segmentinin başına yerleştirilir. Her ID3 eMSG'si, akışta son kesintiye göre bir PTS içerir.

IMA Roku için tüm HLS CMAF akışları, eMSGv0 biçimini kullanarak bant içi ID3 verileri gönderir. IMA, eMSGv0 biçimi tarafından sağlanan bilgileri video nesnesinden alınan bilgilerle birleştirir.

HLS CMAF akışı ID3 etkinliklerinin düzgün şekilde ayrıştırılmasını sağlamak için akış isteğindeki video nesnenizi StreamRequest.videoObject kullanarak göndermeniz gerekir.