SDK IMA упрощают интеграцию мультимедийной рекламы в ваши веб-сайты и приложения. SDK IMA могут запрашивать рекламу с любого рекламного сервера , совместимого с VAST , и управлять воспроизведением рекламы в ваших приложениях. С SDK IMA DAI приложения отправляют запрос на потоковое видео, включающее рекламу и контент — либо видео по запросу, либо прямой эфир. Затем SDK возвращает объединенный видеопоток, так что вам не нужно управлять переключением между рекламой и контентом внутри вашего приложения.
Выберите интересующее вас решение DAI.
Подача капсул DAI
SDK IMA упрощают интеграцию мультимедийной рекламы в ваши веб-сайты и приложения. SDK IMA могут запрашивать рекламу с любого рекламного сервера , совместимого с VAST , и управлять воспроизведением рекламы в ваших приложениях. С SDK IMA DAI приложения отправляют запрос на потоковое видео, включающее рекламу и контент — либо видео по запросу, либо прямой эфир. Затем SDK возвращает объединенный видеопоток, так что вам не нужно управлять переключением между рекламой и контентом внутри вашего приложения.
В этом руководстве показано, как воспроизводить поток DAI Pod Serving, используя SDK IMA DAI с видеоплеером для воспроизведения прямых трансляций и видео по запросу. Чтобы посмотреть или проследить за завершенной интеграцией, скачайте пример Pod Serving .
Обзор системы подачи напитков в капсулах IMA DAI
StreamRequest: Объект, определяющий запрос потока к рекламным серверам Google. Для включения Pod Serving его необходимо создать с помощью методовImaSdkFactory.createPodStreamRequest()илиImaSdkFactory.createPodVodStreamRequest(). Эти методы требуют указания сетевого кода , аcreatePodStreamRequestтакже требует указания пользовательского ключа ресурса и необязательного ключа API . Оба метода включают другие необязательные параметры.StreamManager: Объект, который обрабатывает обмен данными между видеопотоком и SDK IMA DAI, например, отправляет запросы на отслеживание и пересылает события потока издателю.
Предварительные требования
Приложение для Android, уже настроенное с использованием SDK IMA DAI, воспроизводит видеопотоки с рекламой DAI. Если у вас еще нет подобного приложения, мы рекомендуем использовать Android DAI BasicExample в качестве отправной точки. В BasicExample содержится кодовая база, на которую ссылается это руководство.
Для корректной работы IMA DAI важно, чтобы ваше приложение отправляло события ID3 с помощью
VideoStreamPlayerCallback.onUserTextReceived(). См. этот полный пример кода DAI .
Настройте переменные для запуска пода.
Все необходимые изменения для запуска Pod-сервера вносятся в файл SampleAdsWrapper.java . Первым шагом является обновление константных переменных.
Вот константы запроса потока рекламных блоков, которые необходимо добавить:
STREAM_URL: Используется только для прямых трансляций — URL видеопотока, предоставляемый вашим манипулятором манифеста или сторонним партнером, использующим Pod Serving. Перед отправкой запроса необходимо указать идентификатор потока, предоставленный SDK IMA DAI. В этом случае URL потока содержит заполнитель"[[STREAMID]]", который заменяется идентификатором потока перед отправкой запроса.NETWORK_CODE: Сетевой код для вашей учетной записи Ad Manager 360.CUSTOM_ASSET_KEY: Используется только для прямых трансляций — пользовательский ключ ресурса, идентифицирующий событие Pod Serving в Ad Manager 360. Он может быть создан вашим инструментом манифеста или сторонним партнером по Pod Serving.API_KEY: Используется только для прямых трансляций — необязательный ключ API, который может потребоваться для получения идентификатора потока из SDK IMA DAI.
Пример Android DAI BasicExample предназначен для воспроизведения различных типов потоков, но для Pod Serving он настроен на воспроизведение только одного потока. Измените раздел переменных примера в соответствии со следующим:
Создайте запрос на потоковую трансляцию в прямом эфире или по запросу, чтобы включить функцию Pod Serving.
Прямая трансляция, подкасты
Удалите метод buildStreamRequest() , который использовался для переключения между созданием различных типов потоков. Затем измените requestAndPlayAds() таким образом, чтобы он вызывал метод ImaSdkFactory.createPodStreamRequest() для создания запроса на показ рекламы в режиме реального времени (Live Pod Serving).
VOD-стриминг Под-сервис
Удалите метод buildStreamRequest() , который использовался для переключения между созданием различных типов потоков. Затем измените requestAndPlayAds() таким образом, чтобы он вызывал метод ImaSdkFactory.createPodVodStreamRequest() для создания запроса на показ рекламы в формате VOD Pod Serving.
После создания экземпляра запроса потока, запросите поток, используя AdsLoader.requestStream() :
Отредактируйте и задайте URL-адрес потока.
Прямая трансляция, подкасты
Вызовите метод StreamManager.getStreamId() , чтобы получить идентификатор потока. Его необходимо вставить в поле STEAM_URL , заменив "[[STREAMID]]" . После внесения этого изменения установите новый URL потока с помощью метода videoPlayer.setStreamUrl() и вызовите метод videoPlayer.play() для начала воспроизведения потока.
VOD-стриминг Под-сервис
- Для получения идентификатора потока вызовите метод
StreamManager.getStreamId(). - Запросите URL-адрес потока у вашего партнера по видеотехнологиям (VTP).
- После получения URL-адреса от вашего VTP-сервера вызовите метод
StreamManager.loadThirdPartyStream()с этим URL-адресом, чтобы загрузить поток вместе с любыми субтитрами, которые вернет ваш VTP-сервер.
Для запросов VOD Pod Serving IMA вызывает функцию обратного вызова VideoStreamPlayer.loadUrl() после загрузки потока. Чтобы начать воспроизведение потока, добавьте вызовы videoPlayer.setStreamUrl() и videoPlayer.play() в функцию обратного вызова VideoStreamPlayer.loadUrl() :
Очистка активов IMA DAI
После успешного завершения запроса и показа рекламы в потоке Pod Serving с использованием IMA DAI SDK мы рекомендуем очистить все ресурсы после завершения сессии Pod Serving. Вызовите StreamManager.destroy() , чтобы остановить воспроизведение потока, прекратить отслеживание рекламы и освободить все загруженные ресурсы потока.
Другие примеры использования Android SDK можно найти в примерах на GitHub .