Как начать работу с IMA SDK на HbbTV

IMA DAI SDK поддерживает интеграцию с минимальным приложением видеопроигрывателя HbbTV. IMA DAI SDK позволяет использовать спрос Google Менеджера рекламы для широкополосного рекламного потока, сопровождающего поток транслируемого контента. В этом руководстве рассказывается, как загрузить манифест объявления на основе данных о событиях объявлений из трансляции.

Чтобы посмотреть или повторить готовую интеграцию, скачайте пример приложения HbbTV Linear с IMA HTML5 DAI SDK. Чтобы обеспечить поддержку старых моделей телевизоров, в этом руководстве и примере приложения на GitHub используется ES5 JavaScript.

Информацию об интеграции с другими платформами, не поддерживающими HbbTV, можно найти в статье Interactive Media Ads SDK.

Требования

Прежде чем продолжить, убедитесь, что у вас есть:

  • Чтобы использовать IMA DAI, у вас должен быть аккаунт Менеджера рекламы 360 Advanced. Если у вас есть аккаунт Менеджера рекламы, обратитесь к менеджеру по работе с клиентами. Информацию о регистрации в Менеджере рекламы можно найти в Справочном центре.
  • Приложение HbbTV, взаимодействующее с объектом трансляции для воспроизведения медиаконтента. Подробнее об объекте Broadcast AV в HbbTV…
  • Версия dash.js, поддерживающая предварительную загрузку. Рекомендуем использовать версию 4.6.0 или более позднюю.
  • Веб-сервер для размещения приложения.
  • Тестовая среда с трансляцией DVB. Подробные инструкции по настройке тестовой среды можно найти в статье Запуск приложения HbbTV.
    • Трансляция. Подготовьте трансляцию, содержащую данные таблицы информации о приложении (AIT). Вам также нужен способ передачи трансляции для приема телевизором. Для передачи потока можно использовать модулятор DVB или другие методы.
    • Веб-сервер. Разместите приложение HbbTV на веб-сервере, доступном для телевизора.
  • Трансляция с типом Показ пакета с использованием манифеста. Инструкции по созданию события приведены в статье Настройка прямой трансляции с динамической вставкой объявлений.

Создайте совместимую трансляцию

Приложение HbbTV использует broadcastContainer.addStreamEventListener() для прослушивания событий в потоке HbbTV. Чтобы объявления загружались и воспроизводились правильно, настройте трансляцию с указанными ниже типами событий, которые должны включать полезную нагрузку в виде строки JSON.

  • AD_BREAK_EVENT_ANNOUNCE – {"type":"adBreakAnnounce", "pod_id":1,"duration":90, "offset":10}
  • AD_BREAK_EVENT_START – {"type":"adBreakStart"}
  • AD_BREAK_EVENT_END – {"type":"adBreakEnd"}

Для этих событий добавьте полезную нагрузку в виде строки JSON с параметром streamEvent.type. Чтобы поддерживать предварительную загрузку объявлений, событие AD_BREAK_EVENT_ANNOUNCE должно включать streamEvent.duration и streamEvent.offset. Подробнее о том, как отслеживать события потока HbbTV… Чтобы настроить трансляцию, ознакомьтесь с примером мультиплексированного транспортного потока MPEG. Чтобы использовать пример потока, необходимо обновить URL таблицы информации о приложении для собственных настроек потока.

Как создать событие прямой трансляции с показом пакетов

Чтобы показывать рекламу в приложении HbbTV, вам нужно событие трансляции с показом пакетов. Информацию о настройке события можно найти в статье Настройка прямой трансляции с динамической вставкой объявлений. Чтобы получить доступ к настроенному потоку, в приложении должны быть следующие переменные:

  • NETWORK_CODE – код сети Менеджера рекламы, используемый для запроса объявлений.
  • CUSTOM_ASSET_KEY – ключ объекта Менеджера рекламы, созданный при настройке трансляции для динамической вставки объявлений.

Создайте структуру файлов приложения

В этом руководстве используется структура файлов, аналогичная той, которая применяется в примере приложения IMA HbbTV. Чтобы выполнить инструкции из этого руководства, создайте следующие файлы:

  • index.html – индекс HTML для вашего приложения.
  • Style.css – стили CSS для приложения.
  • application.js – основная точка входа JS. Управляет воспроизведением и рекламными паузами.
  • video_player.js – управляет проигрывателем dash.js, который используется для воспроизведения рекламы.
  • ads_manager.js – управляет настройкой IMA, запросом потока и обработкой событий.

ads_manager.js настраивает IMA DAI SDK. IMA DAI SDK реализуется с помощью следующих компонентов:

  • PodStreamRequest – объект, определяющий запрос потока к рекламным серверам Google.
  • StreamManager – объект, который обрабатывает потоки с динамической вставкой объявлений и взаимодействует с серверной частью динамической вставки объявлений. Менеджер потоков также обрабатывает запросы на отслеживание и пересылает издателю события потока и объявлений.

Подробные инструкции по настройке тестовой среды вы найдете в руководстве по запуску приложения HbbTV.

Загрузка IMA DAI SDK и DASH.js

Чтобы начать воспроизведение рекламного потока, загрузите IMA DAI SDK и dash.js в приложение. Перед тегом application.js добавьте dash.js и фреймворк IMA, используя теги script в index.html.

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.2.0/crypto-js.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/dashjs@latest/dist/dash.all.min.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/ima3_dai.js"></script>

Затем создайте класс-оболочку видеопроигрывателя, чтобы инициализировать проигрыватель dash.js и управлять им.