Gérer les métadonnées planifiées dans les flux linéaires d'insertion dynamique d'annonce

Le SDK d'insertion dynamique d'annonce IMA (Interactive Media Ads) repose sur les informations sur les métadonnées intégrées aux segments multimédias du flux (métadonnées au sein du groupe) ; ou dans le fichier manifeste de streaming (métadonnées du fichier manifeste) pour suivre l'activité des spectateurs et les événements d'annonce côté client. Les métadonnées sont disponibles à partir du flux DAI dans différents formats, en fonction du type de flux en cours de lecture. L'insertion dynamique d'annonces Le SDK gère tous les formats de métadonnées via une seule API.

Votre application est chargée de capturer les métadonnées et de les transmettre au SDK IMA DAI. Le SDK propose StreamManager.onMessage() pour transmettre ces informations. Cette méthode transmet les métadonnées sous la forme d'un Objet msg fourni par le port roVideo. Ces objets sont ensuite traités le SDK IMA DAI pour définir la date et l'heure des événements d'annonce. Il faut une seule argument:

  • msg: objet de type de message fourni par le port roVideo.

Exemple de code de métadonnées

Voici un exemple de gestion des métadonnées du port roVideo au SDK IMA DAI via 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

Pour en savoir plus sur l'intégration de la boucle de gestion des métadonnées de flux dans votre application, consultez les Guide de démarrage d'IMA pour Roku La Écouteur d'événements et section de début de flux contient la boucle de gestion des métadonnées.

Flux CMAF du HLS

Les flux HLS DAI linéaires utilisant le format CMAF (Common Media Application Framework) transmettent des métadonnées temporelles via des boîtes eMSGv1 en bande suivant la norme ID3 via CMAF. Ces blocs eMSG sont intégrés au début de chaque segment multimédia, chaque eMSG ID3 contenant un PTS par rapport à la dernière discontinuité du flux.

Pour l'IMA Roku, tous les flux CMAF HLS envoient des données ID3 sur la bande au format eMSGv0. IMA combine les informations fournies par le format eMSGv0 avec celles de l'objet vidéo.

Pour permettre une analyse correcte des événements ID3 de flux CMAF HLS, vous devez envoyer votre objet vidéo dans la requête de flux à l'aide de StreamRequest.videoObject.