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