В этом руководстве рассказывается, как интегрировать IMA DAI SDK в простое приложение с видеопроигрывателем. Если вы хотите посмотреть или использовать готовый пример интеграции, скачайте BasicExample с GitHub.
Обзор IMA DAI
Внедрение IMA DAI включает четыре основных компонента SDK, как показано в этом руководстве:
StreamDisplayContainer– объект-контейнер, который находится поверх элемента воспроизведения видео и содержит элементы пользовательского интерфейса объявления.AdsLoader. Объект, который запрашивает потоки и обрабатывает события, инициированные объектами ответов на запросы потоков. Вам нужно создать только один экземпляр загрузчика объявлений, который можно использовать повторно в течение всего жизненного цикла приложения.StreamRequest: объект, определяющий запрос потока. Запросы потоков могут относиться к видео по запросу или прямым трансляциям. В запросах трансляций указывается ключ объекта, а в запросах видео по запросу – идентификатор CMS и идентификатор видео. В запросы обоих типов можно добавить ключ API, необходимый для доступа к определенным потокам, и код сети Google Менеджера рекламы, который позволит IMA SDK обрабатывать рекламные идентификаторы в соответствии с настройками Менеджера рекламы.StreamManager– объект, который управляет потоками динамической вставки объявлений и взаимодействием с серверной частью динамической вставки объявлений. Менеджер потоков также обрабатывает запросы на отслеживание и пересылает издателю события потока и объявлений.
Требования
- Android Studio
- Пример приложения с видеопроигрывателем для интеграции SDK
Как скачать и запустить пример приложения с видеопроигрывателем
В примере приложения есть работающий видеопроигрыватель, который воспроизводит видео HLS. Используйте его в качестве отправной точки для интеграции возможностей динамической вставки объявлений IMA DAI SDK.
Скачайте пример приложения с видеопроигрывателем и распакуйте его.
Запустите Android Studio и выберите Open an existing Android Studio project (Открыть существующий проект Android Studio). Если программа уже запущена, выберите File > New > Import Project (Файл > Создать > Импортировать проект). Затем выберите
SampleVideoPlayer/build.gradle.Запустите синхронизацию Gradle, выбрав Tools (Инструменты) > Android > Sync Project with Gradle Files (Синхронизировать проект с файлами Gradle).
Убедитесь, что приложение компилируется и запускается на физическом или виртуальном устройстве Android. Для этого выберите Run (Запустить) > Run 'app' (Запустить приложение). Для загрузки видеопотока перед воспроизведением может потребоваться некоторое время.
Изучите образец видеопроигрывателя
В образце видеопроигрывателя пока нет кода интеграции 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 и добавьте 'com.android.tools:desugar_jdk_libs' в качестве зависимости в файл build.gradle. Подробнее об API Java 11+, доступных через десахаризацию со спецификацией nio…
Интегрируйте IMA DAI SDK
Создайте новый класс
SampleAdsWrapperв пакетеvideoplayerapp(вapp/java/com.google.ads.interactivemedia.v3.samples/videoplayerapp/), чтобы упаковать существующийSampleVideoPlayerи добавить логику, реализующую IMA DAI. Для этого сначала нужно создать объектAdsLoader, который используется для запроса трансляции с динамической вставкой объявлений.Этот фрагмент содержит примеры параметров для потоков HLS и DASH, а также для прямых трансляций и видео по запросу. Чтобы указать, какой поток воспроизводится, обновите переменную
CONTENT_TYPE.Создайте вспомогательный метод
createSampleVideoPlayerCallback(), чтобы создать экземпляр интерфейсаSampleVideoPlayerCallback, который расширяетVideoStreamPlayer.VideoStreamPlayerCallback.Чтобы работать с динамической вставкой объявлений, проигрыватель должен передавать события ID3 в IMA DAI SDK. В примере кода ниже это делается с помощью метода
callback.onUserTextReceived().Добавьте метод
buildStreamRequest(), чтобы создатьSteamRequest. Этот метод переключается между разными потоками в зависимости от того, как вы задали переменнуюCONTENT_TYPE. В этом руководстве по умолчанию используется пример потока HLS для видео по запросу IMA.Для воспроизведения трансляции также необходим объект
VideoStreamPlayer, поэтому добавьте методcreateVideoStreamPlayer(), который создает анонимный класс, реализующийVideoStreamPlayer.Реализуйте необходимые прослушиватели и добавьте поддержку обработки ошибок.
Обратите внимание на реализацию
AdErrorListener, поскольку она вызывает резервный URL, если объявления не воспроизводятся. Поскольку контент и объявления находятся в одном потоке, вы должны быть готовы вызвать резервный поток, если в потоке с динамической вставкой объявлений возникнет ошибка.Добавьте код для ведения журнала.
Измените
MyActivityвvideoplayerapp, чтобы создать экземпляр и вызватьSampleAdsWrapper. Также вызовите здесьImaSdkFactory.initialize(), используя вспомогательный метод для создания экземпляраImaSdkSettings.Добавьте вспомогательный метод
getImaSdkSettings(), чтобы создать экземплярImaSdkSettings.Измените файл макета Activity
activity_my.xml, чтобы добавить элементы пользовательского интерфейса для входа.
Поздравляем! Теперь вы можете запрашивать и показывать видеорекламу в приложении для Android. Чтобы настроить реализацию, ознакомьтесь с разделами Закладки и Возврат, а также с документацией по API.
Устранение неполадок
Если у вас возникли проблемы с воспроизведением видеообъявления, попробуйте скачать готовый пример BasicExample. Если в BasicExample все работает правильно, то, скорее всего, проблема в коде интеграции IMA в вашем приложении.
Если у вас по-прежнему возникают проблемы, посетите форум IMA SDK.