نقل حزمة تطوير البرامج (SDK)

تتناول هذه الصفحة عمليات نقل البيانات للإصدارات الحالية والسابقة.

نقل البيانات من الإصدار 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 مهايئ، MediationAdLoadCallback
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.OnCustomTemplateAdLoadedListener Nativead.NativeCustomFormatAd.OnCustomFormatAdLoadedListener
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 getPortraitBannerAdSizeWithHeight() getPortraitAnchoredAdaptiveBannerAdSize()
getscapeBannerAdSizeWith width() getأفقي ارتساءAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithHeight() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds تهيئة(السياق، السلسلة) MobileAds.initialize(Context, OnInitializationCompleteListener) يتم الآن ضبط رقم تعريف التطبيق في AndroidManifest.xml.
تهيئة(السياق، السلسلة، إعدادات الجوال) تهيئة(Context, OnInitializationCompleteListener) تم إيقاف فئة "الإعدادات" نهائيًا.
getمكافأة الفيديوAdInstance() تمت الإزالة يمكنك استخدام واجهة برمجة التطبيقات BonusedAd API بدلاً من ذلك.
AdListener onAdFailedToLoad(int) onAdتعذَّر تحميل(LoadAdError)
onAdLeftApplication() تمت الإزالة تستخدم أشكال الإعلانات بملء الشاشة ميزة FullscreenContentCallback بدلاً من AdListener، ولا تتوفر طريقة مكافئة في FullscreenContentCallback. تمت إزالة الطريقة من AdListener.
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest getGender() تمت الإزالة
getBirthday() تمت الإزالة
getNetworkExtras() تمت الإزالة
setيدوي ومرات الظهورمفعّلة() تمت الإزالة
updateCorrelator() تمت الإزالة اطّلِع على فلترة محتوى الإعلان.
AdRequest.Builder setBirthday() تمت الإزالة
setGender() تمت الإزالة
setIsDesignedForFamilies() تمت الإزالة يمكنك الاطّلاع على الدليل.
addTestDevice() RequestConfiguration.Builder.setTestDeviceIds() اطّلِع على تفعيل الإعلانات الاختبارية.
tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectionTreatment() اطّلِع على فلترة محتوى الإعلان.
setTagForUnderAgeOfConsent() RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration.Builder.setMaxAdContentRating()
AdView getMediationAdapterClassName() ResponseInfo.getMediationAdapterClassName() عنصر 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تعذّر تحميله(int) onAdتعذَّر تحميل(LoadAdError)
onBonusedAdتعذّر تحميل(LoadAdError) onAdتعذَّر تحميل(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdتعذّر تحميل المحتوى(int) onAdتعذَّر تحميل(LoadAdError)
onAppOpenAdتعذَّر تحميل(LoadAdError) onAdتعذَّر تحميل(LoadAdError)
onAppOpenAdتم تحميله(AppOpenAd) onAdLoaded(AppOpenAd)
الإعلانات البينية التي تضم مكافأةمعاودة الاتصال onمكافأة الإعلانات البينيةتعذّر تحميلها(int) onAdتعذَّر تحميل(LoadAdError)
onBonusedMonetizeAdتعذّر تحميل(LoadAdError) onAdتعذَّر تحميل(LoadAdError)
onمكافأة الإعلان البينيةتم تحميله(إعلان بيني بمكافأة) onAdتم تحميله(إعلان بيني يضم مكافأة)
InterstitialAd جديد InterstitialAd() بينيAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) يستخدم الإعلان البيني الآن أسلوب التحميل الثابت نفسه الذي تستخدمه أشكال الإعلانات الأخرى بملء الشاشة.
setAdListener()
طلب DynamicHeightSearchAd getNetworkExtras() تمت الإزالة تم إيقاف فئة NetworkExtras نهائيًا.
AdLoader forContentAd() تمت الإزالة
forAppInstallAd() تمت الإزالة
withCorrelator() تمت الإزالة
getMediationAdapterClassName() تمت الإزالة