این صفحه مهاجرت های نسخه فعلی و قبلی را پوشش می دهد.
از نسخه 23 به نسخه 24 مهاجرت کنید
بخشهای فرعی زیر تغییرات اساسی و تفاوتهای رفتاری بین نسخه اصلی 23 و 24 Google Mobile Ads SDK را توضیح میدهند.
حداقل سطح API اندروید 23 است
با شروع نسخه 24.0.0، Google Mobile Ads SDK به همه برنامهها نیاز دارد که در حداقل سطح Android API 23 اجرا شوند. برای تنظیم سطح API، مقدار minSdk
را در فایل build.gradle
سطح برنامه خود به 23 یا بالاتر تغییر دهید.
تغییرات بهینه سازی اولیه و بارگذاری
بهطور پیشفرض، پرچمهای OPTIMIZE_INITIALIZATION
و OPTIMIZE_AD_LOADING
روی true
تنظیم شدهاند. برای اطلاعات بیشتر در مورد این پرچم ها، بهینه سازی مقداردهی اولیه و بارگذاری را ببینید.
وابستگی های firebase-ads و firebase-ads-lite حذف شد
با شروع نسخه 24.0.0، نسخه های SDK دیگر وابستگی های firebase-ads
و firebase-ads-lite
را توزیع نمی کنند. به جای آن از وابستگی play-services-ads
استفاده کنید.
APIهای جهتگیری منسوخ شده برای تبلیغات باز برنامه حذف شدند
- متدهای
AppOpenAd.load()
که پارامتر ورودی جهت را می پذیرند حذف شد. از متدهایAppOpenAd.load()
استفاده کنید که جهت گیری ندارند. - فهرست
AppOpenAdOrientation
حذف شد.
پاسخگویی پاداش ساده برای آداپتورهای واسطه
نسخه 24.0.0 پاسخ تماس onUserEarnedReward()
را در MediationRewardedAdCallback
اضافه می کند و onUserEarnedReward(RewardItem)
منسوخ می کند. آداپتورهای میانجی باید زمانی که کاربر پاداشی دریافت می کند، onUserEarnedReward()
را فراخوانی کنند.
هنگام بازارسال تماسهای برگشتی از آداپتورهای میانجی، همه نسخههای Google Mobile Ads SDK پاداش تعریفشده در رابط کاربری AdMob در OnUserEarnedRewardListener
را برمیگردانند.
کلاس ها حذف شدند
کلاس های زیر بدون جایگزینی حذف شدند:
-
DynamicHeightSearchAdRequest
-
SearchAdRequest
-
SearchAdView
روش ها حذف شد
روش های زیر بدون جایگزینی حذف شدند:
کلاس | روش |
---|---|
RewardedInterstitialAdLoadCallback | onRewardedInterstitialAdLoaded() |
onRewardedInterstitialAdFailedToLoad(int) | |
onRewardedInterstitialAdFailedToLoad(LoadAdError) |
روش های منسوخ شده
روش های زیر بدون جایگزینی منسوخ شده اند:
کلاس | روش |
---|---|
آداپتور | loadInterscrollerAd() |
RtbAdapter | loadRtbInterscrollerAd() |
از نسخه 22 به نسخه 23 مهاجرت کنید
بخشهای فرعی زیر تغییرات اساسی و تفاوتهای رفتاری بین نسخه اصلی 22 و 23 Google Mobile Ads SDK را شرح میدهند.
حداقل سطح 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 مهاجرت کنید
بخشهای فرعی زیر تغییرات اساسی و تفاوتهای رفتاری بین نسخه اصلی 21 و 22 Google Mobile Ads SDK را توضیح میدهند.
از 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 مهاجرت کنید
بخشهای فرعی زیر تغییرات اساسی و تفاوتهای رفتاری بین نسخه اصلی 20 و 21 Google Mobile Ads SDK را شرح میدهند:
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 Mediation استفاده میکنند تا منبع آگهی آبشاری را راهاندازی کنند که یکی از منابع تبلیغاتی پشتیبانیشده 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.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.load(Context، String، AdRequest، InterstitialAdLoadCallback) | InterstitialAd اکنون از همان رویکرد بارگذاری ثابت مانند سایر فرمت های تمام صفحه استفاده می کند. |
setAdListener() | |||
درخواست تبلیغ DynamicHeightSearch | getNetworkExtras() | حذف شد | کلاس NetworkExtras منسوخ شده است. |
AdLoader | forContentAd() | حذف شد | |
forAppInstallAd() | حذف شد | ||
withCorrelator() | حذف شد | ||
getMediationAdapter ClassName() | حذف شد |
این صفحه مهاجرت های نسخه فعلی و قبلی را پوشش می دهد.
از نسخه 23 به نسخه 24 مهاجرت کنید
بخشهای فرعی زیر تغییرات اساسی و تفاوتهای رفتاری بین نسخه اصلی 23 و 24 Google Mobile Ads SDK را توضیح میدهند.
حداقل سطح API اندروید 23 است
با شروع نسخه 24.0.0، Google Mobile Ads SDK به همه برنامهها نیاز دارد که در حداقل سطح Android API 23 اجرا شوند. برای تنظیم سطح API، مقدار minSdk
را در فایل build.gradle
سطح برنامه خود به 23 یا بالاتر تغییر دهید.
تغییرات بهینه سازی اولیه و بارگذاری
بهطور پیشفرض، پرچمهای OPTIMIZE_INITIALIZATION
و OPTIMIZE_AD_LOADING
روی true
تنظیم شدهاند. برای اطلاعات بیشتر در مورد این پرچم ها، بهینه سازی مقداردهی اولیه و بارگذاری را ببینید.
وابستگی های firebase-ads و firebase-ads-lite حذف شد
با شروع نسخه 24.0.0، نسخه های SDK دیگر وابستگی های firebase-ads
و firebase-ads-lite
را توزیع نمی کنند. به جای آن از وابستگی play-services-ads
استفاده کنید.
APIهای جهتگیری منسوخ شده برای تبلیغات باز برنامه حذف شدند
- متدهای
AppOpenAd.load()
که یک پارامتر ورودی جهت را می پذیرند حذف شد. از متدهایAppOpenAd.load()
استفاده کنید که جهت گیری ندارند. - فهرست
AppOpenAdOrientation
حذف شد.
پاسخگویی پاداش ساده برای آداپتورهای واسطه
نسخه 24.0.0 پاسخ تماس onUserEarnedReward()
را در MediationRewardedAdCallback
اضافه می کند و onUserEarnedReward(RewardItem)
منسوخ می کند. آداپتورهای میانجی باید زمانی که کاربر پاداشی دریافت می کند، onUserEarnedReward()
را فراخوانی کنند.
هنگام بازارسال تماسهای برگشتی از آداپتورهای میانجی، همه نسخههای Google Mobile Ads SDK پاداش تعریفشده در رابط کاربری AdMob در OnUserEarnedRewardListener
را برمیگردانند.
کلاس ها حذف شدند
کلاس های زیر بدون جایگزینی حذف شدند:
-
DynamicHeightSearchAdRequest
-
SearchAdRequest
-
SearchAdView
روش ها حذف شد
روش های زیر بدون جایگزینی حذف شدند:
کلاس | روش |
---|---|
RewardedInterstitialAdLoadCallback | onRewardedInterstitialAdLoaded() |
onRewardedInterstitialAdFailedToLoad(int) | |
onRewardedInterstitialAdFailedToLoad(LoadAdError) |
روش های منسوخ شده
روش های زیر بدون جایگزینی منسوخ شده اند:
کلاس | روش |
---|---|
آداپتور | loadInterscrollerAd() |
RtbAdapter | loadRtbInterscrollerAd() |
از نسخه 22 به نسخه 23 مهاجرت کنید
بخشهای فرعی زیر تغییرات اساسی و تفاوتهای رفتاری بین نسخه اصلی 22 و 23 Google Mobile Ads SDK را شرح میدهند.
حداقل سطح 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 مهاجرت کنید
بخشهای فرعی زیر تغییرات اساسی و تفاوتهای رفتاری بین نسخه اصلی 21 و 22 Google Mobile Ads SDK را توضیح میدهند.
از 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 مهاجرت کنید
بخشهای فرعی زیر تغییرات اساسی و تفاوتهای رفتاری بین نسخه اصلی 20 و 21 Google Mobile Ads SDK را شرح میدهند:
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 Mediation استفاده میکنند تا منبع آگهی آبشاری را راهاندازی کنند که یکی از منابع تبلیغاتی پشتیبانیشده 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.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.load(Context، String، AdRequest، InterstitialAdLoadCallback) | InterstitialAd اکنون از همان رویکرد بارگذاری ثابت مانند سایر فرمت های تمام صفحه استفاده می کند. |
setAdListener() | |||
درخواست تبلیغ DynamicHeightSearch | getNetworkExtras() | حذف شد | کلاس NetworkExtras منسوخ شده است. |
AdLoader | forContentAd() | حذف شد | |
forAppInstallAd() | حذف شد | ||
withCorrelator() | حذف شد | ||
getMediationAdapter ClassName() | حذف شد |