В отличие от предыдущих интеграций Chromecast и DAI, CAF DAI SDK уделяет большое внимание соблюдению стандартов и ожиданий, установленных Cast Application Framework . Таким образом, нет необходимости в значительной настройке приложений-отправителей для управления двунаправленным взаимодействием между IMA и приложением-отправителем. Теперь управление этими взаимодействиями осуществляется через интегрированную функцию CAF Ad Breaks , а не требует использования специальных систем обмена сообщениями для взаимодействия между приложением-отправителем и приложением-получателем.
В зависимости от отправителя вам может потребоваться добавить некоторый ограниченный код в отправители, чтобы полностью включить поддержку рекламных пауз CAF, например, добавить поддержку пропускаемых рекламных объявлений в отправители веб-сообщений .
Всё, что теперь требуется, помимо поддержки рекламных пауз CAF, — это включить данные потока DAI в объект CAF MediaInfo , отправляемый отправителем получателю. Вы можете отправлять эти данные различными способами. Например, можно жёстко задать contentSourceID на приемнике и отправлять только videoID с объектом MediaInfo, или можно отправить получателю произвольный идентификатор и затем запросить у онлайн-базы данных параметры DAI.
Однако для простоты во всех наших примерах предполагается, что вы следуете этой простой структуре и соглашению об именовании объектов MediaInfo:
contentId | Уникальный идентификатор этого медиа-элемента | |
contentUrl | Резервный URL потока для загрузки, если DAI StreamRequest по какой-либо причине не удалось выполнить. | |
streamType | Для прямых трансляций это значение должно быть «LIVE». Для потоков VOD это значение должно быть «BUFFERED». | |
customData | assetKey | Только для прямых трансляций. Определяет прямую трансляцию для загрузки. |
contentSourceId | Только для потоков VOD. Определяет медиаканал, содержащий запрошенный поток. | |
videoId | Только для потоков VOD. Идентифицирует запрошенный поток в указанном медиаканале. | |
API-ключ | Дополнительный ключ API, который может потребоваться для получения URL-адреса потока из IMA DAI SDK. | |
senderCanSkip | Логическое значение, позволяющее получателю узнать, может ли отправляющее устройство отображать кнопку пропуска, что позволяет поддерживать пропускаемую рекламу. |
Пример прямой трансляции:
{
"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"
}
Пример трансляции 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"
}