Написание приложений-отправителей для 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:

идентификатор контента Уникальный идентификатор этого медиа-элемента.
URL-адрес контента URL-адрес резервного потока для загрузки в случае сбоя DAI StreamRequest по какой-либо причине.
тип потока Для прямых трансляций это значение должно быть установлено на «LIVE». Для потоков VOD это значение должно быть установлено на «BUFFERED».
пользовательские данные ключ актива Только прямые трансляции. Определяет прямой поток для загрузки
контентсаурцеид Только VOD-трансляции. Идентифицирует медиаканал, содержащий запрошенный поток.
идентификатор видео Только VOD-трансляции. Идентифицирует запрошенный поток в указанном медиаканале.
APIКей Необязательный ключ API, который может потребоваться для получения URL-адреса потока из SDK IMA DAI.
отправительCanSkip Логическое значение, позволяющее получателю узнать, имеет ли отправляющее устройство возможность отображать кнопку пропуска, обеспечивая поддержку пропускаемой рекламы.

Пример прямой трансляции:

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