Пакеты IMA SDK упрощают интеграцию мультимедийной рекламы в ваши веб-сайты и приложения. Пакеты IMA SDK могут запрашивать рекламу с любого рекламного сервера , совместимого с VAST, и управлять её воспроизведением в ваших приложениях. Клиентские пакеты IMA SDK позволяют вам контролировать воспроизведение видеоконтента, в то время как 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.
Предпосылки
Прежде чем начать, вам понадобится следующее:
- Три пустых файла:
- index.html
- стиль.css
- ads.js
- Python, установленный на вашем компьютере, или веб-сервер для использования при тестировании
1. Запустите сервер разработки
Поскольку IMA SDK загружает зависимости по тому же протоколу, что и страница, с которой он загружается, для тестирования приложения необходимо использовать веб-сервер. Самый простой способ запустить локальный сервер разработки — использовать встроенный сервер Python.
- Используя командную строку, из каталога, содержащего файл index.html, выполните:
python -m http.server 8000
- В веб-браузере перейдите по адресу
http://localhost:8000/
Вы также можете использовать любой другой веб-сервер, например Apache HTTP Server .
2. Создайте простой видеоплеер
Сначала измените файл index.html , чтобы создать простой видеоэлемент HTML5, заключенный в элемент-обёртку, и кнопку для запуска воспроизведения. В следующем примере импортируется IMA SDK и настраивается элемент-контейнер AdDisplayContainer
. Подробнее см. в разделах «Импорт IMA SDK» и «Создание контейнера рекламы» соответственно.
Добавьте необходимые теги для загрузки файлов 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
. Подробнее см. в разделе часто задаваемых вопросов по 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
приостанавливает воспроизведение видеоконтента, когда реклама готова к воспроизведению, но это поведение не учитывает нелинейную рекламу, где воспроизведение контента продолжается во время отображения рекламы.
Для поддержки нелинейной рекламы дождитесь события LOADED
от AdsManager
. Проверьте, является ли реклама линейной, и если нет, возобновите воспроизведение на видеоэлементе.
Определение функции onAdLoaded()
см. в следующем примере.
7. Активируйте функцию «клик-пауза» на мобильных устройствах
Поскольку AdContainer
накладывается на видеоэлемент, пользователи не могут напрямую взаимодействовать с базовым проигрывателем. Это может сбивать с толку пользователей мобильных устройств, которые ожидают, что нажатие на видеоплеер приостановит воспроизведение. Для решения этой проблемы IMA SDK передаёт все клики, не обработанные IMA, из рекламного оверлея в элемент AdContainer
, где они могут быть обработаны. Это не относится к линейным объявлениям в браузерах, не предназначенных для мобильных устройств, поскольку при нажатии на объявление открывается ссылка для перехода по клику.
Чтобы реализовать функцию «клик для паузы», добавьте функцию обработчика кликов adContainerClick()
вызываемую в прослушивателе загрузки окна.
8. Запустите AdsManager.
Чтобы начать воспроизведение рекламы, запустите AdsManager
. Для полной поддержки мобильных браузеров, где невозможно автоматическое воспроизведение рекламы, запустите воспроизведение рекламы при взаимодействии пользователя со страницей, например, при нажатии кнопки воспроизведения.
9. Поддержка изменения размера плеера
Чтобы размер рекламы динамически изменялся и соответствовал размеру видеоплеера или изменениям ориентации экрана, вызывайте adsManager.resize()
в ответ на события изменения размера окна.
Вот и всё! Теперь вы запрашиваете и показываете рекламу с помощью IMA SDK. Чтобы узнать о более продвинутых функциях SDK, ознакомьтесь с другими руководствами или примерами на GitHub .