Écrire des applications d'envoi pour le SDK d'insertion dynamique d'annonce CAF

Contrairement aux intégrations précédentes entre Chromecast et l'insertion dynamique d'annonce, le SDK de l'insertion dynamique d'annonce CAF se concentre essentiellement sur le respect des normes et des attentes définies par le framework d'application Cast. Ainsi, il n'est pas nécessaire de personnaliser fortement vos applications émetteurs pour gérer les communications bidirectionnelles entre l'IMA et l'application expéditeur. Ces communications sont désormais gérées via la fonctionnalité intégrée Coupures publicitaires CAF, au lieu d'exiger des systèmes de messages personnalisés pour la communication entre l'application expéditeur et le destinataire.

En fonction de l'expéditeur, vous devrez peut-être ajouter du code limité à vos expéditeurs afin d'activer entièrement la compatibilité avec les coupures publicitaires CAF, comme par exemple l'ajout d'annonces désactivables aux expéditeurs Web.

Tout ce qui est désormais obligatoire, outre la compatibilité avec les coupures publicitaires CAF, consiste à inclure les données de flux d'insertion dynamique d'annonce dans l'objet MediaInfo CAF envoyé de l'expéditeur au destinataire. Vous pouvez envoyer ces données de différentes manières. Par exemple, vous pouvez coder en dur le contenu sourceSourceID sur votre récepteur et n'envoyer que le videoID avec l'objet MediaInfo, ou envoyer un identifiant arbitraire au destinataire, puis interroger une base de données en ligne pour obtenir les paramètres réels de l'insertion dynamique d'annonce.

Toutefois, par souci de simplicité, tous nos exemples supposent que vous suivez cette structure simple et cette convention de dénomination pour vos objets MediaInfo:

ID du contenu Identifiant unique de cet élément multimédia
contentUrl. URL de flux de remplacement à charger en cas d'échec de la demande de flux pour l'insertion dynamique d'annonce
streamType Pour les diffusions en direct, cette valeur doit être définie sur "LIVE". Pour les flux de vidéo à la demande, cette valeur doit être définie sur "BUFFERED".
données personnalisées AssetKey Streamings en direct uniquement. Identifie le flux en direct à charger
contentSourceId Flux VOD uniquement. Identifie le flux multimédia qui contient le flux demandé.
ID vidéo Flux VOD uniquement. Identifie le flux demandé dans le flux multimédia spécifié.
Clé API Clé API facultative pouvant être requise pour récupérer l'URL du flux à partir du SDK IMA pour l'insertion dynamique d'annonce.
senderCanSkip Valeur booléenne permettant au destinataire de savoir si l'appareil émetteur est en mesure d'afficher un bouton "Ignorer", permettant ainsi la compatibilité avec les annonces désactivables

Exemple de diffusion en direct :

{
  "media": {
    "contentId": "bbb",
    "contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
    "streamType": "LIVE",
    "customData": {
      "assetKey": "sN_IYUG8STe1ZzhIIE_ksA",
      "ApiKey": "",
      "senderCanSkip": true
    }
  },
  "credentials": "testCredentials"
}

Exemple de flux de vidéo à la demande:

{
  "media": {
    "contentId": "tos",
    "contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/tos.m3u8",
    "streamType": "BUFFERED",
    "customData": {
      "contentSourceId": "2528370",
      "videoId": "tears-of-steel",
      "ApiKey": "",
      "senderCanSkip": true
    }
  },
  "credentials": "testCredentials"
}