IMA SDK облегчают интеграцию мультимедийной рекламы в ваши веб-сайты и приложения. IMA SDK могут запрашивать рекламу с любого совместимого с VAST сервера объявлений и управлять воспроизведением рекламы в ваших приложениях. С клиентскими SDK IMA вы сохраняете контроль над воспроизведением видеоконтента, в то время как SDK управляет воспроизведением рекламы. Реклама воспроизводится в отдельном видеоплеере, расположенном поверх видеоплеера контента приложения.
В этом руководстве показано, как интегрировать IMA SDK в простое приложение видеоплеера. Если вы хотите просмотреть или следовать завершенному примеру интеграции, загрузите простой пример с GitHub. Если вас интересует HTML5-плеер с предварительно интегрированным SDK, ознакомьтесь с плагином IMA SDK для Video.js .
Обзор клиентской части IMA
Реализация IMA на стороне клиента включает четыре основных компонента SDK, которые продемонстрированы в этом руководстве:
-
AdDisplayContainer
: объект-контейнер, который указывает, где IMA отображает элементы пользовательского интерфейса рекламы и измеряет видимость, включая Active View и Open Measurement . -
AdsLoader
: Объект, который запрашивает рекламу и обрабатывает события из ответов на запросы рекламы. Вам следует создать только один экземпляр загрузчика рекламы, который можно повторно использовать на протяжении всего срока службы приложения. -
AdsRequest
: объект, определяющий запрос рекламы. Запросы рекламы указывают URL для тега рекламы VAST, а также дополнительные параметры, такие как размеры рекламы. -
AdsManager
: объект, который содержит ответ на запрос рекламы, управляет воспроизведением рекламы и прослушивает события рекламы, запускаемые SDK.
Предпосылки
Прежде чем начать, вам понадобится следующее:
- Три пустых файла:
- индекс.html
- стиль.css
- объявления.js
- Python, установленный на вашем компьютере, или веб-сервер для использования в тестировании
1. Запустите сервер разработки
Поскольку IMA SDK загружает зависимости, используя тот же протокол, что и страница, с которой он загружается, вам нужно использовать веб-сервер для тестирования вашего приложения. Самый простой способ запустить локальный сервер разработки — использовать встроенный сервер Python.
- Используя командную строку, из каталога, содержащего ваш файл index.html, выполните:
python -m http.server 8000
- В веб-браузере перейдите по адресу
http://localhost:8000/
Вы также можете использовать любой другой веб-сервер, например Apache HTTP Server .
2. Создайте простой видеоплеер
Сначала измените index.html , чтобы создать простой элемент HTML5 video, содержащийся в элементе-обертке, и кнопку для запуска воспроизведения. Следующий пример импортирует IMA SDK и настраивает элемент-контейнер AdDisplayContainer
. Для получения более подробной информации см. шаги Import the IMA SDK и Create the ad container соответственно.
Добавьте необходимые теги для загрузки файлов style.css и ads.js. Затем измените styles.css , чтобы сделать видеоплеер адаптивным для мобильных устройств. Наконец, в ads.js объявите переменные и запустите воспроизведение видео при нажатии кнопки воспроизведения.
Обратите внимание, что фрагмент кода ads.js содержит вызов setUpIMA()
, который определен в разделе «Инициализация AdsLoader и создание запроса на рекламу» .
3. Импортируйте IMA SDK
Затем добавьте фреймворк IMA с помощью тега script в index.html перед тегом ads.js
4. Создайте рекламный контейнер
В большинстве браузеров IMA SDK использует выделенный элемент контейнера рекламы для отображения как рекламы, так и связанных с рекламой элементов пользовательского интерфейса. Этот контейнер должен иметь размер, позволяющий накладывать элемент видео из верхнего левого угла. Высота и ширина рекламы, размещенной в этом контейнере, задаются объектом adsManager
, поэтому вам не нужно задавать эти значения вручную.
Чтобы реализовать этот элемент контейнера рекламы, сначала создайте новый div
внутри элемента video-container
. Затем обновите CSS, чтобы расположить элемент в верхнем левом углу video-element
. Наконец, добавьте функцию createAdDisplayContainer()
для создания объекта AdDisplayContainer
с помощью нового контейнера рекламы div
.
5. Инициализируйте AdsLoader и сделайте запрос на рекламу.
Чтобы запросить рекламу, создайте экземпляр AdsLoader
. Конструктор AdsLoader
принимает объект AdDisplayContainer
в качестве входных данных и может использоваться для обработки объектов AdsRequest
, связанных с указанным URL тега рекламы. Тег рекламы, используемый в этом примере, содержит 10-секундную рекламу в начале ролика. Вы можете протестировать этот или любой другой URL тега рекламы с помощью IMA Video Suite Inspector .
В качестве лучшей практики, поддерживайте только один экземпляр AdsLoader
для всего жизненного цикла страницы. Чтобы сделать дополнительные запросы рекламы, создайте новый объект AdsRequest
, но повторно используйте тот же AdsLoader
. Для получения дополнительной информации см. FAQ по IMA SDK .
Прослушивайте и реагируйте на загруженные объявления и события ошибок с помощью AdsLoader.addEventListener
. Прослушивайте следующие события:
-
ADS_MANAGER_LOADED
-
AD_ERROR
Чтобы создать прослушиватели onAdsManagerLoaded()
и onAdError()
, см. следующий пример:
6. Реагируйте на события AdsLoader
Когда AdsLoader
успешно загружает рекламу, он выдает событие ADS_MANAGER_LOADED
. Проанализируйте событие, переданное обратному вызову, чтобы инициализировать объект AdsManager
. AdsManager
загружает отдельные объявления, как определено в ответе на URL тега рекламы.
Убедитесь, что вы обрабатываете любые ошибки, которые возникают в процессе загрузки. Если реклама не загружается, убедитесь, что воспроизведение медиа продолжается без рекламы, чтобы не мешать пользователю просматривать контент.
Более подробную информацию о прослушивателях, установленных в функции onAdsManagerLoaded()
, см. в следующих подразделах:
Обработка ошибок AdsManager
Обработчик ошибок, созданный для AdsLoader
может также служить обработчиком ошибок для AdsManager
. Смотрите обработчик событий, повторно использующий функцию onAdError()
.
Обработка событий воспроизведения и паузы
Когда AdsManager
готов вставить рекламу для отображения, он запускает событие CONTENT_PAUSE_REQUESTED
. Обработайте это событие, запустив паузу в базовом видеоплеере. Аналогично, когда реклама завершается, AdsManager
запускает событие CONTENT_RESUME_REQUESTED
. Обработайте это событие, перезапустив воспроизведение базового видеоконтента.
Определения функций onContentPauseRequested()
и onContentResumeRequested()
см. в следующем примере:
Управление воспроизведением контента во время нелинейной рекламы
AdsManager
приостанавливает воспроизведение видеоконтента, когда реклама готова к воспроизведению, но это поведение не учитывает нелинейную рекламу, когда контент продолжает воспроизводиться во время отображения рекламы.
Для поддержки нелинейной рекламы ожидайте, пока AdsManager
не выдаст событие LOADED
. Проверьте, является ли реклама линейной, и если нет, возобновите воспроизведение на элементе видео.
Определение функции onAdLoaded()
см. в следующем примере.
7. Активация функции «клик-пауза» на мобильных устройствах
Поскольку AdContainer
накладывается на элемент видео, пользователи не могут напрямую взаимодействовать с базовым проигрывателем. Это может сбить с толку пользователей мобильных устройств, которые ожидают, что смогут нажать на видеоплеер, чтобы приостановить воспроизведение. Чтобы решить эту проблему, IMA SDK передает все клики, которые не обрабатываются IMA, из наложения рекламы в элемент AdContainer
, где они могут быть обработаны. Это не относится к линейным объявлениям в немобильных браузерах, поскольку нажатие на объявление открывает ссылку перехода по клику.
Чтобы реализовать функцию «клик для паузы», добавьте функцию обработчика кликов adContainerClick()
вызываемую в прослушивателе загрузки окна.
8. Запустите AdsManager
Чтобы начать воспроизведение рекламы, инициируйте и запустите AdsManager
. Для полной поддержки мобильных браузеров, где вы не можете автоматически воспроизводить рекламу, запускайте воспроизведение рекламы при взаимодействии пользователя со страницей, например при нажатии кнопки воспроизведения.
9. Поддержка изменения размера плеера
Чтобы размер рекламы динамически изменялся и соответствовал размеру видеоплеера или соответствовал изменениям ориентации экрана, вызовите adsManager.resize()
в ответ на события изменения размера окна.
Вот и все! Теперь вы запрашиваете и показываете рекламу с помощью IMA SDK. Чтобы узнать о более продвинутых функциях SDK, см. другие руководства или примеры на GitHub .