SDK IMA упрощают интеграцию мультимедийной рекламы в ваши веб-сайты и приложения. SDK IMA могут запрашивать рекламу с любого рекламного сервера, совместимого с VAST , и управлять воспроизведением рекламы в ваших приложениях. С помощью клиентских SDK IMA вы сохраняете контроль над воспроизведением видеоконтента, в то время как SDK обрабатывает воспроизведение рекламы. Реклама воспроизводится в отдельном видеоплеере, расположенном поверх видеоплеера приложения.
В этом руководстве показано, как интегрировать IMA SDK в простое приложение видеоплеера. Если вы хотите посмотреть или проследить за завершенной интеграцией на примере, скачайте простой пример с GitHub. Если вас интересует HTML5-плеер с предварительно интегрированным SDK, ознакомьтесь с плагином IMA SDK для Video.js .
Обзор клиентской части IMA
Реализация клиентской части IMA включает в себя четыре основных компонента SDK, которые описаны в этом руководстве:
-
AdDisplayContainer: Объект-контейнер, определяющий, где IMA отображает элементы пользовательского интерфейса рекламы и измеряет видимость, включая показатели активного просмотра и открытия . -
AdsLoader: Объект, который запрашивает рекламу и обрабатывает события из ответов на запросы рекламы. Следует создавать только один экземпляр AdsLoader, который можно использовать повторно на протяжении всего жизненного цикла приложения. -
AdsRequest: Объект, определяющий запрос на показ рекламы. Запросы на показ рекламы указывают URL-адрес тега VAST, а также дополнительные параметры, такие как размеры объявления. -
AdsManager: Объект, содержащий ответ на запрос рекламы, управляющий воспроизведением рекламы и отслеживающий события, связанные с рекламой, которые генерируются SDK.
Предварительные требования
Прежде чем начать, вам понадобится следующее:
- Три пустых файла:
- index.html
- style.css
- ads.js
- На вашем компьютере должен быть установлен Python, или же для тестирования может потребоваться веб-сервер.
1. Запустите сервер разработки.
Поскольку SDK IMA загружает зависимости, используя тот же протокол, что и страница, с которой он загружается, для тестирования вашего приложения вам потребуется веб-сервер. Самый простой способ запустить локальный сервер разработки — использовать встроенный в 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. Импортируйте SDK IMA.
Далее добавьте фреймворк IMA, используя тег <script> в файле index.html , перед тегом ads.js .
4. Создайте рекламный контейнер.
В большинстве браузеров SDK IMA использует специальный элемент-контейнер для отображения как рекламы, так и связанных с ней элементов пользовательского интерфейса. Размер этого контейнера должен перекрывать видеоэлемент с верхнего левого угла. Высота и ширина рекламы, размещенной в этом контейнере, задаются объектом adsManager , поэтому вам не нужно задавать эти значения вручную.
Для реализации этого элемента контейнера рекламы сначала создайте новый div внутри элемента video-container . Затем обновите CSS, чтобы расположить элемент в верхнем левом углу video-element . Наконец, добавьте функцию createAdDisplayContainer() для создания объекта AdDisplayContainer , используя новый div -контейнер рекламы.
5. Инициализируйте AdsLoader и отправьте запрос на показ рекламы.
Для запроса рекламы создайте экземпляр AdsLoader . Конструктор AdsLoader принимает в качестве входных данных объект AdDisplayContainer и может использоваться для обработки объектов AdsRequest , связанных с указанным URL-адресом рекламного тега. В этом примере используется рекламный тег, содержащий 10-секундную преролл-рекламу. Вы можете протестировать этот или любой другой URL-адрес рекламного тега с помощью инспектора IMA Video Suite .
Рекомендуется использовать только один экземпляр AdsLoader на протяжении всего жизненного цикла страницы. Для отправки дополнительных запросов рекламы создайте новый объект AdsRequest , но используйте тот же самый AdsLoader . Дополнительную информацию см. в разделе часто задаваемых вопросов (FAQ) по SDK IMA .
Отслеживайте и реагируйте на события загрузки рекламы и ошибки, используя 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 накладывается поверх видеоэлемента, пользователи не могут напрямую взаимодействовать с базовым плеером. Это может сбить с толку пользователей мобильных устройств, которые ожидают возможности приостановить воспроизведение видео, просто коснувшись видеоплеера. Для решения этой проблемы SDK IMA передает все клики, не обработанные IMA, из наложения рекламы в элемент AdContainer , где они могут быть обработаны. Это не относится к линейной рекламе в браузерах, отличных от мобильных, поскольку клик по рекламе открывает ссылку перехода.
Для реализации функции паузы по клику добавьте функцию обработчика кликов adContainerClick() , вызываемую в обработчике событий при загрузке окна.
8. Запустите AdsManager.
Для запуска воспроизведения рекламы необходимо инициализировать и запустить AdsManager . Для полной поддержки мобильных браузеров, где автоматическое воспроизведение рекламы невозможно, запуск воспроизведения рекламы должен осуществляться на основе взаимодействия пользователя со страницей, например, нажатия кнопки воспроизведения.
9. Поддержка изменения размера плеера.
Чтобы рекламные объявления динамически изменяли свой размер и соответствовали размеру видеоплеера или изменениям ориентации экрана, вызывайте метод adsManager.resize() в ответ на события изменения размера окна.
Вот и всё! Теперь вы запрашиваете и отображаете рекламу с помощью IMA SDK. Чтобы узнать о более продвинутых функциях SDK, ознакомьтесь с другими руководствами или примерами на GitHub .