Пакеты IMA SDK упрощают интеграцию мультимедийной рекламы в ваши веб-сайты и приложения. Пакеты IMA SDK могут запрашивать рекламу с любого рекламного сервера , совместимого с VAST, и управлять её воспроизведением в ваших приложениях. С помощью пакетов IMA DAI SDK приложения запрашивают потоковое видео для рекламы и контента — как VOD, так и прямой трансляции. Затем SDK возвращает объединённый видеопоток, поэтому вам не придётся переключаться между рекламой и контентом в приложении.
Выберите интересующее вас решение DAI
Полный комплекс услуг DAI
В этом руководстве показано, как интегрировать IMA DAI SDK в простое приложение видеоплеера. Если вы хотите просмотреть готовый пример интеграции или следовать ему, скачайте BasicExample с GitHub.
Обзор IMA DAI
Реализация IMA DAI включает четыре основных компонента SDK, как показано в этом руководстве:
-
StreamDisplayContainer
: объект-контейнер, который располагается поверх элемента воспроизведения видео и содержит элементы пользовательского интерфейса рекламы. -
AdsLoader
— объект, который запрашивает потоки и обрабатывает события, вызванные объектами ответа на запрос потока. Необходимо создать только один экземпляр загрузчика рекламы, который можно использовать повторно на протяжении всего жизненного цикла приложения. -
StreamRequest
: объект, определяющий запрос потока. Запросы потока могут быть предназначены как для видео по запросу, так и для прямых трансляций. В запросах прямых трансляций указывается ключ ресурса, а в запросах VOD — идентификатор CMS и идентификатор видео. Оба типа запросов могут дополнительно включать ключ API, необходимый для доступа к указанным потокам, и сетевой код Google Ad Manager для IMA SDK для обработки идентификаторов объявлений, указанных в настройках Google Ad Manager. -
StreamManager
: объект, который обрабатывает потоки динамической вставки рекламы и взаимодействует с бэкендом DAI. Менеджер потоков также обрабатывает запросы отслеживания и пересылает события потоков и рекламы издателю.
Предпосылки
- Android Studio
- Пример приложения видеоплеера для интеграции SDK
Загрузите и запустите пример приложения видеоплеера.
Пример приложения предоставляет работающий видеоплеер, воспроизводящий видео HLS. Используйте его в качестве отправной точки для интеграции возможностей DAI в IMA DAI SDK.
Загрузите пример приложения видеоплеера и распакуйте его.
Запустите 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
.
Добавьте IMA DAI SDK в приложение плеера
Также необходимо включить ссылку на IMA DAI SDK. В Android Studio добавьте следующее в файл build.gradle уровня приложения, расположенный по адресу app/build.gradle . Для работы IMA SDK требуется включить десагаринг библиотек. Для этого установите значение coreLibraryDesugaringEnabled true
и добавьте coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'
в качестве зависимости в файле build.gradle . Подробнее см. в разделе API Java 11+, доступные через десагаринг с помощью спецификации nio .
Интеграция IMA DAI SDK
Создайте новый класс
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 в IMA DAI SDK. Это реализовано в методе
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. Чтобы узнать больше о настройке, ознакомьтесь с разделами Bookmarks , Snapback и документацией по API .
Поиск неисправностей
Если у вас возникли проблемы с воспроизведением видеорекламы, попробуйте загрузить готовый BasicExample . Если в BasicExample всё работает корректно, вероятно, проблема связана с кодом интеграции IMA вашего приложения.
Если у вас все еще возникают проблемы, посетите форум IMA SDK .