Processar metadados cronometrados em streams da DAI linear

O SDK de Inserção de anúncios dinâmicos (DAI) do Interactive Media Ads (IMA) depende informações de metadados incorporadas em segmentos de mídia da transmissão (metadados em banda), ou no arquivo de manifesto de streaming (metadados no manifesto) para rastrear posições e eventos de anúncio do lado do cliente. Os metadados estão disponíveis no stream da DAI em diferentes formatos, dependendo do tipo de transmissão em reprodução. DAI do IMA O SDK processa todos os formatos de metadados com uma única API.

Seu app é responsável por capturar e encaminhar metadados ao SDK de DAI do IMA. O SDK oferece StreamManager.onMessage() para transmitir essas informações. Esse método encaminha os metadados na forma de um Objeto msg fornecido pela porta roVideo. Em seguida, esses objetos são processados o SDK de DAI do IMA para estabelecer o horário dos eventos de anúncios. É preciso um único :

  • msg: um objeto do tipo msg fornecido pela porta roVideo.

Amostra de código de metadados

Este é um exemplo de como lidar com os metadados da porta roVideo e transmiti-lo ao SDK de DAI do IMA por meio de 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

Para mais informações sobre como incorporar o loop que processa metadados de stream no seu app, consulte Guia de iniciação do IMA para Roku. O listener de eventos e seção de início do stream do guia contém o loop de tratamento de metadados.

Streams do HLS CMAF

Streams HLS da DAI linear usando a passagem do Common Media Application Framework (CMAF) metadados cronometrados por meio de caixas eMSGv1 em banda seguindo as orientações de ID3 a CMAF padrão. Estas caixas eMSG são incorporado no início de cada segmento de mídia, com cada eMSG ID3 contendo um PTS relativo à última descontinuidade no stream.

Para o IMA Roku, todos os streams HLS CMAF enviam dados ID3 em banda usando o formato eMSGv0. O IMA combina as informações fornecidas pelo formato eMSGv0 com informações do objeto de vídeo.

Para permitir a análise adequada de eventos de ID3 de fluxo da CMAF HLS, é preciso enviar o objeto de vídeo na solicitação de stream usando StreamRequest.videoObject