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

A diferencia de las integraciones anteriores entre Chromecast y DAI, el SDK de DAI de CAF se centra principalmente en mantener los estándares y las expectativas que establece el marco de trabajo de aplicaciones de Cast. Por lo tanto, no hay requisitos para personalizar en gran medida tus apps emisoras a fin de administrar las comunicaciones bidireccionales entre IMA y la app emisora. Estas comunicaciones ahora se administran mediante la funcionalidad integrada de pausas publicitarias de CAF, en lugar de requerir que los sistemas de mensajes personalizados se comuniquen entre la app emisora y el receptor.

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

Ahora bien, lo único que se requiere, además de la compatibilidad con pausas publicitarias de CAF, es incluir los datos de transmisión de DAI en el objeto CAF MediaInfo que se envía del remitente al receptor. Puede elegir enviar estos datos de muchas maneras diferentes; por ejemplo, podría codificar el contentContentID en su receptor y solo enviar videoID con el objeto MediaInfo, o podría enviar un identificador arbitrario al receptor y, desde allí, consultar una base de datos en línea para los parámetros de DAI reales.

Sin embargo, para mayor simplicidad, todos nuestros ejemplos supondrán que siguen esta estructura simple y esa convención de nombres para sus objetos MediaInfo:

contentId [ID de contenido] Un identificador único para este elemento multimedia
URLdecontenido La URL de transmisión de resguardo que se debe cargar si DAI StreamRequest falla por algún motivo
StreamType Para las transmisiones en vivo, este valor se debe configurar como “EN VIVO”. Para las transmisiones de VOD, este valor debe establecerse en "BUFFERED".
datospersonalizados assetKey Solo para 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.
identificación de video Solo transmisiones de VOD. Identifica la transmisión solicitada dentro del feed de medios especificado.
Clave de API Una clave de API opcional que se puede requerir para recuperar la URL de transmisión del SDK de DAI de IMA.
senderCanSkip Es un valor booleano que informa al receptor si el dispositivo emisor puede mostrar un botón de omisión y habilita la compatibilidad con 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": "2528370",
      "videoId": "tears-of-steel",
      "ApiKey": "",
      "senderCanSkip": true
    }
  },
  "credentials": "testCredentials"
}