تتناول هذه الصفحة عمليات نقل البيانات للإصدارات الحالية والسابقة.
نقل البيانات من الإصدار 22 إلى الإصدار 23
الحد الأدنى لمستوى واجهة برمجة تطبيقات Android هو 21.
بدءًا من الإصدار 23.0.0، تتطلّب حزمة "SDK لإعلانات Google على الأجهزة الجوّالة" أن تستخدم جميع التطبيقات المستوى 21 من واجهة برمجة تطبيقات Android كحد أدنى للتشغيل. لضبط مستوى واجهة برمجة التطبيقات، غيِّر قيمة minSdkVersion
في ملف build.gradle
على مستوى التطبيق إلى 21 أو أعلى.
إزالة/استبدال الطرق التي تم إيقافها نهائيًا
الإصدار 22.0.0 من واجهة برمجة التطبيقات | الإصدار 23.0.0 من واجهة برمجة التطبيقات |
---|---|
AdRequest.Builder.addTestDevice() | RequestConfiguration.Builder.setTestDeviceIds() |
AdRequest.Builder.tagForChildDirectedTreatment() | RequestConfiguration.Builder.setTagForChildDirectedTreatment() |
AdRequest.Builder.setIsDesignedForFamilies() | RequestConfiguration.Builder.setMaxAdContentRating() |
AdFormat.UNKNOWN | لا يوجد بديل |
AdLoader.Builder.forUnifiedNativeAd() | AdLoader.Builder.forNativeAd() |
AdLoader.Builder.forCustomTemplateAd() | AdLoader.Builder.forCustomFormatAd() |
AdLoader.Builder.withNativeAdOptions(com.google.android.gms.ads.formats .NativeAdOptions)
|
AdLoader.Builder.withNativeAdOptions(com.google.android.gms.ads.nativead .NativeAdOptions)
|
إلغاء MobileAds.setSameAppKeyEnabled() | boolean MobileAds.putPublisherFirstPartyIdEnabled() |
نقل البيانات من الإصدار 21 إلى الإصدار 22
استخدام MobileAds.getVersion() للحصول على إصدار "SDK لإعلانات Google على الأجهزة الجوّالة"
تمت إزالة طريقة MobileAds.getVersionString()
في الإصدار 22.0.0 لصالح
MobileAds.getVersion()
.
تعرض الطريقة الجديدة رقم الإصدار الخارجي المتوقع، على سبيل المثال 22.0.0
. للحصول على مزيد من المعلومات عن هذا التغيير، يُرجى الاطّلاع على استخدام طريقة getVersion() الجديدة
لحزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة.
الطرق التي تمت إزالتها أو استبدالها
يسرد الجدول التالي التغييرات المحددة في الإصدار 22.0.0.
v21.0.0 | v22.0.0 |
---|---|
MobileAds.getVersionString() | MobileAds.getVersion() |
NativeCustomFormatAd.getVideoMediaView() | NativeCustomFormatAd.getMediaContent() |
NativeCustomFormatAd.getVideoController() | NativeCustomFormatAd.getMediaContent().getVideoController() |
AdRequest.Builder.setAdInfo() | AdRequest.Builder.setAdString() |
MediationRewardedVideoAdAdapter | المحوّل |
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، تتطلّب حزمة "SDK لإعلانات Google على الأجهزة الجوّالة" أن تستخدم جميع التطبيقات المستوى 19 من واجهة برمجة تطبيقات Android كحد أدنى للتشغيل. لضبط مستوى واجهة برمجة التطبيقات، يمكنك تغيير قيمة minSdkVersion
في ملف إصدار تطبيقك إلى 19 أو أعلى.
فرض قابلية صارمة للقبول بالموافقة
في إطار الاستعداد لفرض قابلية تطبيق القيم الفارغة الصارمة، تتم إضافة تعليقات @NonNull
التوضيحية
في جميع واجهات برمجة التطبيقات التي لم تحدّد بشكل صريح قابلية القيم الفارغة في السابق.
قد يؤدي هذا التغيير إلى تعطُّل تطبيقات Kotlin والتطبيقات التي تستخدم إطارات عمل التحقّق من القيم الفارغة في Java إذا كانت هناك انتهاكات لأمان القيم الفارغة ولم تتعامل مع قيم null
بطريقة آمنة في السابق (يمكنك الاطّلاع على مستندات Kotlin حول
Null-safety
).
إزالة طريقة addNetworkExtras()
إنّ طريقة addNetworkExtras()
التي تمرر معلَمات إضافية
كمثيل NetworkExtras
لمحوّل شبكة إعلانات معيّنة تم إيقافها نهائيًا في الإصدار 20.3.0 من حزمة تطوير البرامج (SDK)
وستتم إزالتها في الإصدار 21.0.0. استخدِم الطريقة
addNetworkExtrasBundle()
من فئة AdRequest.Builder
نفسها بدلاً من ذلك.
إزالة طرق تحديد الموقع الجغرافي
في الإصدار 21.0.0، ستتم إزالة طرق المواقع الجغرافية التالية:
- هي طريقة
setLocation(Location location)
في الفئةAdRequest.Builder
التي تحدد موقع المستخدم الجغرافي لأغراض استهداف التوسط. - الطريقة
getLocation()
في الفئةAdRequest
التي تعرض معلومات الاستهداف حسب الموقع الجغرافي للمستخدم التي تم تمريرها سابقًا إلى طريقةsetLocation(Location location)
- تمثّل هذه السمة الطريقة
getLocation()
في الفئةMediationAdConfiguration
التي تعرض الموقع الجغرافي للمستخدم، إذا تم تحديده من خلالAdRequest
.
ولا تستخدم Google بيانات الموقع الجغرافي لاستهداف الإعلانات. ويجب استخدام واجهات برمجة التطبيقات التابعة لجهات خارجية لتوفير المعلومات لشبكات الإعلانات التابعة لجهات خارجية إذا لزم الأمر.
إيقاف واجهات الأحداث المخصّصة نهائيًا
تتيح الأحداث المخصّصة للناشرين الذين يستخدمون توسّط AdMob إعداد مصدر إعلانات للعرض بدون انقطاع ليس أحد مصادر الإعلانات المتوافقة مع AdMob.
يتم إيقاف جميع واجهات الأحداث
المخصصة
لصالح الفئة
Adapter
وواجهة
MediationAdLoadCallback
.
يسرد الجدول أدناه الفئة أو الواجهة المقابلة التي يجب استخدامها لكل واجهة حدث مخصّص بدءًا من الإصدار 21.0.0:
واجهات الإصدار 20.0.0 | الإصدار 21.0.0 الفئة/ الواجهة |
---|---|
CustomEvent | المحوّل |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
مهايئ،
|
CustomEventInterstitialListener | |
CustomEventListener | |
CustomEventNativeListener |
نقل البيانات من الإصدار 19 إلى الإصدار 20
هناك العديد من التغييرات التي قد تؤدي إلى أعطال في الإصدار 20.0.0. قدّم الإصدار 19.7.0 العديد من واجهات برمجة التطبيقات الجديدة، كما تم إيقاف العمل بالعديد من الفئات أو إعادة تسميتها استعدادًا للإصدار 20.0.0. يسلط هذا الدليل الضوء على التغييرات الرئيسية في الإصدار 20.0.0.
تحديثات واجهة برمجة التطبيقات لتنسيق ملء الشاشة
بدءًا من الإصدار 20.0.0، تم توحيد أشكال "الإعلانات البينية" و"الإعلانات البينية" و"الإعلانات التي تضم مكافأة" و"الإعلانات على شاشة فتح التطبيق" لاتّباع تصميم متسق لواجهة برمجة التطبيقات.
تستخدم جميع واجهات برمجة التطبيقات لتنسيق ملء الشاشة المبادئ التالية:
- طريقة التحميل الثابتة
- آلية مشابهة لرد الاتصال أو معالج التحميل
- الاعتماد على فئة
FullScreenContentCallback
لاستدعاءات العروض التقديمية
إزالة واجهة برمجة التطبيقات لإعلانات ودافيا من خلال الإعلانات القديمة
تمّ طرح واجهة برمجة التطبيقات
RewardedAd
الأحدث لأول مرة في آذار (مارس) 2019 وأصبحت واجهة برمجة التطبيقات
التي تضم مكافأة المفضّلة على مدار 18 شهرًا. وتضمّ هذه الواجهة المزيد من التحسينات مقارنةً بواجهة برمجة تطبيقات RewardedVideoAd
القديمة، بما في ذلك إمكانية تحميل أكثر من إعلان واحد يضم مكافأة في الوقت نفسه.
تمت إزالة واجهة برمجة التطبيقات RewardedVideoAd
القديمة في الإصدار 20.0.0 من حزمة تطوير البرامج (SDK).
إيقاف البانر الذكي نهائيًا لصالح إعلان البانر التكيُّفي
تم إيقاف إعلانات البانر الذكية بدلاً من إعلانات البانر التكيفية. توفّر إعلانات البانر التكيُّفية أداءً فائقًا ومرونة أكبر في ضبط عرض الإعلان. إذا كنت تفضّل مواصلة استخدام إعلانات البانر ذات العرض الكامل، لا يزال بإمكانك إجراء ذلك باستخدام إعلانات البانر التكيُّفية، كما هو موضّح في مقتطف الرمز التالي:
Java
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); } }
Kotlin
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
.
باستخدام واجهة برمجة تطبيقات على مستوى نظام التشغيل، يتم إرسال إشعار إليك عند خروج المستخدمين من تطبيقك، بغض النظر عمّا إذا كان ذلك بسبب تفاعل مع الإعلان أم لا.
تجدر الإشارة إلى أنّ معاودة الاتصال onAdLeftApplication
لم يكن الغرض منها أبدًا أن تكون معالجًا
للنقرات على الإعلانات، كما أن الاعتماد على هذه الاستدعاء لتسجيل النقرات لم ينتج عنه
مقياس دقيق. على سبيل المثال، أدّى النقر على رمز "خيارات الإعلان" الذي أدّى إلى تشغيل متصفّح خارجي إلى استدعاء معاودة الاتصال لكن لم يتم احتسابه كنقرة.
عمليات إعادة تسمية الصف
يسرد الجدول الوارد أدناه أسماء الفئات المحدّدة التي تم تغييرها أو إزالتها. باختصار:
- تمت إعادة تسمية معظم الصفوف ذات الصلة بـ "
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 | Rewards.BonusedAdLoadCallback و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 |
format.NativeCustomTemplateAd |
Nativead.NativeCustomFormatAd |
MobileAds.Settings | تمت الإزالة |
doubleclick.PublisherAdRequest | admanager.AdManagerAdRequest |
doubleclick.PublisherAdView | admanager.AdManagerAdView |
formats.PublisherAdViewOptions | formats.AdManagerAdViewOptions |
doubleclick.PublisherInterstitialAd | admanager.AdManagerInterstitialAd |
InterstitialAd | interstitial.InterstitialAd |
NativeExpressAdView | تمت الإزالة |
instream.InstreamAd | تمت الإزالة |
mediation.admob.AdMobExtras | تمت الإزالة |
الموصّل | تمت الإزالة |
search.SearchAdRequest | تمت الإزالة |
واجهة AdRequest.TagForAgeOfConsent | تمت الإزالة |
طلب واجهة المستخدم.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. باختصار:
- تمت إزالة طرق الإعداد القديمة من فئة إعلانات الأجهزة الجوّالة.
- وقد تمت إزالة بعض الطرق من الفئة
AdRequest.Builder()
أو نقلها إلى الفئةRequestConfiguration
. - تم تعديل واجهات برمجة التطبيقات للإعلانات التي تضم مكافأة وإعلانات بينية لتتوافق مع جميع أشكال الإعلانات التي تظهر بملء الشاشة.
- تمت إزالة الميزات الارتباطية.
دورات تدريبية | الإصدار 19.5.0 من واجهة برمجة التطبيقات | الإصدار 20.0.0 من واجهة برمجة التطبيقات | Notes |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getscapeBanner |
getأفقي ارتساء |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | تهيئة(السياق، السلسلة) | MobileAds.initialize(Context, OnInitializationComplete |
يتم الآن ضبط رقم تعريف التطبيق في AndroidManifest.xml. |
تهيئة(السياق، السلسلة، إعدادات الجوال) | تهيئة(Context, OnInitializationComplete |
تم إيقاف فئة "الإعدادات" نهائيًا. | |
getمكافأة الفيديو |
تمت الإزالة | يمكنك استخدام واجهة برمجة التطبيقات BonusedAd API بدلاً من ذلك. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | تمت الإزالة | تستخدم أشكال الإعلانات بملء الشاشة ميزة FullscreenContentCallback بدلاً من AdListener، ولا تتوفر طريقة مكافئة في FullscreenContentCallback. تمت إزالة الطريقة من AdListener. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | تمت الإزالة | |
getBirthday() | تمت الإزالة | ||
getNetworkExtras() | تمت الإزالة | ||
setيدوي ومرات الظهور |
تمت الإزالة | ||
updateCorrelator() | تمت الإزالة | اطّلِع على فلترة محتوى الإعلان. | |
AdRequest.Builder | setBirthday() | تمت الإزالة | |
setGender() | تمت الإزالة | ||
setIsDesignedForFamilies() | تمت الإزالة | يمكنك الاطّلاع على الدليل. | |
addTestDevice() | RequestConfiguration |
اطّلِع على تفعيل الإعلانات الاختبارية. | |
tagForChildDirectedTreatment() | RequestConfiguration |
اطّلِع على فلترة محتوى الإعلان. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
عنصر ResponseInfo متاح الآن عبر طريقة AdView()getResponseInfo. |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | uploadAd(AdRequest, BonusedAdLoadCallback) | BonusedAd.load(Context, String, AdRequest, ConversationedAdLoadCallback) | يستخدم الإعلان بمكافأة الآن نهج التحميل الثابت نفسه الذي تستخدمه أشكال الإعلانات الأخرى بملء الشاشة. |
loadAd(PublisherAdRequest, BonusedAdLoadCallback) | BonusedAd.load(Context, String, AdManagerAdRequest, BonusedAdLoadCallback) | ||
isLoaded() | تمت الإزالة | يوفر رد الاتصال من طريقة التحميل الثابت إعلانًا تم تحميله مسبقًا. | |
show(Activity, كافedAdCallback) | show(Activity, OnUserRevenueed RewardsListener) | تتوافق طريقة العرض هذه مع نهج تنسيق ملء الشاشة الأوسع نطاقًا. | |
RewardedAdLoadCallback | onBonusedAd |
onAd |
|
onBonusedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
الإعلانات البينية التي تضم مكافأة |
onمكافأة الإعلانات البينية |
onAd |
|
onBonusedMonetizeAd |
onAd |
||
onمكافأة الإعلان البينية |
onAd |
||
InterstitialAd | جديد InterstitialAd() | بينيAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) | يستخدم الإعلان البيني الآن أسلوب التحميل الثابت نفسه الذي تستخدمه أشكال الإعلانات الأخرى بملء الشاشة. |
setAdListener() | |||
طلب DynamicHeightSearchAd |
getNetworkExtras() | تمت الإزالة | تم إيقاف فئة NetworkExtras نهائيًا. |
AdLoader | forContentAd() | تمت الإزالة | |
forAppInstallAd() | تمت الإزالة | ||
withCorrelator() | تمت الإزالة | ||
getMediationAdapter |
تمت الإزالة |