---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ads.yandex.com/helpcenter/en/dev/android/release/6-0-0-migration.md
  - https://ads.yandex.com/helpcenter/ru/dev/android/release/6-0-0-migration.md
  - https://ads.yandex.com/helpcenter/zh/dev/android/release/6-0-0-migration.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ads.yandex.com/helpcenter/ru/llms.txt


<!--
Используется в Boost: boost/ru/ad-monetization/dev/android
-->

# Руководство по миграции на версию 6

{% note warning %}

Обязательно обновите версии используемых адаптеров на актуальные ([Медиация Яндекса](https://ads.yandex.com/helpcenter/ru/dev/android/list-network.md) и [адаптеры для сторонних медиационных сетей](https://ads.yandex.com/helpcenter/ru/dev/android/third-party-mediation.md)). Иначе возможны ошибки неправильной интеграции адаптеров и реклама не будет показана.

{% endnote %}

## Ручная инициализация

Изменился процесс ручной инициализации SDK. Теперь при инициализации SDK необходимо передавать коллбэк в метод `MobileAds.initialize()`.

{% list tabs %}

   - Kotlin

     ```kotlin
     MobileAds.initialize(this) {
         // now you can use ads
     }
     ```

   - Java

     ```java
     MobileAds.initialize(this, () -> {
         // now you can use ads
     });
     ```
{% endlist %}

## Баннеры

Класс `AdSize` переименован в `BannerAdSize`. Удалены методы `fixedSize(int width, int height)`, `flexibleSize(int width, int maxHeight)`, `stickySize(int width)`.

Используйте методы в зависимости от типа рекламного объявления:

Для создания адаптивного sticky-баннера — метод `BannerAdSize.stickySize(Context context, int width)`.

> Адаптивный sticky-баннер — небольшое, автоматически обновляемое рекламное объявление, которое располагается внизу или вверху экрана приложения.
>
> Баннер не перекрывает основной контент приложения и часто используется в приложениях-играх.
>
> Высота sticky-баннера определяется автоматически, адаптируясь под размер экрана устройства и не превышает 15% высоты экрана.

{% note warning %}

  В адаптивном sticky-баннере с версии 6.0.0 появилось автообновление.

  Если у вас ранее было реализовано автообновление для sticky-баннера, его следует отключить.

{% endnote %}

Для создания адаптивного inline-баннера — метод `BannerAdSize.inlineSize(Context context, int width, int maxHeight)`.

> Адаптивный inline-баннер — гибкий формат баннерной рекламы, обеспечивающий максимальную эффективность за счет оптимизации размера рекламы для каждого устройства.
>
> Высота баннера подбирается автоматически и может достигать высоты экрана устройства.
>
> Как правило, такой формат используется в приложениях-лентах или там, где допустимо обеспечить основной фокус на рекламе.

Для обратной совместимости вместо `fixedSize(int width, int height)` был добавлен метод `fixedSize(Context context, int width, int height)`, однако его использование не рекомендуется. Используйте `inlineSize(Context context, int width, int maxHeight)` или `stickySize(Context context, int width)`. В SDK 6.0.0 высота баннера рассчитывается автоматически и известна до отправки запроса рекламы. Эту высоту можно использовать для верстки экрана.

## Реклама с вознаграждением

Был изменен подход к созданию и загрузке рекламы. Теперь есть объект-загрузчик `RewardedAdLoader`, который занимается загрузкой рекламных объявлений, и объект рекламы `RewardedAd`, получаемый с помощью методов обратного вызова загрузчика `RewardedAdLoadListener`.

Подробнее ознакомиться с новым апи можно в [справочнике SDK](https://doc-static.yandex.net/src/support/RSYA-RMP/mobile-ads/ru/javadoc/com/yandex/mobile/ads/rewarded/package-summary.html).

#|
||
Загрузка рекламы
| **SDK 5**

Один объект на загрузку и показ рекламного объявления:

{% list tabs %}

   - Kotlin

     ```kotlin
     val rewardedAd = RewardedAd(this@Activity).apply {
         setAdUnitId("your-ad-unit-id")
         setAdEventListener(this)
         loadAd(adRequest)
     }
     ```

   - Java

     ```java
     final RewardedAd rewardedAd = new RewardedAd(this);
     rewardedAd.setAdUnitId("your-ad-unit-id");
     rewardedAd.setAdEventListener(this);
     rewardedAd.loadAd(adRequest);
     ```
{% endlist %}

**SDK 6**

Загрузчик `RewardedAdLoader` для загрузки нескольких рекламных объявлений. Для загрузки не требуется передавать Activity context.

После загрузки рекламного объявления (вызов метода `onAdLoaded(rewardedAd: RewardedAd)`) сохраните ссылку на загруженную рекламу `RewardedAd` до окончания показа.

{% list tabs %}

   - Kotlin

     ```kotlin
     val loader = RewardedAdLoader(context).apply {
         setAdLoadListener(object : RewardedAdLoadListener {
             override fun onAdLoaded(rewardedAd: RewardedAd) {
                 // save rewardedAd to a local variable
                 // now rewardedAd is ready to show
             }

             override fun onAdFailedToLoad(adRequestError: AdRequestError) {}
         })
     }
     loader.loadAd(AdRequestConfiguration.Builder("your-ad-unit-id").build())
     ```

   - Java

     ```java
     final RewardedAdLoader loader = new RewardedAdLoader(this);
     loader.setAdLoadListener(new RewardedAdLoadListener() {
         @Override
         public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
             // save rewardedAd to a local variable
             // now rewardedAd is ready to show
         }

         @Override
         public void onAdFailedToLoad(@NonNull AdRequestError adRequestError) {}
     });
     loader.loadAd(new AdRequestConfiguration.Builder("your-ad-unit-id").build());
     ```
{% endlist %}

||
||
Показ рекламы
| **SDK 5**

Перед показом нужно проверить, загружена ли реклама.

{% list tabs %}

   - Kotlin

     ```kotlin
     if (rewardedAd.isLoaded()) {
         rewardedAd.show()
     }
     ```

   - Java

     ```java
     if (rewardedAd.isLoaded()) {
         rewardedAd.show();
     }
     ```
{% endlist %}

**SDK 6**

Проверка, загружена ли реклама, не требуется.

Реклама готова к показу после получения экземпляра `RewardedAd` в методе обратного вызова `onAdLoaded` загрузчика рекламы.

Для отображения необходимо передать Activity:

{% list tabs %}

   - Kotlin

     ```kotlin
     rewardedAd.show(activity)
     ```

   - Java

     ```java
     rewardedAd.show(activity);
     ```
{% endlist %}

||
||
Рекламный объект `RewardedAd`
| **SDK 5**

Класс, объединяющий в себе загрузку и показ одного рекламного объявления.

**SDK 6**

Инерфейс загруженного рекламного объявления. Добавился метод получения информации о рекламном объявлении `getInfo()`.

{% list tabs %}

   - Kotlin

     ```kotlin
     interface RewardedAd {
         fun setAdEventListener(rewardedAdEventListener: RewardedAdEventListener)

         fun show(activity: Activity)

         fun getInfo(): AdInfo
     }
     ```

   - Java

     ```java
     interface RewardedAd {
         void setAdEventListener(@Nullable RewardedAdEventListener rewardedAdEventListener);

         void show(@NonNull Activity activity);

         @NonNull
         AdInfo getInfo();
     }
     ```
{% endlist %}

||
||
Методы обратного вызова
| **SDK 5**

Один интерфейс методов обратного вызова, объединяющий в себе события загрузки и показа:

{% list tabs %}

   - Kotlin

     ```kotlin
     interface RewardedAdEventListener {

         fun onLoaded()

         fun onRewarded(reward: Reward)

         fun onAdFailedToLoad(adRequestError: AdRequestError)

         fun onAdShown()

         fun onAdDismissed()

         fun onLeftApplication()

         fun onReturnedToApplication()
     }
     ```

   - Java

     ```java
     interface RewardedAdEventListener {

         public void onLoaded();

         public void onRewarded(@NonNull Reward reward);

         public void onAdFailedToLoad(@NonNull AdRequestError adRequestError);

         public void onAdShown();

         public void onAdDismissed();

         public void onLeftApplication();

         public void onReturnedToApplication();
     }
     ```
{% endlist %}

**SDK 6**

Интерфейс `RewardedAdEventListener` разделен на два: методы обратного вызова загрузки `RewardedAdLoadListener` и показа `RewardedAdEventListener`.

Удалены методы `onLeftApplication()`, `onReturnedToApplication()`.

Добавлен метод `onAdFailedToShow(AdError)`.

{% list tabs %}

   - Kotlin

     ```kotlin
     interface RewardedAdLoadListener {
         fun onAdLoaded(rewardedAd: RewardedAd)

         fun onAdFailedToLoad(adRequestError: AdRequestError)
     }

     interface RewardedAdEventListener {
         fun onAdShown()

         fun onAdFailedToShow(adError: AdError)

         fun onAdDismissed()

         fun onAdClicked()

         fun onAdImpression(impressionData: ImpressionData)

         fun onRewarded(reward: Reward)
     }
     ```

   - Java

     ```java
     interface RewardedAdLoadListener {
         void onAdLoaded(@NonNull RewardedAd rewardedAd);

         void onAdFailedToLoad(@NonNull AdRequestError adRequestError);
     }

     interface RewardedAdEventListener {
         void onAdShown();

         void onAdFailedToShow(@NonNull AdError adError);

         void onAdDismissed();

         void onAdClicked();

         void onAdImpression(@Nullable ImpressionData impressionData);

         void onRewarded(@NonNull Reward reward);
     }
     ```
{% endlist %}

||
||
Очистка рекламного объекта `RewardedAd`
| **SDK 5**

Необходимо вызвать `onDestroy()` и перестать хранить ссылку на рекламный объект.

**SDK 6**

Метод `onDestroy()` удален.

Для очистки рекламного объекта необходимо передать `null` в функцию установки слушателя методов обратного вызова `rewardedAd.setAdEventListener`, а также перестать хранить ссылку на сам рекламный объект:

{% list tabs %}

   - Kotlin

     ```kotlin
     private fun destroyRewardedAd() {
         rewardedAd?.setAdEventListener(null)
         rewardedAd = null
     }
     ```

   - Java

     ```java
     private void destroyRewardedAd() {
         if (mRewardedAd != null) {
             mRewardedAd.setAdEventListener(null);
             mRewardedAd = null;
         }
     }
     ```
{% endlist %}

||
|#

## Межстраничная реклама

Был изменен подход к созданию и загрузке рекламы. Теперь есть объект-загрузчик `InterstitialAdLoader`, который занимается загрузкой рекламных объявлений, и объект рекламы `InterstitialAd`, получаемый с помощью методов обратного вызова загрузчика `InterstitialAdLoadListener`.

Подробнее ознакомиться с новым апи можно в [Справочнике SDK](https://doc-static.yandex.net/src/support/RSYA-RMP/mobile-ads/ru/javadoc/com/yandex/mobile/ads/interstitial/package-summary.html).

#|
||
Загрузка рекламы
| **SDK 5**

Один объект на загрузку и показ рекламного объявления:

{% list tabs %}

   - Kotlin

     ```kotlin
     val interstitialAd = InterstitialAd(this@Activity).apply {
     setAdUnitId("your-ad-unit-id")
     setAdEventListener(this)
     loadAd(adRequest)
     }
     ```

   - Java

     ```java
     final InterstitialAd interstitialAd = new InterstitialAd(this);
     interstitialAd.setAdUnitId("your-ad-unit-id");
     interstitialAd.setAdEventListener(this);
     interstitialAd.loadAd(adRequest);
     ```
{% endlist %}

**SDK 6**

Загрузчик `InterstitialAdLoader` для загрузки нескольких рекламных объявлений. Для загрузки не требуется передавать Activity context.

После загрузки рекламного объявления (вызов метода `onAdLoaded(interstitialAd: InterstitialAd)`) сохраните ссылку на загруженную рекламу `InterstitialAd` до окончания показа.

{% list tabs %}

   - Kotlin

     ```kotlin
     val loader = InterstitialAdLoader(context).apply {
         setAdLoadListener(object : InterstitialAdLoadListener {
             override fun onAdLoaded(interstitialAd: InterstitialAd) {
                 // save interstitialAd to a local variable
                 // now interstitialAd is ready to show
             }

             override fun onAdFailedToLoad(adRequestError: AdRequestError) {}
         })
     }
     loader.loadAd(AdRequestConfiguration.Builder("your-ad-unit-id").build())
     ```

   - Java

     ```java
     final InterstitialAdLoader loader = new InterstitialAdLoader(this);
     loader.setAdLoadListener(new InterstitialAdLoadListener() {
         @Override
         public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
             // save interstitialAd to a local variable
             // now interstitialAd is ready to show
         }

         @Override
         public void onAdFailedToLoad(@NonNull AdRequestError adRequestError) {}
     });
     loader.loadAd(new AdRequestConfiguration.Builder("your-ad-unit-id").build());
     ```
{% endlist %}

||
||
Показ рекламы
| **SDK 5**

{% list tabs %}

   - Kotlin

     ```kotlin
     if (interstitialAd.isLoaded()) {
         interstitialAd.show()
     }
     ```

   - Java

     ```java
     if (interstitialAd.isLoaded()) {
         interstitialAd.show();
     }
     ```
{% endlist %}

**SDK 6**

Проверка, загружена ли реклама, не требуется.

Реклама готова к показу после получения экземпляра `InterstitialAd` в методе обратного вызова `onAdLoaded` загрузчика рекламы.

Для отображения необходимо передать Activity:

{% list tabs %}

   - Kotlin

     ```kotlin
     interstitialAd.show(activity)
     ```

   - Java

     ```java
     interstitialAd.show(activity);
     ```
{% endlist %}

||
||
Рекламный объект `InterstitialAd`
| **SDK 5**

Класс, объединяющий в себе загрузку и показ одного рекламного объявления.

**SDK 6**

Инерфейс загруженного рекламного объявления. Добавлен метод получения информации о рекламном объявлении `getInfo()`.

{% list tabs %}

   - Kotlin

     ```kotlin
     interface InterstitialAd {
         fun setAdEventListener(interstitialAdEventListener: InterstitialAdEventListener)

         fun show(activity: Activity)

         fun getInfo(): AdInfo
     }
     ```

   - Java

     ```java
     interface InterstitialAd {
         void setAdEventListener(@Nullable InterstitialAdEventListener interstitialAdEventListener);

         void show(@NonNull Activity activity);

         @NonNull
         AdInfo getInfo();
     }
     ```
{% endlist %}

||
||
Методы обратного вызова
| **SDK 5**

Один интерфейс методов обратного вызова, объединяющий в себе события загрузки и показа:

{% list tabs %}

   - Kotlin

     ```kotlin
     interface InterstitialAdEventListener {

         fun onLoaded()

         fun onAdFailedToLoad(adRequestError: AdRequestError)

         fun onAdShown()

         fun onAdDismissed()

         fun onLeftApplication()

         fun onReturnedToApplication()
     }
     ```

   - Java

     ```java
     interface InterstitialAdEventListener {

         public void onLoaded();

         public void onAdFailedToLoad(@NonNull AdRequestError adRequestError);

         public void onAdShown();

         public void onAdDismissed();

         public void onLeftApplication();

         public void onReturnedToApplication();
     }
     ```
{% endlist %}

**SDK 6**

Интерфейс `InterstitialAdEventListener` разделен на два: методы обратного вызова загрузки `InterstitialAdLoadListener` и показа `InterstitialAdEventListener`.

Удалены методы `onLeftApplication()`, `onReturnedToApplication()`.

Добавлен метод `onAdFailedToShow(AdError)`.

{% list tabs %}

   - Kotlin

     ```kotlin
     interface InterstitialAdLoadListener {
         fun onAdLoaded(interstitialAd: InterstitialAd)

         fun onAdFailedToLoad(adRequestError: AdRequestError)
     }

     interface InterstitialAdEventListener {
         fun onAdShown()

         fun onAdFailedToShow(adError: AdError)

         fun onAdDismissed()

         fun onAdClicked()

         fun onAdImpression(impressionData: ImpressionData)
     }
     ```

   - Java

     ```java
     interface InterstitialAdLoadListener {
         void onAdLoaded(@NonNull InterstitialAd interstitialAd);

         void onAdFailedToLoad(@NonNull AdRequestError adRequestError);
     }

     interface InterstitialAdEventListener {
         void onAdShown();

         void onAdFailedToShow(@NonNull AdError adError);

         void onAdDismissed();

         void onAdClicked();

         void onAdImpression(@Nullable ImpressionData impressionData);
     }
     ```
{% endlist %}

||
||
Очистка рекламного объекта `InterstitialAd`
| **SDK 5**

Необходимо вызвать `onDestroy()` и перестать хранить ссылку на рекламный объект.

**SDK 6**

Метод `onDestroy()` удален.

Для очистки рекламного объекта необходимо передать `null` в функцию установки слушателя методов обратного вызова `interstitialAd.setAdEventListener`, а также перестать хранить ссылку на сам рекламный объект:

{% list tabs %}

   - Kotlin

     ```kotlin
     private fun destroyInterstitialAd() {
         interstitialAd?.setAdEventListener(null)
         interstitialAd = null
     }
     ```

   - Java

     ```java
     private void destroyInterstitialAd() {
         if (mInterstitialAd != null) {
             mInterstitialAd.setAdEventListener(null);
             mInterstitialAd = null;
         }
     }
     ```
{% endlist %}

||
|#

## App Open Ad

Добавлен новый формат рекламных объявлений — App Open Ad. Подробнее о нем можно узнать в разделе [Реклама при открытии приложения](https://ads.yandex.com/helpcenter/ru/dev/android/app-open-ad.md).

## Медиация Яндекса

{% note warning %}

Обязательно обновите версии используемых адаптеров на актуальные ([Медиация Яндекса](https://ads.yandex.com/helpcenter/ru/dev/android/list-network.md) и [адаптеры для сторонних медиационных сетей](https://ads.yandex.com/helpcenter/ru/dev/android/third-party-mediation.md)). Иначе возможны ошибки неправильной интеграции адаптеров и реклама не будет показана.

{% endnote %}

### Новые версии адаптеров

**Актуальные версии адаптеров для Медиации Яндекса (на момент выхода версии SDK 6.0.1):**

```
"com.yandex.ads.mediation:mobileads-adcolony": "4.8.0.6",
"com.yandex.ads.mediation:mobileads-applovin": "11.11.2.0",
"com.yandex.ads.mediation:mobileads-chartboost": "9.3.1.0",
"com.yandex.ads.mediation:mobileads-google": "22.2.0.0",
"com.yandex.ads.mediation:mobileads-inmobi": "10.5.5.0",
"com.yandex.ads.mediation:mobileads-ironsource": "7.4.0.0",
"com.yandex.ads.mediation:mobileads-mintegral": "16.4.71.1",
"com.yandex.ads.mediation:mobileads-mytarget": "5.18.0.0",
"com.yandex.ads.mediation:mobileads-pangle": "5.3.0.4.1",
"com.yandex.ads.mediation:mobileads-startapp": "4.11.0.2",
"com.yandex.ads.mediation:mobileads-tapjoy": "13.1.2.0",
"com.yandex.ads.mediation:mobileads-unityads": "4.8.0.0",
"com.yandex.ads.mediation:mobileads-vungle": "6.12.1.3",
```

**Актуальные версии адаптеров для сторонних медиационных платформ (на момент выхода версии SDK 6.0.1):**

```
"com.yandex.ads.adapter:admob-mobileads": "6.0.1.0",
"com.yandex.ads.adapter:ironsource-mobileads": "6.0.1.0"
```

### Переименование адаптера Google AdMob (ex. AdMob)

Артефакт `com.yandex.ads.mediation:mobileads-admob` был переименован в `com.yandex.ads.mediation:mobileads-google`.

Если вы используете единую сборку Медиации Яндекса, ничего делать не нужно. В случае ручного подключения адаптеров необходимо заменить gradle-зависимость вашего проекта.

#|
|| **SDK 5**
```gradle
implementation 'com.yandex.ads.mediation:mobileads-admob:<version>'
```
| **SDK 6**
```gradle
implementation 'com.yandex.ads.mediation:mobileads-google:<version>'
```
||
|#

Полные примеры интеграции можно посмотреть здесь:

* <!-- source: ru/dev/_includes/github-pubdev-links.md -->
  Ссылка на [github](https://github.com/yandexmobile/yandex-ads-sdk-android).
  <!-- endsource: ru/dev/_includes/github-pubdev-links.md -->
