Руководство по миграции на версию 8.0.0 (beta)
Версия 8.0.0 Unity Plugin для Yandex Mobile Ads SDK вносит ряд изменений в API, направленных на улучшение пользовательского опыта разработчиков.
Основные изменения
1. Изменения в AdRequest
Классы AdRequestConfiguration и AdRequest.Builder удалены. adUnitId стал обязательным параметром конструктора AdRequest. Теперь именно AdRequest используется для загрузчиков Interstitial, Rewarded и AppOpen вместо AdRequestConfiguration.
| Класс | Статус |
|---|---|
AdRequestConfiguration |
Удален. Используйте AdRequest |
AdRequest.Builder |
Удален. Используйте конструктор AdRequest |
Примеры
C#
|
SDK 7 |
SDK 8 |
|
|
2. Изменения в Targeting
Поля таргетинга (Age, Gender, Location, ContextQuery, ContextTags) удалены из AdRequestConfiguration.Builder и AdRequest.Builder. Для управления параметрами таргетинга используйте новый класс AdTargeting.
| Класс | Свойство | Статус |
|---|---|---|
AdRequestConfiguration.Builder |
WithAge |
Удалено. Используйте AdTargeting(age:) |
AdRequestConfiguration.Builder |
WithGender |
Удалено. Используйте AdTargeting(gender:) |
AdRequestConfiguration.Builder |
WithLocation |
Удалено. Используйте AdTargeting(location:) |
AdRequestConfiguration.Builder |
WithContextQuery |
Удалено. Используйте AdTargeting(contextQuery:) |
AdRequestConfiguration.Builder |
WithContextTags |
Удалено. Используйте AdTargeting(contextTags:) |
AdRequest.Builder |
WithAge |
Удалено. Используйте AdTargeting(age:) |
AdRequest.Builder |
WithGender |
Удалено. Используйте AdTargeting(gender:) |
AdRequest.Builder |
WithLocation |
Удалено. Используйте AdTargeting(location:) |
AdRequest.Builder |
WithContextQuery |
Удалено. Используйте AdTargeting(contextQuery:) |
AdRequest.Builder |
WithContextTags |
Удалено. Используйте AdTargeting(contextTags:) |
AdTargeting |
— | Добавлен |
Примеры
C#
|
SDK 7 |
SDK 8 |
|
|
3. Изменения в загрузчиках рекламы
События OnAdLoaded и OnAdFailedToLoad удалены из RewardedAdLoader, InterstitialAdLoader и AppOpenAdLoader. Результат загрузки теперь возвращается через callback-параметры метода LoadAd.
| Класс | Загрузчик | Статус |
|---|---|---|
AppOpenAdLoader |
LoadAd(request) + OnAdLoaded, OnAdFailedToLoad |
Заменен на LoadAd(request, onLoaded, onFailed) |
InterstitialAdLoader |
LoadAd(request) + OnAdLoaded, OnAdFailedToLoad |
Заменен на LoadAd(request, onLoaded, onFailed) |
RewardedAdLoader |
LoadAd(request) + OnAdLoaded, OnAdFailedToLoad |
Заменен на LoadAd(request, onLoaded, onFailed) |
OnAdLoaded |
— | Удалено |
OnAdFailedToLoad |
— | Удалено |
Примеры
C#
|
SDK 7 |
SDK 8 |
|
|
Тот же паттерн применяется к InterstitialAdLoader (возвращает Interstitial) и AppOpenAdLoader (возвращает AppOpenAd).
3.1 Поддержка async/await
Добавлена поддержка async/await во всех загрузчиках рекламы. При ошибке загрузки возникает AdLoadingException.
| Загрузчик | Метод | Статус |
|---|---|---|
AppOpenAdLoader |
LoadAd(request) |
Добавлен |
InterstitialAdLoader |
LoadAd(request) |
Добавлен |
RewardedAdLoader |
LoadAd(request) |
Добавлен |
Примеры
C#
var loader = new RewardedAdLoader();
try
{
_rewardedAd = await loader.LoadAd(new AdRequest("R-M-XXXXX-YY"));
}
catch (AdLoadingException e)
{
Debug.Log(e.Message);
}
4. Изменения в Banner API
Параметр blockId удален из конструктора Banner. Теперь идентификатор рекламного блока передается через AdRequest при каждой загрузке. Фабричные методы BannerAdSize переименованы — суффикс Size удален.
| Класс | SDK 7 | SDK 8 | Статус |
|---|---|---|---|
Banner |
Banner(blockId, adSize, position) |
Banner(adSize, position) |
Изменен |
Banner |
LoadAd(new AdRequest.Builder().Build()) |
LoadAd(new AdRequest(blockId)) |
Изменен |
BannerAdSize |
FixedSize(width, height) |
Fixed(width, height) |
Переименован |
BannerAdSize |
StickySize(width) |
Sticky(width) |
Переименован |
BannerAdSize |
InlineSize(width, maxHeight) |
Inline(width, maxHeight) |
Переименован |
Примеры
C#
|
SDK 7 |
SDK 8 |
|
|
5. Переименование основного класса SDK
Класс MobileAds переименован в YandexAds.
| SDK 7 | SDK 8 | Статус |
|---|---|---|
MobileAds |
YandexAds |
Переименован |
MobileAds.SetUserConsent(consent) |
YandexAds.SetUserConsent(consent) |
Переименован |
MobileAds.SetLocationTracking(enabled) |
YandexAds.SetLocationTracking(enabled) |
Переименован |
MobileAds.SetAgeRestricted(restricted) |
YandexAds.SetAgeRestricted(restricted) |
Переименован |
MobileAds.ShowDebugPanel() |
YandexAds.ShowDebugPanel() |
Переименован |
Примеры
C#
|
SDK 7 |
SDK 8 |
|
|
6. Изменения в AdInfo
Свойство AdSize удалено из AdInfo. Добавлены новые свойства: ExtraData, PartnerText, Creatives.
| Класс | SDK 7 | SDK 8 | Статус |
|---|---|---|---|
AdInfo |
AdUnitId |
AdUnitId |
Без изменений |
AdInfo |
AdSize |
— | Удалено |
AdInfo |
— | ExtraData |
Добавлено |
AdInfo |
— | PartnerText |
Добавлено (только для ADFOX) |
AdInfo |
— | Creatives |
Добавлено |
Примеры
C#
|
SDK 7 |
SDK 8 |
|
|
7. Расширение GetInfo()
Метод GetInfo() теперь доступен для всех типов рекламы, включая AppOpenAd и Banner.
| Тип рекламы | SDK 7 | SDK 8 | Статус |
|---|---|---|---|
Interstitial.GetInfo() |
✓ | ✓ | Без изменений |
RewardedAd.GetInfo() |
✓ | ✓ | Без изменений |
AppOpenAd.GetInfo() |
— | ✓ | Добавлен |
Banner.GetInfo() |
— | ✓ | Добавлен |
Примеры
C#
// SDK 8: GetInfo() доступен для всех типов рекламы
AdInfo adInfo = banner.GetInfo();
if (adInfo != null)
{
Debug.Log($"AdUnitId: {adInfo.AdUnitId}");
}