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

Interactive Media Ads (IMA) Dinamik Reklam Ekleme SDK'sı (DAI), görüntüleyenlerin konumlarını ve istemci taraflı reklam etkinliklerini izlemek için akışın medya segmentlerine (grup içi meta veriler) veya akış manifest dosyasına (manifest meta verileri) yerleştirilen meta veri bilgilerini kullanır. Meta veriler, oynatılan akışın türüne bağlı olarak DAI akışından farklı biçimlerde kullanılabilir. Roku IMA SDK, tüm meta veri biçimlerini tek bir API üzerinden işler.

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

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

Meta veri örnek kodu

Meta verilerin roVideo bağlantı noktasından nasıl işleneceği ve StreamManager.onMessage() üzerinden IMA SDK'ya 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 başlangıç kılavuzuna bakın. Kılavuzun etkinlik işleyici ve akış başlangıç bölümü, meta veri işleme döngüsünü içerir.

HLS CMAF akışları

Ortak Medya Uygulama Çerçevesi (CMAF) kullanan doğrusal DAI HLS akışları, zamanlanmış meta verileri ID3'ten CMAF'ye kadar bant içi eMSGv1 kutuları üzerinden geçirir. Bu eMSG kutuları, her bir medya segmentinin başına yerleştirilir ve her bir ID3 eMSG, akıştaki son süreksizliğe göre bir PTS içerir.

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

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