Написание приложений-отправителей для CAF DAI SDK

В отличие от предыдущих интеграций 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"
}