SDK Migration، SDK Migration

پلتفرم مورد نظر: اندروید، iOS و یونیتی

آخرین به‌روزرسانی: فوریه ۲۰۲۳

این صفحه مهاجرت‌ها را برای نسخه‌های فعلی و قبلی پوشش می‌دهد.

مهاجرت از نسخه ۷ به نسخه ۸

فرمت‌های تمام صفحه اکنون از یک روش بارگذاری استاتیک استفاده می‌کنند

در نسخه ۷ این افزونه، تبلیغات بینابینی و پاداشی دارای یک متد LoadAd() در سطح نمونه برای بارگذاری یک تبلیغ بودند، در حالی که تبلیغات بینابینی پاداشی و تبلیغات باز شدن برنامه دارای یک متد Load() ایستا برای بارگذاری تبلیغات بودند. در نسخه ۸، تمام قالب‌های تبلیغات تمام صفحه (بینابینی، پاداشی، تبلیغات بینابینی پاداشی و باز شدن برنامه) دارای یک متد Load() ایستا برای بارگذاری تبلیغات خواهند بود. در اینجا مثالی از نحوه بارگذاری یک تبلیغ بینابینی آورده شده است:

نسخه ۸ (فعلی)

#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;
        });
}

نسخه ۷ (قدیمی)

#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());
    }
}

در اینجا مثالی از نحوه بارگذاری یک تبلیغ جایزه‌دار آورده شده است:

نسخه ۸ (فعلی)

// 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;
        });
}

نسخه ۷ (قدیمی)

// 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() برای بررسی آمادگی نمایش تبلیغات تمام صفحه استفاده کنید

در نسخه ۷، تبلیغات تمام صفحه (بینابینی، پاداشی، بینابینی پاداشی و تبلیغات باز برنامه) دارای متد IsLoaded() بودند که در صورت بارگذاری تبلیغ true را برمی‌گرداند. با توجه به تغییر در نحوه بارگذاری تبلیغات، در نسخه ۸ تا زمانی که تبلیغ بارگذاری نشود، به شیء تبلیغ تمام صفحه دسترسی ندارید، که باعث می‌شود متد IsLoaded() منسوخ شود.

نسخه ۸ یک متد جدید به نام CanShowAd() دارد که در صورت نمایش تبلیغ، true را برمی‌گرداند. در اینجا مثالی از نحوه استفاده از CanShowAd() در یک تبلیغ بینابینی آورده شده است:

نسخه ۸ (فعلی)

private InterstitialAd _interstitalAd;

public void ShowInterstitialAd()
{
    if (_interstitalAd != null && _interstitalAd.CanShowAd())
    {
        _interstitalAd.Show();
    }
    else
    {
        Debug.Log("Interstitial ad cannot be shown.");
    }
}

نسخه ۷ (قدیمی)

private InterstitialAd _interstitalAd;

public void ShowInterstitialAd()
{
    if (_interstitalAd != null && _interstitalAd.IsLoaded())
    {
        _interstitalAd.Show();
    }
    else
    {
        Debug.Log("Interstitial ad is not ready yet.");
    }
}

از نمایش (عملکرد) استفاده کنید ) برای نمایش تبلیغات جایزه‌دار

در نسخه ۷ این افزونه، تبلیغات جایزه‌دار دارای متد Show() با یک رویداد جداگانه OnUserEarnedReward برای مدیریت سیگنال‌های پاداش کاربر بودند و تبلیغ بینابینی جایزه‌دار دارای متد Show(Action<Reward>) با یک فراخوانی برای مدیریت سیگنال پاداش کاربر بود. در نسخه ۸، قالب‌های تبلیغات بینابینی جایزه‌دار و جایزه‌دار دارای یک متد Show(Action<Reward>) با یک فراخوانی برای مدیریت اعلان پاداش کاربر خواهند بود.

در اینجا مثالی از نحوه نمایش یک تبلیغ جایزه‌دار آورده شده است:

نسخه ۸ (فعلی)

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.");
    }
}

نسخه ۷ (قدیمی)

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);
}

نمایندگان رویداد تبلیغاتی اکنون آرگومان‌های نوع خاصی را می‌پذیرند

در نسخه ۷ این API، ما هنگام تعریف نماینده‌های رویداد از EventHandlers استفاده می‌کردیم. در نسخه ۸، نماینده‌های عمومی را برای رویدادهای تبلیغاتی اتخاذ کردیم. در نتیجه، رویدادها اکنون مقادیر رویداد را مستقیماً و بدون قرار گرفتن در کلاس EventArg منتشر می‌کنند.

در اینجا مثالی از استفاده از OnAdPaid (به جای OnPaidEvent ) آورده شده است:

نسخه ۸ (فعلی)

private BannerView _bannerView;

public void ConfigureBanner()
{
    _bannerView.OnAdPaid += (AdValue value) =>
    {
        AdValue value = value;
    };
}

نسخه ۷ (قدیمی)

private BannerView _bannerView;

public void ConfigureBanner()
{
    _bannerView.OnPaidEvent += (object sender, AdValueEventArg arg) =>
    {
        AdValue value = arg.Value;
    };
}

قالب‌های تبلیغاتی اکنون با یک رابط کاربری واحد مطابقت دارند.

در نسخه ۷ این افزونه، تفاوت‌هایی در نام رویدادها بین قالب‌های تبلیغاتی تمام صفحه وجود داشت. در نسخه ۸، ما بسیاری از متدهای API خود را تغییر نام داده‌ایم تا در قالب‌های تبلیغاتی ما سازگار باشند.

جدول زیر تغییرات کلاس معرفی شده در نسخه ۸ را فهرست می‌کند.

BannerView
نسخه ۷ نسخه ۸
OnAdLoaded OnBannerAdLoaded
OnAdFailedToLoad بارگذاری بنر تبلیغاتی ناموفق
افتتاح در تبلیغات OnAdFullScreenContentOpened
OnAdClosed OnAdFullScreenContentبسته شد
رویداد آنلاین آن‌ادپید
InterstitialAd
بارگذاری آگهی() تابع ()InterstitialAd.Load
تبلیغ بینابینی() تابع ()InterstitialAd.Load
OnAdLoaded تابع ()InterstitialAd.Load
OnAdFailedToLoad تابع ()InterstitialAd.Load
افتتاح در تبلیغات OnAdFullScreenContentOpened
OnAdClosed OnAdFullScreenContentبسته شد
نمایش ناموفق در تبلیغات (OnAdFailedToShow) OnAdFullScreenContentFailed
نمایش رکورد در آگهی ثبت شده در OnAdImpression
رویداد آنلاین آن‌ادپید
RewardedAd
بارگذاری آگهی() تابع ()RewardedAd.Load
تبلیغات پاداشی() تابع ()RewardedAd.Load
OnAdLoaded تابع ()RewardedAd.Load
OnAdFailedToLoad تابع ()RewardedAd.Load
افتتاح در تبلیغات OnAdFullScreenContentOpened
OnAdClosed OnAdFullScreenContentبسته شد
نمایش ناموفق در تبلیغات (OnAdFailedToShow) OnAdFullScreenContentFailed
نمایش رکورد در آگهی ثبت شده در OnAdImpression
رویداد آنلاین آن‌ادپید
نمایش() نمایش()
پاداش کسب شده توسط کاربر نمایش()
RewardedInterstitialAd
بارگذاری آگهی() تابع ()RewardedInterstitialAd.Load
رویداد آنلاین آن‌ادپید
OnAdDidPresentFullScreenContent OnAdFullScreenContentOpened
OnAdDidDismissFullScreenContent OnAdFullScreenContentبسته شد
OnAdFailedToPresentFullScreenContent OnAdFullScreenContentFailed
نمایش رکورد در آگهی ثبت شده در OnAdImpression
AppOpenAd
بارگذاری آگهی() تابع ()AppOpenAd.Load
رویداد آنلاین آن‌ادپید
OnAdDidPresentFullScreenContent OnAdFullScreenContentOpened
OnAdDidDismissFullScreenContent OnAdFullScreenContentبسته شد
OnAdFailedToPresentFullScreenContent OnAdFullScreenContentFailed
نمایش رکورد در آگهی ثبت شده در OnAdImpression
AdErrorEventArgs
خطای AdErrorEventArgs.AdError مستقیماً از AdError استفاده کنید.
AdFailedToLoadEventArgs
AdFailedToLoadEventArgs.LoadAdError مستقیماً از LoadAdError استفاده کنید.
AdValueEventArgs
AdValueEventArgs.AdValue مستقیماً از AdValue استفاده کنید.