Базовая интеграция (ExoPlayer AdsLoader API)

Внимание.

Это архивная версия документации. Актуальная документация по всем платформам находится здесь.

YandexAdsLoader — упрощенный API для интеграции InStream рекламы через ExoPlayer. YandexAdsLoader поддерживает воспроизведение рекламных вставок с типом Pre-Roll, Mid-Roll, Post-Roll.

Данный тип интеграции подходит для приложений, которым не нужны расширенные возможности InStream API.

  1. Подключение с использованием Gradle
  2. Показ рекламных объявлений

Подключение с использованием Gradle

В файл build.gradle добавьте следующие зависимости на уровне приложения:

dependencies {
    ...
    implementation 'com.yandex.android:mobileads:5.10.0'
    implementation 'com.google.android.exoplayer:exoplayer-core:2.18.1'
}

Показ рекламных объявлений

  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>                       
  2. Создайте конфигурацию запроса instreamAdRequestConfiguration с помощью класса InstreamAdRequestConfiguration.Builder. В качестве параметров запроса передайте идентификатор страницы (Page ID) из Партнерского интерфейса.

  3. Создайте экземпляр класса YandexAdsLoader для показа и загрузки InStream рекламы.

  4. Создайте экземпляр класса 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)
  5. Создайте экземпляр ExoPlayer, установите в него созданные mediaSourceFactory.

  6. Установите созданный экземпляр ExoPlayer в PlayerView и YandexAdsLoader.

    val player = SimpleExoPlayer.Builder(this)
        .setMediaSourceFactory(mediaSourceFactory).build()
    playerView.player = player
    yandexAdsLoader.setPlayer(player)
  7. Создайте экземпляр 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()
  8. Запустите проигрывание видео с созданным экземпляром MediaItem.

    player.apply {
        setMediaItem(mediaItem)
        prepare()
        playWhenReady = true
    }