Cómo escribir apps de remitente para el SDK de DAI de CAF

A diferencia de las integraciones anteriores entre Chromecast y la DAI, el SDK de CAF DAI se enfoca en gran medida en mantener los estándares y las expectativas establecidos por el Cast Application Framework. Por lo tanto, no hay requisitos para personalizar en gran medida tus apps para emisores y administrar las comunicaciones bidireccionales entre el IMA y la app para emisores. Estas comunicaciones ahora se administran a través de la funcionalidad integrada de CAF Ad Breaks, en lugar de requerir sistemas de mensajería personalizados para comunicarse entre la app para emisores y el receptor.

Según tu emisor, es posible que debas agregar código limitado a tus emisores para habilitar por completo la compatibilidad con las pausas publicitarias de CAF, como agregar compatibilidad con los anuncios que se pueden omitir a los emisores web.

Ahora, lo único que se requiere, además de la compatibilidad con las pausas publicitarias de CAF, es incluir los datos de la transmisión de DAI en el objeto CAF MediaInfo que se envía del emisor al receptor. Puedes enviar estos datos de muchas maneras diferentes. Por ejemplo, puedes codificar de forma rígida el contentSourceID en tu receptor y solo enviar el videoID con el objeto MediaInfo, o bien puedes enviar un identificador arbitrario al receptor y, desde allí, consultar una base de datos en línea para obtener los parámetros reales de la DAI.

Sin embargo, para simplificar, todas nuestras muestras supondrán que sigues esta estructura y convención de nomenclatura simples para tus objetos MediaInfo:

contentId Es un identificador único para este elemento multimedia.
contentUrl Es la URL de transmisión de resguardo que se cargará si falla la DAI StreamRequest por algún motivo.
streamType Para las transmisiones en vivo, este valor se debe establecer en "LIVE". Para las transmisiones de VOD, este valor debe establecerse en "BUFFERED".
customData assetKey Solo transmisiones en vivo. Identifica la transmisión en vivo que se cargará.
contentSourceId Solo transmisiones de VOD. Identifica el feed de medios que contiene la transmisión solicitada.
videoId Solo transmisiones de VOD. Identifica la transmisión solicitada dentro del feed de medios especificado.
ApiKey Es una clave de API opcional que se puede requerir para recuperar la URL de transmisión del SDK de IMA DAI.
senderCanSkip Es un valor booleano que le permite al receptor saber si el dispositivo de envío puede mostrar un botón para omitir, lo que habilita la compatibilidad con los anuncios que se pueden omitir.

Ejemplo de transmisión en VIVO:

{
  "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"
}

Ejemplo de transmisión de VOD:

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