Последнее обновление: февраль 2023 г.
На этой странице описана миграция между текущей и предыдущими версиями.
Переход с версии 7 на версию 8
В полноэкранных форматах теперь используется статический метод загрузки.
В версии 7 плагина для межстраничной и рекламной рекламы с вознаграждением использовался метод LoadAd() на уровне экземпляра, тогда как для межстраничной рекламы с вознаграждением и рекламы при открытии приложения использовался статический метод Load() . В версии 8 для всех форматов полноэкранной рекламы (межстраничная, с вознаграждением, межстраничная с вознаграждением и реклама при открытии приложения) будет использоваться статический метод Load() для загрузки рекламы. Вот пример загрузки межстраничной рекламы:
Версия 8 (текущая)
#if UNITY_ANDROID
const string adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
const string adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
const string adUnitId = "unexpected_platform";
#endif
private InterstitialAd _interstitialAd;
private void LoadAd()
{
// Load an interstitial ad
InterstitialAd.Load(adUnitId, new AdRequest(),
(InterstitialAd ad, LoadAdError loadAdError) =>
{
if (loadAdError != null)
{
Debug.Log("Interstitial ad failed to load with error: " +
loadAdError.GetMessage());
return;
}
else if (ad == null)
{
Debug.Log("Interstitial ad failed to load.");
return;
}
Debug.Log("Interstitial ad loaded.");
_interstitialAd = ad;
});
}
Версия 7 (устаревшая)
#if UNITY_ANDROID
const string adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
const string adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
const string adUnitId = "unexpected_platform";
#endif
private InterstitialAd _interstitialAd;
private void LoadInterstitialAd()
{
// Initialize an InterstitialAd.
_interstitialAd = new InterstitialAd(adUnitId);
// Called when an ad request has successfully loaded.
_interstitialAd.OnAdLoaded += HandleOnAdLoaded;
// Called when an ad request has failed to load.
_interstitialAd.OnAdFailedToLoad += HandleOnAdFailedToLoad;
// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the interstitial with the request.
_interstitialAd.LoadAd(request);
}
private void HandleOnAdLoaded(object sender, EventArgs args)
{
Debug.Log("Interstitial ad loaded.");
}
private void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
if (args != null)
{
Debug.Log("Interstitial ad failed to load with error: " +
args.LoadAdError.GetMessage());
}
}
Вот пример того, как загрузить рекламу с вознаграждением:
Версия 8 (текущая)
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
const string adUnitId = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
const string adUnitId = "ca-app-pub-3940256099942544/1712485313";
#else
const string adUnitId = "unused";
#endif
private RewardedAd _rewardedAd;
private void LoadRewardedAd()
{
// Load a rewarded ad
RewardedAd.Load(adUnitId, new AdRequest(),
(Rewarded ad, LoadAdError loadError) =>
{
if (loadError != null)
{
Debug.Log("Rewarded ad failed to load with error: " +
loadError.GetMessage());
return;
}
else if (ad == null)
{
Debug.Log("Rewarded ad failed to load.");
return;
}
Debug.Log("Rewarded ad loaded.");
_rewardedAd = ad;
});
}
Версия 7 (устаревшая)
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
const string adUnitId = "ca-app-pub-3940256099942544/5224354917";
#elif UNITY_IPHONE
const string adUnitId = "ca-app-pub-3940256099942544/1712485313";
#else
const string adUnitId = "unused";
#endif
private RewardedAd _rewardedAd;
private void LoadRewardedAd()
{
// Initialize an InterstitialAd.
_rewardedAd = new RewardedAd(adUnitId);
// Called when an ad request has successfully loaded.
_rewardedAd.OnAdLoaded += HandleOnAdLoaded;
// Called when an ad request has failed to load.
_rewardedAd.OnAdFailedToLoad += HandleOnAdFailedToLoad;
// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the interstitial with the request.
_rewardedAd.LoadAd(request);
}
private void HandleOnAdLoaded(object sender, EventArgs args)
{
Debug.Log("Rewarded ad loaded.");
}
private void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
if (args != null)
{
Debug.Log("Rewarded ad failed to load with error: " +
args.LoadAdError.GetMessage());
}
}
Используйте функцию CanShowAd() для проверки готовности к показу полноэкранной рекламы.
В версии 7 полноэкранная реклама (межстраничная, с вознаграждением, с вознаграждением за межстраничную рекламу и рекламу при открытии приложения) имела метод IsLoaded() , который возвращал true если реклама была загружена. Из-за изменения способа загрузки рекламы в версии 8 доступ к объекту полноэкранной рекламы появляется только после её загрузки, что делает метод IsLoaded() устаревшим.
В версии 8 появился новый метод CanShowAd() , который возвращает true если объявление всё ещё может быть показано. Вот пример использования CanShowAd() для межстраничного объявления:
Версия 8 (текущая)
private InterstitialAd _interstitalAd;
public void ShowInterstitialAd()
{
if (_interstitalAd != null && _interstitalAd.CanShowAd())
{
_interstitalAd.Show();
}
else
{
Debug.Log("Interstitial ad cannot be shown.");
}
}
Версия 7 (устаревшая)
private InterstitialAd _interstitalAd;
public void ShowInterstitialAd()
{
if (_interstitalAd != null && _interstitalAd.IsLoaded())
{
_interstitalAd.Show();
}
else
{
Debug.Log("Interstitial ad is not ready yet.");
}
}
Используйте Show(Action) ) для показа рекламы с вознаграждением
В версии 7 плагина для рекламы с вознаграждением использовался метод Show() с отдельным событием OnUserEarnedReward для обработки сигналов вознаграждения пользователя, а для межстраничной рекламы с вознаграждением — метод Show(Action<Reward>) с функцией обратного вызова для обработки сигнала вознаграждения пользователя. В версии 8 для форматов рекламы с вознаграждением и межстраничной рекламы с вознаграждением будет использоваться метод Show(Action<Reward>) с функцией обратного вызова для обработки уведомления о вознаграждении пользователя.
Вот пример того, как показывать рекламу с вознаграждением:
Версия 8 (текущая)
private RewardedAd _rewardedAd;
public void ShowRewardedAd()
{
if (_rewardedAd != null && _rewardedAd.CanShowAd())
{
_rewardedAd.Show((Reward reward) =>
{
Debug.Log("Rewarded ad granted a reward: " +
reward.Amount);
});
}
else
{
Debug.Log("Rewarded ad cannot be shown.");
}
}
Версия 7 (устаревшая)
private RewardedAd _rewardedAd;
public void ShowRewardedAd()
{
if (_rewardedAd != null && _rewardedAd.CanShowAd())
{
_rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
_rewardedAd.Show();
}
else
{
Debug.Log("Rewarded ad is not ready yet.");
}
}
public void HandleUserEarnedReward(object sender, Reward reward)
{
Debug.Log("Rewarded ad granted a reward: " +
reward.Amount);
}
Участники рекламных мероприятий теперь используют аргументы определённого типа.
В версии 7 API мы использовали EventHandlers при определении делегатов событий. В версии 8 мы перешли на универсальные делегаты для рекламных событий. В результате события теперь будут передавать значения событий напрямую, без необходимости оборачиваться в класс EventArg .
Вот пример использования OnAdPaid (вместо OnPaidEvent ):
Версия 8 (текущая)
private BannerView _bannerView;
public void ConfigureBanner()
{
_bannerView.OnAdPaid += (AdValue value) =>
{
AdValue value = value;
};
}
Версия 7 (устаревшая)
private BannerView _bannerView;
public void ConfigureBanner()
{
_bannerView.OnPaidEvent += (object sender, AdValueEventArg arg) =>
{
AdValue value = arg.Value;
};
}
Теперь форматы рекламы соответствуют единому интерфейсу.
В версии 7 плагина наблюдались расхождения в названиях событий между форматами полноэкранной рекламы. В версии 8 мы переименовали многие методы API, чтобы обеспечить единообразие во всех форматах рекламы.
В таблице ниже перечислены изменения классов, внесенные в версию 8.
BannerView | |
|---|---|
| v7 | v8 |
| OnAdLoaded | OnBannerAdLoaded |
| OnAdFailedToLoad | OnBannerAdLoadFailed |
| OnAdOpening | OnAdFullScreenContentOpened |
| OnAdClosed | OnAdFullScreenContentClosed |
| OnPaidEvent | OnAdPaid |
InterstitialAd | |
| LoadAd() | InterstitialAd.Load() |
| InterstitialAd() | InterstitialAd.Load() |
| OnAdLoaded | InterstitialAd.Load() |
| OnAdFailedToLoad | InterstitialAd.Load() |
| OnAdOpening | OnAdFullScreenContentOpened |
| OnAdClosed | OnAdFullScreenContentClosed |
| OnAdFailedToShow | OnAdFullScreenContentFailed |
| OnAdDidRecordImpression | OnAdImpressionRecorded |
| OnPaidEvent | OnAdPaid |
RewardedAd | |
| LoadAd() | RewardedAd.Load() |
| RewardedAd() | RewardedAd.Load() |
| OnAdLoaded | RewardedAd.Load() |
| OnAdFailedToLoad | RewardedAd.Load() |
| OnAdOpening | OnAdFullScreenContentOpened |
| OnAdClosed | OnAdFullScreenContentClosed |
| OnAdFailedToShow | OnAdFullScreenContentFailed |
| OnAdDidRecordImpression | OnAdImpressionRecorded |
| OnPaidEvent | OnAdPaid |
| Показывать() | Показывать() |
| OnUserEarnedReward | Показывать() |
RewardedInterstitialAd | |
| LoadAd() | RewardedInterstitialAd.Load() |
| OnPaidEvent | OnAdPaid |
| OnAdDidPresentFullScreenContent | OnAdFullScreenContentOpened |
| OnAdDidDismissFullScreenContent | OnAdFullScreenContentClosed |
| OnAdFailedToPresentFullScreenContent | OnAdFullScreenContentFailed |
| OnAdDidRecordImpression | OnAdImpressionRecorded |
AppOpenAd | |
| LoadAd() | AppOpenAd.Load() |
| OnPaidEvent | OnAdPaid |
| OnAdDidPresentFullScreenContent | OnAdFullScreenContentOpened |
| OnAdDidDismissFullScreenContent | OnAdFullScreenContentClosed |
| OnAdFailedToPresentFullScreenContent | OnAdFullScreenContentFailed |
| OnAdDidRecordImpression | OnAdImpressionRecorded |
AdErrorEventArgs | |
| AdErrorEventArgs.AdError | Используйте AdError напрямую. |
AdFailedToLoadEventArgs | |
| AdFailedToLoadEventArgs.LoadAdError | Используйте LoadAdError напрямую. |
AdValueEventArgs | |
| AdValueEventArgs.AdValue | Используйте AdValue напрямую. |