تتناول هذه الصفحة عمليات نقل البيانات للإصدارات الحالية والسابقة.
نقل البيانات من الإصدار 22 إلى الإصدار 23
الحد الأدنى لمستوى واجهة برمجة تطبيقات Android هو 21.
بدءًا من الإصدار 23.0.0، تتطلب حزمة SDK لإعلانات Google على الأجهزة الجوّالة أن تكون كل التطبيقات
على المستوى 21 من واجهة برمجة تطبيقات Android كحد أدنى لتشغيله. لضبط مستوى واجهة برمجة التطبيقات، يمكنك تغيير
minSdkVersion
في ملف build.gradle
على مستوى التطبيق إلى 21 أو أعلى.
يمكن ربط AdManagerAdRequest.Builder
طريقة مكتسبة من الفئة الفائقة
في الإصدار 23.0.0، AdManagerAdRequest.Builder
والموروثة من مصدرها الأصلي يمكن ربطها ببعضها البعض لإنشاء
AdManagerAdRequest
باستخدام مكالمة واحدة:
Java
AdManagerAdRequest request = new AdManagerAdRequest.Builder() .addCustomTargeting("age", "25") // AdManagerAdRequest.Builder method. .setContentUrl("https://www.example.com") // Method inherited from parent. .build(); // Builds an AdManagerAdRequest.
Kotlin
var request = AdManagerAdRequest.Builder() .addCustomTargeting("age", "25") // AdManagerAdRequest.Builder method. .setContentUrl("https://www.example.com") // Method inherited from parent. .build() // Builds an AdManagerAdRequest.
إزالة/استبدال الطرق التي تم إيقافها نهائيًا
الإصدار 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
لمزيد من المعلومات حول هذا التغيير، راجع استخدام تطبيق Google للجوّال الجديد
حزمة تطوير البرامج (SDK) للإعلانات getVersion()
.
إزالة NativeCustomFormatAd.getVideoMediaView() المتوقّف نهائيًا
في الإصدار 21، قدّمت لك حزمة "SDK لإعلانات Google على الأجهزة الجوّالة"
طريقة NativeCustomFormatAd.getVideoMediaView()
للحصول على مادة عرض الوسائط
شكل الإعلان المدمج مع المحتوى.
بدءًا من الإصدار 22، ستنشئ "MediaView
" وتضبط الوسائط الخاصة به.
والمحتوى واستخدام
MediaContent.getVideoController()
للحصول على عناصر التحكّم في الفيديو
v22
// Called when a custom native ad loads. @Override public void onCustomFormatAdLoaded(NativeCustomFormatAd ad) { // Assumes you have a FrameLayout in your view hierarchy with the id media_placeholder. FrameLayout mediaPlaceholder = (FrameLayout) findViewById(R.id.media_placeholder); MediaContent mediaContent = ad.getMediaContent(); if (mediaContent != null && mediaContent.hasVideoContent()) { // Create a MediaView and set its media content. MediaView mediaView = new MediaView(mediaPlaceholder.getContext()); mediaView.setMediaContent(mediaContent); mediaPlaceholder.addView(mediaView); } }
v21
// Called when a custom native ad loads. @Override public void onCustomFormatAdLoaded(NativeCustomFormatAd ad) { // Assumes you have a FrameLayout in your view hierarchy with the id media_placeholder. FrameLayout mediaPlaceholder = (FrameLayout) findViewById(R.id.media_placeholder); VideoController videoController = ad.getVideoController(); if (videoController.hasVideoContent()) { // Add the media view provided by the native ad. mediaPlaceholder.addView(ad.getVideoMediaView()); } }
الاطلاع على الإعلان المدمج مع المحتوى الإعلان للحصول على المزيد من المعلومات.
الطرق التي تمت إزالتها أو استبدالها
يسرد الجدول التالي التغييرات المحددة في الإصدار 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 على
إعدادات خالية من الأمان
).
إزالة طريقة 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 بيانات الموقع الجغرافي لاستهداف الإعلانات. يجب عليك استخدام واجهات برمجة التطبيقات التابعة لجهات خارجية لتوفير المعلومات إلى شبكات الإعلانات التابعة لجهات خارجية إذا مطلوبة.
إيقاف واجهات الأحداث المخصّصة نهائيًا
تمكّن الأحداث المخصّصة الناشرين الذين يستخدمون التوسّط لإعداد مصدر إعلانات للعرض بدون انقطاع واحد من Ad Manager مصادر الإعلانات المتوافقة
جميع العناصر المخصصة
فعالية
يتم إيقاف الواجهات لصالح
Adapter
الفئة
MediationAdLoadCallback
من واجهة pyplot.
يسرد الجدول أدناه الفئة أو الواجهة المقابلة التي يجب استخدامها لكل واجهة حدث مخصّص بدءًا من الإصدار 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 |
formats.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 | تمت الإزالة |
Correlator | تمت الإزالة |
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 من واجهة برمجة التطبيقات | ملاحظات |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | تهيئة(السياق، السلسلة) | MobileAds.initialize(Context, OnInitializationComplete |
يتم الآن ضبط رقم تعريف التطبيق في AndroidManifest.xml. |
تهيئة(السياق، السلسلة، إعدادات الجوال) | تهيئة(Context, OnInitializationComplete |
تم إيقاف فئة "الإعدادات" نهائيًا. | |
getRewardedVideo |
تمت الإزالة | يمكنك استخدام واجهة برمجة التطبيقات BonusedAd API بدلاً من ذلك. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | تمت الإزالة | تستخدم أشكال إعلانات ملء الشاشة ميزة FullscreenContentCallback بدلاً من AdListener، ولا تتوفّر طريقة مكافئة على FullscreenContentCallback. تشير رسالة الأشكال البيانية من AdListener. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
PublisherAdRequest | getGender() | تمت الإزالة | |
getBirthday() | تمت الإزالة | ||
getNetworkExtras() | تمت الإزالة | ||
setManualImpressions |
تمت الإزالة | ||
updateCorrelator() | تمت الإزالة | عرض فلترة محتوى الإعلان: | |
PublisherAdRequest.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, OnUserLearnedREWARDListener) | تتوافق طريقة العرض هذه مع نهج تنسيق ملء الشاشة الأوسع نطاقًا. | |
RewardedAdLoadCallback | onRewardedAd |
onAd |
|
onRewardedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
RewardedInterstitialAdLoad |
onRewardedInterstitialAd |
onAd |
|
onRewardedInterstitialAd |
onAd |
||
onRewardedInterstitialAd |
onAd |
||
PublisherInterstitialAd | new PublisherInterstitialAd() | بينيAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) | يستخدم الإعلان البيني الآن أسلوب التحميل الثابت نفسه الذي يتم استخدامه بتنسيقات أخرى بملء الشاشة. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | تمت الإزالة | تم إيقاف فئة NetworkExtras نهائيًا. |
AdLoader | forContentAd() | تمت الإزالة | |
forAppInstallAd() | تمت الإزالة | ||
withCorrelator() | تمت الإزالة | ||
getMediationAdapter |
تمت الإزالة |