Criar apps de remetente para o SDK do CAF DAI

Ao contrário das integrações anteriores entre o Chromecast e a DAI, o SDK CAF DAI se concentra em manter os padrões e as expectativas definidos pelo Cast Application Framework. Assim, não há requisitos para personalizar muito os apps remetentes para gerenciar comunicações bidirecionais entre a IMA e o app remetente. Essas comunicações agora são gerenciadas pela funcionalidade integrada CAF Ad Breaks, em vez de exigir sistemas de mensagens personalizados para comunicação entre o app remetente e o receptor.

Dependendo do seu remetente, talvez seja necessário adicionar um código limitado para ativar totalmente o suporte a intervalos comerciais do CAF, como adicionar suporte a anúncios puláveis aos remetentes da Web.

Além do suporte a intervalos de anúncios do CAF, basta incluir os dados de stream da DAI no objeto MediaInfo do CAF enviado do remetente para o destinatário. Você pode enviar esses dados de várias maneiras diferentes. Por exemplo, é possível codificar o contentSourceID no receptor e enviar apenas o videoID com o objeto MediaInfo. Outra opção é enviar um identificador arbitrário para o receptor e, de lá, consultar um banco de dados on-line para os parâmetros reais da DAI.

No entanto, para simplificar, todas as nossas amostras vão presumir que você segue esta estrutura simples e convenção de nomenclatura para seus objetos MediaInfo:

contentId Um identificador exclusivo do item de mídia.
contentUrl O URL do stream substituto a ser carregado se o DAI StreamRequest falhar por qualquer motivo.
streamType Para transmissões ao vivo, esse valor deve ser definido como "LIVE". Para transmissões de VOD, esse valor precisa ser definido como "BUFFERED".
customData assetKey Apenas transmissões ao vivo. Identifica a transmissão ao vivo a ser carregada.
contentSourceId Apenas streams de VOD. Identifica o feed de mídia que contém o stream solicitado.
videoId Apenas streams de VOD. Identifica o stream solicitado no feed de mídia especificado.
ApiKey Uma chave de API opcional que pode ser necessária para recuperar o URL de stream do SDK do IMA DAI.
senderCanSkip Um valor booleano para informar ao receptor se o dispositivo de envio tem a capacidade de mostrar um botão "Pular", permitindo o suporte a anúncios puláveis.

Exemplo de transmissão ao 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"
}

Exemplo de stream 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"
}