Базовая интеграция (ExoPlayer AdsLoader API)
Это архивная версия документации. Актуальная документация по всем платформам находится здесь.
YandexAdsLoader — упрощенный API для интеграции InStream рекламы через ExoPlayer. YandexAdsLoader поддерживает воспроизведение рекламных вставок с типом Pre-Roll, Mid-Roll, Post-Roll.
Данный тип интеграции подходит для приложений, которым не нужны расширенные возможности InStream API.
Подключение с использованием Gradle
В файл build.gradle добавьте следующие зависимости на уровне приложения:
dependencies {
...
implementation 'com.yandex.android:mobileads:5.10.0'
implementation 'com.google.android.exoplayer:exoplayer-core:2.18.1'
}
Показ рекламных объявлений
Добавьте в layout приложения com.google.android.exoplayer2.ui.PlayerView
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.google.android.exoplayer2.ui.PlayerView android:id="@+id/player_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" /> </FrameLayout>
Создайте конфигурацию запроса
instreamAdRequestConfiguration
с помощью класса InstreamAdRequestConfiguration.Builder. В качестве параметров запроса передайте идентификатор страницы (Page ID
) из Партнерского интерфейса.Создайте экземпляр класса YandexAdsLoader для показа и загрузки InStream рекламы.
Создайте экземпляр класса
DefaultMediaSourceFactory
, установите в него созданный экземпляр YandexAdsLoader иPlayerView
.val userAgent = Util.getUserAgent(this, getString(R.string.app_name)) val dataSourceFactory = DefaultDataSourceFactory(this, userAgent) val mediaSourceFactory = DefaultMediaSourceFactory(dataSourceFactory) .setAdsLoaderProvider { yandexAdsLoader } .setAdViewProvider(playerView)
Создайте экземпляр
ExoPlayer
, установите в него созданныеmediaSourceFactory
.Установите созданный экземпляр
ExoPlayer
вPlayerView
и YandexAdsLoader.val player = SimpleExoPlayer.Builder(this) .setMediaSourceFactory(mediaSourceFactory).build() playerView.player = player yandexAdsLoader.setPlayer(player)
Создайте экземпляр
MediaItem
, установите в него ссылку на видео для воспроизведения иYandexAdsLoader.AD_TAG_URI
.val contentVideoUrl = getString(R.string.content_url_for_instream_ad) val mediaItem = MediaItem.Builder() .setUri(contentVideoUrl) .setAdTagUri(YandexAdsLoader.AD_TAG_URI).build()
Запустите проигрывание видео с созданным экземпляром
MediaItem
.player.apply { setMediaItem(mediaItem) prepare() playWhenReady = true }