این صفحه مهاجرت های نسخه فعلی و قبلی را پوشش می دهد.
از نسخه 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 در مورد امنیت صفر مراجعه کنید).
حذف متد 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 استفاده شود:
از نسخه 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 پاداش دار بوده است. در مقایسه با API قدیمی RewardedVideoAd
، پیشرفتهای بیشتری داشته است، از جمله توانایی بارگیری بیش از یک آگهی با پاداش در یک زمان.
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.سازنده | 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() | حذف شد |