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

Sélectionnez la plate-forme : HTML5 Roku

Le SDK IMA (Interactive Media Ads) pour l'insertion dynamique d'annonces (DAI) s'appuie sur des informations de métadonnées intégrées dans les segments média du flux (métadonnées dans le flux) ou dans le fichier manifeste du flux (métadonnées dans le manifeste) pour suivre la position des spectateurs et les événements publicitaires côté client. Les métadonnées sont disponibles dans le flux DAI sous différents formats, en fonction du type de flux lu. Le SDK IMA DAI 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 transférer au SDK IMA DAI. Le SDK propose la méthode 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 par le SDK IMA DAI pour établir le calendrier des événements publicitaires. Elle prend un seul argument :

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

Exemple de code de métadonnées

Voici un exemple de la façon de gérer les métadonnées du port roVideo et de les transmettre 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 savoir comment intégrer les métadonnées de flux de gestion de boucle dans votre application, consultez le guide de démarrage IMA pour Roku. La section sur l'écouteur d'événements et le début du flux du guide contient la boucle de gestion des métadonnées.

Flux HLS CMAF

Les flux HLS DAI linéaires utilisant le Common Media Application Framework (CMAF) transmettent les métadonnées temporelles dans des boîtes eMSGv1 intégrées, conformément à la norme ID3 via CMAF. Ces zones eMSG sont intégrées au début de chaque segment multimédia, chaque eMSG ID3 contenant un PTS relatif à la dernière discontinuité du flux.

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

Pour que les événements ID3 du flux CMAF HLS soient correctement analysés, vous devez envoyer votre objet vidéo dans la requête de flux à l'aide de StreamRequest.videoObject.