SDK IMA упрощают интеграцию мультимедийной рекламы в ваши веб-сайты и приложения. SDK IMA могут запрашивать рекламу с любого рекламного сервера , совместимого с VAST , и управлять воспроизведением рекламы в ваших приложениях. С SDK IMA DAI приложения отправляют запрос на потоковое видео, включающее рекламу и контент — либо видео по запросу, либо прямой эфир. Затем SDK возвращает объединенный видеопоток, так что вам не нужно управлять переключением между рекламой и контентом внутри вашего приложения.
Выберите интересующее вас решение DAI.
Полный спектр услуг DAI
В этом руководстве показано, как интегрировать SDK IMA DAI в простое приложение видеоплеера. Если вы хотите посмотреть или пройтись по готовому примеру интеграции, скачайте BasicExample с GitHub.
Обзор IMA DAI
Реализация IMA DAI включает в себя четыре основных компонента SDK, как показано в этом руководстве:
-
StreamDisplayContainer: объект-контейнер, который располагается поверх элемента воспроизведения видео и содержит элементы пользовательского интерфейса рекламы. -
AdsLoader: Объект, который запрашивает потоки и обрабатывает события, запускаемые объектами запроса и ответа потока. Следует создавать только один экземпляр AdsLoader, который можно использовать повторно на протяжении всего жизненного цикла приложения. -
StreamRequest: Объект, определяющий запрос на потоковую передачу. Запросы на потоковую передачу могут быть как для видео по запросу, так и для прямых трансляций. Запросы на прямую трансляцию указывают ключ ресурса, а запросы на видео по запросу — идентификатор CMS и идентификатор видео. Оба типа запросов могут дополнительно включать ключ API, необходимый для доступа к указанным потокам, и сетевой код Google Ad Manager для обработки идентификаторов рекламы в SDK IMA, как указано в настройках Google Ad Manager. -
StreamManager: Объект, обрабатывающий потоки динамической вставки рекламы и взаимодействие с бэкэндом DAI. Менеджер потоков также обрабатывает запросы отслеживания и пересылает события потока и рекламы издателю.
Предварительные требования
- Android Studio
- Пример приложения видеоплеера для интеграции с SDK.
Загрузите и запустите демонстрационное приложение видеоплеера.
В демонстрационном приложении представлен работающий видеоплеер, воспроизводящий видео в формате HLS. Используйте его в качестве отправной точки для интеграции возможностей DAI из SDK IMA DAI.
Скачайте и распакуйте демонстрационный пример приложения видеоплеера .
Запустите Android Studio и выберите «Открыть существующий проект Android Studio» , или, если Android Studio уже запущена, выберите «Файл» > «Новый» > «Импорт проекта» . Затем выберите
SampleVideoPlayer/build.gradle.Для синхронизации Gradle выберите Инструменты > Android > Синхронизировать проект с файлами Gradle .
Убедитесь, что приложение плеера скомпилировано и запущено на физическом устройстве Android или виртуальном устройстве Android, используя команду «Запуск» > «Запустить приложение» . Загрузка видеопотока перед воспроизведением — это нормальное явление.
Изучите пример видеоплеера.
В примере видеоплеера пока отсутствует код интеграции с IMA DAI SDK. Пример приложения состоит из двух основных частей:
samplevideoplayer/SampleVideoPlayer.java: HLS-плеер на основе ExoPlayer , служащий основой для интеграции IMA DAI.videoplayerapp/MyActivity.java: Эта активность создает видеоплеер и передает емуContextиmedia3.ui.PlayerView.
Добавьте SDK IMA DAI в приложение проигрывателя.
Также необходимо добавить ссылку на SDK IMA DAI. В Android Studio добавьте следующее в файл build.gradle на уровне приложения, расположенный по адресу app/build.gradle . SDK IMA требует включения десахаризации библиотек, что необходимо сделать, установив параметр coreLibraryDesugaringEnabled true и добавив зависимость 'com.android.tools:desugar_jdk_libs' в файл build.gradle . Подробности см. в разделе «API Java 11+, доступные через десахаризацию с помощью спецификации nio» .
Интегрируйте SDK IMA DAI.
Создайте новый класс с именем
SampleAdsWrapperв пакетеvideoplayerapp(вapp/java/com.google.ads.interactivemedia.v3.samples/videoplayerapp/), чтобы обернуть существующий классSampleVideoPlayerи добавить логику, реализующую интерфейс IMA DAI. Для этого необходимо сначала создать классAdsLoader, который будет использоваться для запроса потока DAI.Этот фрагмент кода содержит примеры параметров для потоков HLS и DASH, прямых трансляций и видео по запросу. Чтобы указать, какой поток воспроизводится, обновите переменную
CONTENT_TYPE.Создайте вспомогательный метод
createSampleVideoPlayerCallback()для обработки создания экземпляра интерфейсаSampleVideoPlayerCallback, который наследуетVideoStreamPlayer.VideoStreamPlayerCallback.Для работы с DAI плеер должен передавать события ID3 в SDK IMA DAI. Это делает метод
callback.onUserTextReceived(), как показано в следующем примере кода.Добавьте метод
buildStreamRequest()для создания объектаSteamRequest. Этот метод переключается между различными потоками в зависимости от того, как вы задали переменнуюCONTENT_TYPE. По умолчанию в этом руководстве используется поток VOD HLS от IMA.Для воспроизведения потока вам также потребуется класс
VideoStreamPlayer, поэтому добавьте методcreateVideoStreamPlayer(), который создаст анонимный класс, реализующий интерфейсVideoStreamPlayer.Реализуйте необходимые обработчики событий и добавьте поддержку обработки ошибок.
Обратите внимание на реализацию
AdErrorListener, поскольку она вызывает резервный URL-адрес, если воспроизведение рекламы не удается. Поскольку контент и реклама находятся в одном потоке, вы должны быть готовы вызвать резервный поток, если в потоке DAI возникнет ошибка.Добавьте код для логирования.
Измените
MyActivityвvideoplayerapp, чтобы он создавал экземплярSampleAdsWrapperи вызывал его. Также, используя вспомогательный метод, вызовите методImaSdkFactory.initialize()для создания экземпляра классаImaSdkSettings.Добавьте вспомогательный метод
getImaSdkSettings()для создания экземпляраImaSdkSettings.Измените файл разметки
activity_my.xml, добавив элементы пользовательского интерфейса для ведения журнала.
Поздравляем! Теперь вы запрашиваете и отображаете видеорекламу в своем Android-приложении. Для более точной настройки см. разделы «Закладки» , «Snapback» и документацию по API .
Поиск неисправностей
Если у вас возникли проблемы с воспроизведением видеорекламы, попробуйте загрузить готовый BasicExample . Если в BasicExample все работает корректно, то, скорее всего, проблема в коде интеграции IMA вашего приложения.
Если проблемы сохраняются, посетите форум IMA SDK .