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
- style.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 тега объявления с помощью инструмента тестирования тегов VAST из IMA SDK.
Рекомендуем использовать только один экземпляр AdsLoader на протяжении всего жизненного цикла страницы. Чтобы сделать дополнительные запросы объявлений, создайте новый объект AdsRequest, но используйте тот же объект AdsLoader. Дополнительную информацию можно найти в разделе часто задаваемых вопросов об IMA SDK.
Слушайте и обрабатывайте события загрузки объявлений и ошибки с помощью AdsLoader.addEventListener.
Прослушивайте следующие события:
ADS_MANAGER_LOADEDAD_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.