مهاجرت SDK

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

از نسخه 22 به نسخه 23 مهاجرت کنید

حداقل سطح API اندروید 21 است

با شروع نسخه 23.0.0، Google Mobile Ads SDK به همه برنامه‌ها نیاز دارد که در حداقل سطح Android API 21 اجرا شوند. برای تنظیم سطح API، مقدار minSdkVersion را در فایل build.gradle سطح برنامه خود به 21 یا بالاتر تغییر دهید.

روش‌های منسوخ حذف/جایگزین شدند

v22.0.0 API v23.0.0 API
AdRequest.Builder.addTestDevice() RequestConfiguration.Builder.setTestDeviceIds()
AdRequest.Builder.tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment()
AdRequest.Builder.setIsDesignedForFamilies() RequestConfiguration.Builder.setMaxAdContentRating()
AdFormat.NUNKNOWN بدون جایگزینی
AdLoader.Builder.forUnifiedNativeAd() AdLoader.Builder.forNativeAd()
AdLoader.Builder.forCustomTemplateAd() AdLoader.Builder.forCustomFormatAd()
AdLoader.Builder.withNativeAdOptions( formats com.google.android.gms.ads. NativeAdOptions) AdLoader.Builder.withNativeAdOptions(com.google.android.gms.ads. nativead .NativeAdOptions)
void MobileAds.setSameAppKeyEnabled() Boolean MobileAds.putPublisherFirstPartyIdEnabled()

از نسخه 21 به نسخه 22 مهاجرت کنید

از MobileAds.getVersion() برای دریافت نسخه Google Mobile Ads SDK استفاده کنید

متد MobileAds.getVersionString() در نسخه 22.0.0 به نفع MobileAds.getVersion() حذف شده است.

روش جدید شماره نسخه خارجی مورد انتظار را برمی گرداند - به عنوان مثال، 22.0.0 . برای اطلاعات بیشتر درباره این تغییر، به استفاده از روش جدید Google Mobile Ads SDK getVersion() مراجعه کنید.

روش های حذف یا جایگزین شده است

جدول زیر تغییرات خاص نسخه 22.0.0 را فهرست می کند.

نسخه 21.0.0 نسخه 22.0.0
MobileAds.getVersionString() MobileAds.getVersion()
NativeCustomFormatAd.getVideoMediaView() NativeCustomFormatAd.getMediaContent()
NativeCustomFormatAd.getVideoController() NativeCustomFormatAd.getMediaContent().getVideoController()
AdRequest.Builder.setAdInfo() AdRequest.Builder.setAdString()
MediationRewardedVideoAdapter آداپتور
MediationRewardedVideoAdListener
com.google.android.gms.ads.mediation.VersionInfo com.google.android.gms.ads.VersionInfo
com.google.android.gms.ads.doubleclick.AppEventListener com.google.android.gms.ads.admanager.AppEventListener

از نسخه 20 به نسخه 21 مهاجرت کنید

minSdkVersion را به 19 یا بالاتر به روز کنید

از نسخه 21.0.0، Google Mobile Ads SDK به همه برنامه‌ها نیاز دارد که حداقل در سطح Android API 19 اجرا شوند. برای تنظیم سطح API، مقدار minSdkVersion در فایل ساخت برنامه خود را به 19 یا بالاتر تغییر دهید.

ابطال پذیری شدید را اعمال کنید

در آماده‌سازی برای اعمال پوچ‌پذیری دقیق، حاشیه‌نویسی‌های @NonNull در همه API‌هایی که قبلاً به‌صراحت قابلیت تهی را تعریف نکرده بودند، اضافه می‌شوند.

این تغییر ممکن است برنامه‌های Kotlin و برنامه‌هایی را که از چارچوب‌های بررسی تهی جاوا استفاده می‌کنند، در صورتی که نقض‌های ایمنی تهی وجود داشته باشد، خراب کند و قبلاً مقادیر null را به روشی ایمن مدیریت نکرده‌اند (به مستندات Kotlin در مورد ایمنی Null مراجعه کنید).

حذف متد addNetworkExtras()

متد addNetworkExtras() که پارامترهای اضافی را به عنوان یک نمونه NetworkExtras به یک آداپتور شبکه تبلیغاتی خاص ارسال می‌کند، در SDK نسخه 20.3.0 منسوخ شده است و در نسخه 21.0.0 حذف خواهد شد. به جای آن از متد addNetworkExtrasBundle() از همان کلاس AdRequest.Builder استفاده کنید.

حذف روش های مکان یابی

روش های مکان یابی زیر در نسخه 21.0.0 حذف خواهند شد:

  • متد setLocation(Location location) در کلاس AdRequest.Builder که مکان کاربر را برای اهداف میانجی‌گری تعیین می‌کند.
  • متد getLocation() در کلاس AdRequest که اطلاعات مکان یابی کاربر را که قبلاً به متد setLocation(Location location) ارسال شده برمی گرداند.
  • متد getLocation() در کلاس MediationAdConfiguration که مکان کاربر را برمی‌گرداند، اگر توسط AdRequest تعریف شده باشد.

داده‌های مکان توسط Google برای هدف‌یابی تبلیغات استفاده نمی‌شود. در صورت نیاز باید از API های شخص ثالث برای ارائه اطلاعات به شبکه های تبلیغاتی شخص ثالث استفاده کنید.

منسوخ شدن رابط های رویداد سفارشی

رویدادهای سفارشی ناشران را با استفاده از میانجیگری AdMobقادر می‌سازند تا میانجی‌گری آبشاری را برای یک شبکه تبلیغاتی که یکی از شبکه‌های تبلیغاتی پشتیبانی‌شده AdMobنیست، اضافه کنند.

تمام رابط های رویداد سفارشی به نفع کلاس Adapter و رابط MediationAdLoadCallback منسوخ شده اند.

جدول زیر کلاس یا رابط مربوطه را فهرست می کند که باید برای هر رابط رویداد سفارشی از نسخه 21.0.0 استفاده شود:

رابط های v20.0.0 v21.0.0 کلاس/رابط
رویداد سفارشی آداپتور
CustomEventBanner
CustomEventInterstitial
CustomEventNative
CustomEventBannerListener آداپتور ، MediationAdLoadCallback
CustomEventInterstitialListener
CustomEventListener
CustomEventNativeListener

از نسخه 19 به نسخه 20 مهاجرت کنید

در نسخه 20.0.0 تغییرات زیادی وجود دارد. نسخه 19.7.0 بسیاری از API های جدید را معرفی کرد و بسیاری از کلاس ها را برای آماده سازی نسخه 20.0.0 منسوخ یا تغییر نام داد. این راهنما تغییرات عمده در نسخه 20.0.0 را برجسته می کند.

به روز رسانی API با فرمت تمام صفحه

با شروع نسخه 20.0.0، قالب‌های تبلیغاتی بینابینی، با پاداش، پاداش‌دهی شده و برنامه Open برای پیروی از یک طراحی API سازگار استاندارد شده‌اند.

همه APIهای فرمت تمام صفحه از اصول زیر استفاده می کنند:

  • یک روش بار استاتیک
  • یک مکانیسم بازخوانی یا کنترل کننده بار مشابه
  • برای فراخوانی ارائه به کلاس FullScreenContentCallback تکیه کنید

حذف API Legacy RewardedVideoAd

API جدیدتر RewardedAd برای اولین بار در مارس 2019 معرفی شد و برای بیش از 18 ماه بهترین API پاداش دار بوده است. در مقایسه با RewardedVideoAd API قدیمی، پیشرفت‌های بیشتری داشته است، از جمله توانایی بارگیری بیش از یک آگهی پاداش در یک زمان.

API قدیمی RewardedVideoAd در SDK نسخه 20.0.0 حذف شده است.

منسوخ شدن بنر هوشمند به نفع بنر تطبیقی

تبلیغات بنری هوشمند به نفع تبلیغات بنری تطبیقی ​​منسوخ شده است. بنرهای تطبیقی ​​عملکرد برتر و انعطاف پذیری بیشتری را در تنظیم عرض آگهی ارائه می دهند. اگر ترجیح می دهید به استفاده از بنرهای تمام عرض ادامه دهید، همچنان می توان با استفاده از بنر تطبیقی، همانطور که در قطعه کد زیر نشان داده شده است، این کار را انجام داد:

جاوا

public class MyActivity extends AppCompatActivity {
  ...
  private AdSize getFullWidthAdaptiveSize() {
    Display display = getWindowManager().getDefaultDisplay();
    DisplayMetrics outMetrics = new DisplayMetrics();
    display.getMetrics(outMetrics);

    float widthPixels = outMetrics.widthPixels;
    float density = outMetrics.density;

    int adWidth = (int) (widthPixels / density);
    return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
  }
}

کاتلین

class MyActivity : AppCompatActivity() {
  ...
  private val adaptiveAdSize: AdSize
    get() {
      val display = windowManager.defaultDisplay
      val outMetrics = DisplayMetrics()
      display.getMetrics(outMetrics)

      val density = outMetrics.density

      var adWidthPixels = ad_view_container.width.toFloat()
      if (adWidthPixels == 0f) {
        adWidthPixels = outMetrics.widthPixels.toFloat()
      }

      val adWidth = (adWidthPixels / density).toInt()
      return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
    }
}

حذف پاسخ تماس برنامه را ترک کنید

پاسخ تماس onAdLeftApplication برای همه قالب‌های تبلیغاتی به نفع ProcessLifecycleOwner حذف شده است. استفاده از API در سطح سیستم عامل، هر زمان که کاربران برنامه شما را ترک کنند، صرف نظر از اینکه به دلیل تعامل تبلیغاتی باشد یا نه، به شما اطلاع می دهد.

توجه داشته باشید که پاسخ تماس onAdLeftApplication هرگز به عنوان یک کنترل کننده کلیک بر روی تبلیغات در نظر گرفته نشده است و تکیه بر این پاسخ تماس برای گزارش کلیک‌ها معیار دقیقی ایجاد نمی‌کند. به عنوان مثال، با کلیک بر روی نماد AdChoices که یک مرورگر خارجی را راه‌اندازی می‌کند، پاسخ تماس را فراخوانی می‌کند اما به عنوان یک کلیک حساب نمی‌شود.

تغییر نام کلاس ها

جدول زیر نام کلاس های خاصی را که تغییر کرده یا حذف شده اند فهرست می کند. به طور خلاصه:

  • اکثر کلاس های مربوط به UnifiedNativeAd به NativeAd تغییر نام داده اند.
  • کلاس‌ها و نماهای MobileAds.Settings ، NativeExpressAdView ، NativeAppInstallAd ، NativeContentAd ، و InstreamAd حذف شده‌اند.
  • همه کلاس های دارای پیشوند Publisher با پیشوند AdManager جایگزین شده اند.
  • نام بسته InterstitialAd تغییر کرده است.
کلاس 19.5.0 کلاس 20.0.0
com.google.android.gms.ads. com.google.android.gms.ads.
Reward.RewardedVideoAd rewarded.RewardedAd
Reward.RewardedVideoAdListener Rewarded.RewardedAdLoadCallback و FullScreenContentCallback
Reward.RewardItem Rewarded.RewardItem
rewarded.RewardedAdCallback OnUserEarnedRewardListener
formats.UnifiedNativeAdView nativead.NativeAdView
formats.UnifiedNativeAd nativead.NativeAd
formats.UnifiedNativeAdAssetNames Nativead.NativeAdAssetNames
formats.UnifiedNativeAd.OnUnifiedNativeAdLoadedListener nativead.NativeAd.OnNativeAdLoadedListener
formats.AdChoicesView nativead.AdChoicesView
formats.NativeAd.AdChoicesInfo nativead.NativeAd.AdChoicesInfo
formats.MediaView nativead.MediaView
formats.NativeAdViewHolder Nativead.NativeAdViewHolder
formats.NativeAdOptions nativead.NativeAdOptions
formats.NativeCustomTemplateAd nativead.NativeCustomFormatAd
formats.NativeCustomTemplateAd.OnCustomTemplateAdLoadedListener Nativead.NativeCustomFormatAd .OnCustomFormatAdLoadedListener
MobileAds.Settings حذف شده
doubleclick.PublisherAdRequest admanager.AdManagerAdRequest
doubleclick.PublisherAdView admanager.AdManagerAdView
formats.PublisherAdViewOptions formats.AdManagerAdViewOptions
doubleclick.PublisherInterstitialAd admanager.AdManagerInterstitialAd
تبلیغات بینابینی بینابینی.InterstitialAd
NativeExpressAdView حذف شده
instream.InstreamAd حذف شده
mediation.admob.AdMobExtras حذف شده
همبسته حذف شده
Search.SearchAdRequest حذف شده
رابط AdRequest.TagForUnderAgeOfConsent حذف شده
رابط AdRequest.MaxAdContentRating حذف شده
formats.NativeAppInstallAd Native.NativeAd
formats.NativeAppInstallAdView native.NativeAdView
mediation.NativeAppInstallAdMapper mediation.UnifiedNativeAdMapper
formats.NativeContentAd Native.NativeAd
formats.NativeContentAdView native.NativeAdView
mediation.NativeContentAdMapper mediation.UnifiedNativeAdMapper

روش‌ها حذف/جایگزین شدند

جدول زیر تغییرات خاص نسخه 20.0.0 را فهرست می کند. به طور خلاصه:

  • روش های منسوخ اولیه از کلاس MobileAds حذف شده اند.
  • برخی از متدها از کلاس AdRequest.Builder() حذف شده اند یا به کلاس RequestConfiguration منتقل شده اند.
  • API های RewardedAd و InterstitialAd به روز شده اند تا با تمام قالب های تمام صفحه هماهنگ شوند.
  • ویژگی های همبسته حذف شده است.
کلاس v19.5.0 API v20.0.0 API یادداشت
AdSize getPortraitBanner AdSizeWithWidth() getPortraitAnchored AdaptiveBannerAdSize()
getLandscapeBanner AdSizeWithWidth() getLandscapeAnchored AdaptiveBannerAdSize()
getCurrentOrientation BannerAdSizeWithWidth() getCurrentOrientationAnchored AdaptiveBannerAdSize()
تبلیغات موبایلی مقداردهی اولیه (زمینه، رشته) MobileAds.initialize(Context، OnInitializationComplete Liner) شناسه برنامه اکنون در AndroidManifest.xml تنظیم شده است.
مقداردهی اولیه (Context، String، MobileAds.Settings) مقداردهی اولیه (Context، OnInitializationComplete Lister) کلاس تنظیمات منسوخ شده است.
getRewardedVideo AdInstance() حذف شده به جای آن از RewardedAd API استفاده کنید.
AdListener onAdFailedToLoad(int) onAd FailedToLoad (LoadAdError)
onAdLeftApplication() حذف شده قالب‌های تبلیغات تمام‌صفحه از FullscreenContentCallback به جای AdListener استفاده می‌کنند و هیچ روش مشابهی در FullscreenContentCallback وجود ندارد. این روش از AdListener حذف شده است.
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest getGender() حذف شده
getBirthday() حذف شده
getNetworkExtras() حذف شده
setManualImpressions فعال شد() حذف شده
updateCorrelator() حذف شده فیلتر کردن محتوای آگهی را ببینید.
AdRequest.Builder setBirthday() حذف شده
setGender() حذف شده
setIsDesignedForFamilies() حذف شده راهنما را ببینید.
addTestDevice() RequestConfiguration .Builder .setTestDeviceIds() فعال کردن تبلیغات آزمایشی را ببینید.
tagForChildDirectedTreatment() RequestConfiguration .Builder.setTagFor ChildDirectedTreatment() فیلتر کردن محتوای آگهی را ببینید.
setTagFor UnderAgeOfConsent() RequestConfiguration .Builder.setTagFor UnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration .Builder .setMaxAdContentRating()
AdView getMediationAdapter ClassName() ResponseInfo .getMediationAdapter ClassName() یک شی ResponseInfo اکنون از طریق متد AdView ()getResponseInfo در دسترس است.
NativeAdOptions setImageOrientation() setMediaAspectRatio()
getImageOrientation getMediaAspectRatio()
Rewarded Ad loadAd (AdRequest، RewardedAdLoadCallback) RewardedAd.load (Context، رشته، AdRequest، RewardedAdLoadCallback) RewardedAd اکنون از همان رویکرد بارگذاری ثابت مانند سایر قالب‌های تمام صفحه استفاده می‌کند.
loadAd (PublisherAdRequest، RewardedAdLoadCallback) RewardedAd.load (Context، String، AdManagerAdRequest، RewardedAdLoadCallback)
isLoaded() حذف شده فراخوانی از روش بارگذاری استاتیک، تبلیغی را ارائه می دهد که قبلاً بارگذاری شده است.
نمایش (فعالیت، RewardedAdCallback) نمایش (فعالیت، OnUserEarnedRewardListener) این روش نمایش به رویکرد گسترده تر قالب تمام صفحه پایبند است.
RewardedAdLoadCallback onRewardedAd FailedToLoad(int) onAd FailedToLoad (LoadAdError)
onRewardedAd FailedToLoad (LoadAdError) onAd FailedToLoad (LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAd FailedToLoad(int) onAd FailedToLoad (LoadAdError)
onAppOpenAd FailedToLoad (LoadAdError) onAd FailedToLoad (LoadAdError)
onAppOpenAd بارگیری شد (AppOpenAd) onAdLoaded (AppOpenAd)
RewardedInterstitialAdLoad Callback onRewardedInterstitialAd FailedToLoad(int) onAd FailedToLoad (LoadAdError)
onRewardedInterstitialAd FailedToLoad(LoadAdError) onAd FailedToLoad (LoadAdError)
onRewardedInterstitialAd Loaded(RewardedInterstitialAd) onAd Loaded (RewardedInterstitialAd)
InterstitialAd جدید InterstitialAd() InterstitialAd.load(Context، String، AdRequest، InterstitialAdLoadCallback) InterstitialAd اکنون از همان رویکرد بارگذاری ثابت مانند سایر فرمت های تمام صفحه استفاده می کند.
setAdListener()
درخواست تبلیغ DynamicHeightSearch getNetworkExtras() حذف شده کلاس NetworkExtras منسوخ شده است.
AdLoader forContentAd() حذف شده
forAppInstallAd() حذف شده
withCorrelator() حذف شده
getMediationAdapter ClassName() حذف شده