---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ads.yandex.com/helpcenter/en/dev/unity7/release/6-0-0-migration.md
  - https://ads.yandex.com/helpcenter/ru/dev/unity7/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/unity
-->

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

<a href="dev/platforms"> <!--ссылка, куда ведет кнопка. Если внутренняя ссылка, пишем без .md и .html -->
  <span class="button">Другие платформы</span> <!--текст на кнопке-->
</a>



{% note warning %}

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

{% endnote %}

Для корректной работы необходимо включить кастомные template's для генерируемого проекта. Для этого в настройках сборки (**Build Settings** → **Player Settings** → **Publishing Settings** → **Build**) нужно поставить галочку **Custom Main Gradle Template**.

   Рекомендуется всегда использовать **Custom Main Gradle Template** и **Custom Gradle Properties Template** при сборке Unity-приложения, это позволяет избежать и других возможных ошибок.

   <img src="https://yastatic.net/s3/doc-binary/src/dev/mobile-ads/common/unity-custom.jpg">

## Баннеры

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

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

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

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

{% note warning %}

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

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

{% endnote %}

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

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

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

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

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

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

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

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

```c#
private RewardedAd rewardedAd;

private void RequestRewardedAd()
{
    string adUnitId = "demo-rewarded-yandex"; // замените на "R-M-XXXXXX-Y"
    rewardedAd = new RewardedAd(adUnitId);

    AdRequest request = new AdRequest.Builder().Build();
    rewardedAd.LoadAd(request);
}
```

**SDK 6**

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

```c#
private void SetupLoader()
{
  rewardedAdLoader = new RewardedAdLoader();
  rewardedAdLoader.OnAdLoaded += HandleRewardedAdLoaded;
  rewardedAdLoader.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
}

private void RequestRewardedAd()
{
    string adUnitId = "demo-rewarded-yandex"; // замените на "R-M-XXXXXX-Y"
    AdRequestConfiguration adRequestConfiguration = new AdRequestConfiguration.Builder(adUnitId).Build();
    rewardedAdLoader.LoadAd(adRequestConfiguration);
}

public void HandleAdLoaded(object sender, RewardedAdLoadedEventArgs args)
{
    this.interstitial = args.RewardedAd;
}

public void HandleAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    Debug.Log($"HandleAdFailedToLoad event received with message: {args.Message}");
}
```

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

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

```c#
private void ShowRewardedAd()
{
    if (rewardedAd != null && rewardedAd.IsLoaded())
    {
        rewardedAd.Show();
    }
}
```

**SDK 6**

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

```c#
private void ShowRewardedAd()
{
    if (rewardedAd != null)
    {
        rewardedAd.Show();
    }
}
```

||
||
Подписка на события жизненного цикла рекламы
| **SDK 5**

Все события приходят в едином объекте `RewardedAd`.

```c#
rewardedAd.OnRewardedAdLoaded += HandleRewardedAdLoaded;
rewardedAd.OnRewardedAdFailedToLoad += HandleRewardedAdFailedToLoad;
rewardedAd.OnReturnedToApplication += HandleReturnedToApplication;
rewardedAd.OnLeftApplication += HandleLeftApplication;
rewardedAd.OnAdClicked += HandleAdClicked;
rewardedAd.OnRewardedAdShown += HandleRewardedAdShown;
rewardedAd.OnRewardedAdFailedToShow += HandleRewardedAdFailedToShow;
rewardedAd.OnRewardedAdDismissed += HandleRewardedAdDismissed;
rewardedAd.OnImpression += HandleImpression;
rewardedAd.OnRewarded += HandleRewarded;
```

**SDK 6**

Cобытия загрузки рекламы приходят в объекте `RewardedAdLoader`, а события показа — в объекте `RewardedAd`.
Унифицированы названия событий. Удалены события `OnLeftApplication` и `OnReturnedToApplication`.

```c#
rewardedAdLoader.OnAdLoaded += HandleRewardedAdLoaded;
rewardedAdLoader.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
// ...
rewardedAd.OnAdClicked += HandleAdClicked;
rewardedAd.OnAdShown += HandleRewardedAdShown;
rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
rewardedAd.OnAdDismissed += HandleRewardedAdDismissed;
rewardedAd.OnAdImpression += HandleImpression;
rewardedAd.OnRewarded += HandleRewarded;
```

||
|#

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

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

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

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

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

```c#
private Interstitial interstitial;

private void RequestInterstitial()
{
    string adUnitId = "demo-interstitial-yandex"; // замените на "R-M-XXXXXX-Y"
    interstitial = new Interstitial(adUnitId);

    AdRequest request = new AdRequest.Builder().Build();
    interstitial.LoadAd(request);
}
```

**SDK 6**

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

```c#
private void SetupLoader()
{
  interstitialAdLoader = new InterstitialAdLoader();
  interstitialAdLoader.OnAdLoaded += HandleInterstitialLoaded;
  interstitialAdLoader.OnAdFailedToLoad += HandleInterstitialFailedToLoad;
}

private void RequestInterstitial()
{
    string adUnitId = "demo-interstitial-yandex"; // замените на "R-M-XXXXXX-Y"
    AdRequestConfiguration adRequestConfiguration = new AdRequestConfiguration.Builder(adUnitId).Build();
    interstitialAdLoader.LoadAd(adRequestConfiguration);
}
```

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

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

```c#
private void ShowInterstitial()
{
    if (interstitial != null && interstitial.IsLoaded())
    {
        interstitial.Show();
    }
}
```

**SDK 6**

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

```c#
private void ShowInterstitial()
{
    if (interstitial != null)
    {
        interstitial.Show();
    }
}
```

||
||
Подписка на события жизненного цикла рекламы
| **SDK 5**

Все события приходят в едином объекте `Interstitial`.

```c#
interstitial.OnInterstitialLoaded += HandleInterstitialLoaded;
interstitial.OnInterstitialFailedToLoad += HandleInterstitialFailedToLoad;
interstitial.OnReturnedToApplication += HandleReturnedToApplication;
interstitial.OnLeftApplication += HandleLeftApplication;
interstitial.OnAdClicked += HandleAdClicked;
interstitial.OnInterstitialShown += HandleInterstitialShown;
interstitial.OnInterstitialFailedToShow += HandleInterstitialFailedToShow;
interstitial.OnInterstitialDismissed += HandleInterstitialDismissed;
interstitial.OnImpression += HandleImpression;
```

**SDK 6**

Cобытия загрузки рекламы приходят в объекте `InterstitialAdLoader`, а события показа в объекте `Interstitial`.
Унифицированы названия событий. Удалены события `OnLeftApplication` и `OnReturnedToApplication`.

```c#
interstitialAdLoader.OnAdLoaded += HandleInterstitialLoaded;
interstitialAdLoader.OnAdFailedToLoad += HandleInterstitialFailedToLoad;
// ...
interstitial.OnAdClicked += HandleAdClicked;
interstitial.OnAdShown += HandleInterstitialShown;
interstitial.OnAdFailedToShow += HandleInterstitialFailedToShow;
interstitial.OnAdDismissed += HandleInterstitialDismissed;
interstitial.OnAdImpression += HandleImpression;
```

||
|#

## App Open Ad

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

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

{% note warning %}

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

{% endnote %}

Пакет `mobileads-admob-mediation-2.9.0.unitypackage` был переименован в `mobileads-google-mediation-6.0.0.unitypackage`.

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

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

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