בדף הזה מפורט על ההעברות לגרסה הנוכחית ולגרסה הקודמת.
מעבר מגרסה 22 לגרסה 23
רמת ה-API המינימלית ב-Android היא 21
החל מגרסה 23.0.0, כדי להפעיל את Google Mobile Ads SDK כל האפליקציות צריכות להיות ברמה 21 לפחות. כדי לשנות את רמת ה-API, צריך לשנות את הערך של minSdkVersion
בקובץ build.gradle
ברמת האפליקציה ל-21 ומעלה.
הוסרו/הוחלפו שיטות שהוצאו משימוש
ממשק API v22.0.0 | ממשק API v23.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)
|
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.
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, כדי להפעיל את Google Mobile Ads SDK כל האפליקציות צריכות להיות ברמה 19 לפחות. כדי לשנות את רמת ה-API, צריך לשנות את הערך של minSdkVersion
בקובץ ה-build של האפליקציה ל-19 ומעלה.
אכיפת ערך null מחמיר
כהכנה לאכיפה של יכולת nulle מחמירה, מתבצעת הוספה של הערות @NonNull
לכל ממשקי ה-API שלא הגדירו בעבר ערך null באופן מפורש.
אם יש הפרות בטיחות אפסיות ולא טופלו בעבר ערכים של null
באופן בטוח, יכול להיות שהשינוי הזה יגרום לאפליקציות ולאפליקציות ב-Kotlin שמשתמשות ב-Java null לבדיקת מסגרות (Null-safety) באופן בטוח).
הסרת השיטה addNetworkExtras()
השיטה addNetworkExtras()
שמעבירה פרמטרים נוספים כמופע NetworkExtras
למתאם ספציפי של רשת מודעות הוצאה משימוש בגרסת ה-SDK 20.3.0, והיא תוסר בגרסה 21.0.0. במקום זאת, צריך להשתמש ב-method addNetworkExtrasBundle()
מאותה מחלקה AdRequest.Builder
.
הסרה של שיטות מיקום
שיטות המיקום הבאות יוסרו בגרסה 21.0.0:
- השיטה
setLocation(Location location)
במחלקהAdRequest.Builder
שמגדירה את המיקום של המשתמש למטרות טירגוט של תהליך בחירת הרשת. - השיטה
getLocation()
במחלקהAdRequest
שמחזירה את פרטי הטירגוט למיקום גיאוגרפי של המשתמש שהועברו בעבר ל-methodsetLocation(Location location)
. - השיטה
getLocation()
במחלקהMediationAdConfiguration
שמחזירה את מיקום המשתמש, אם הוא מוגדר על ידיAdRequest
.
Google לא משתמשת בנתוני המיקום כדי לטרגט מודעות. במקרה הצורך, עליך להשתמש בממשקי API של צד שלישי כדי לספק את המידע לרשתות המודעות של צד שלישי.
הוצאה משימוש של ממשקים של אירועים מותאמים אישית
אירועים מותאמים אישית מאפשרים לבעלי אפליקציות שמשתמשים בתהליך בחירת הרשת (Mediation) AdMobלהוסיף את תהליך בחירת הרשת (Mediation) ב-Waterfall עבור רשת מודעות שאינה אחת מרשתות המודעות הנתמכות של 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, הפורמטים של מודעות מעברון, מודעות מתגמלות, מודעות מעברון מתגמלות ומודעות בפתיחת האפליקציה נקבעים לפי עיצוב אחיד של ה-API.
כל ממשקי ה-API בפורמט מסך מלא פועלים לפי העקרונות הבאים:
- שיטת טעינה סטטית
- מנגנון דומה של התקשרות חזרה או handler של טעינה
- הסתמכות על המחלקה
FullScreenContentCallback
לקריאות חוזרות (callback) של מצגת
הסרה מדור קודם של RewardVideoAd API
ה-API החדש יותר של
RewardedAd
הושק לראשונה במרץ 2019, והיה ה-API המתגמל המועדף במשך יותר מ-18 חודשים. יש בו יותר שיפורים בהשוואה ל-API הקודם של RewardedVideoAd
, כולל האפשרות לטעון יותר ממודעה מתגמלת אחת בכל פעם.
ה-API 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) } }
יציאה מהסרת קריאה חוזרת (callback) מהאפליקציה
הקריאה החוזרת (callback) onAdLeftApplication
לכל הפורמטים של המודעות הוסרה לטובת ProcessLifecycleOwner
.
כשמשתמשים ב-API ברמת מערכת ההפעלה, מקבלים התראה בכל פעם שמשתמשים עוזבים את האפליקציה, גם אם זה כתוצאה מאינטראקציה עם מודעה וגם אם לא.
שים לב שהקריאה החוזרת (callback) של onAdLeftApplication
מעולם לא הייתה אמורה לשמש כ-handler של קליקים על מודעות, והסתמכות על הקריאה החוזרת הזו לדיווח על קליקים לא הניבה מדד מדויק. לדוגמה, קליק על סמל 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 | תוגמלים.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 |
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.TagForByAgeOfConsent | הוסר/ה |
הממשק 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 של מודעות מתגמלות ושל מודעות מעברון עודכנו כך שיתאימו לכל הפורמטים של מסך מלא.
- הוסרו תכונות המתאם.
מחלקה | ממשק API v19.5.0 | ממשק API v20.0.0 | הערות |
---|---|---|---|
AdSize | getPortraitBanner |
getPortfolioanchored |
|
getExternalBanner |
getgroundanchored |
||
getCurrentOrientation |
getCurrentOrientationanchored |
||
MobileAds | אתחול(Context, String) | MobileAds.firstize(Context, OnInitializationComplete |
מזהה האפליקציה מוגדר עכשיו בקובץ AndroidManifest.xml. |
אתחול(Context, String, MobileAds.Settings) | אתחול(Context, OnInitializationComplete |
המחלקה 'הגדרות' הוצאה משימוש. | |
getZapierVideo |
הוסר/ה | במקום זאת, אפשר להשתמש ב-RewardAd API. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | הוסר/ה | פורמטים של מודעות במסך מלא משתמשים ב-FullscreenContentCallback במקום AdListener, ואין שיטה מקבילה ב-FullscreenContentCallback. השיטה הוסרה מ-AdListener. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | הוסר/ה | |
getBirthday() | הוסר/ה | ||
getNetworkExtras() | הוסר/ה | ||
setManualimpressions |
הוסר/ה | ||
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 | loadAd(AdRequest, RewardedAdLoadCallback) | ZapierAd.load(Context, String, AdRequest, RewardedAdLoadCallback) | עכשיו, במודעות מתגמלות נעשה שימוש באותה גישה של טעינה סטטית כמו פורמטים אחרים של מסך מלא. |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback) | ||
isLoaded() | הוסר/ה | הקריאה החוזרת משיטת הטעינה הסטטית מספקת מודעה שכבר נטענה. | |
הצגה(פעילות, RewardedAdCallback) | Show(Activity, OnUserProfitedRewardListener) | שיטת התוכנית הזו פועלת בהתאם לגישה הרחבה יותר של פורמט מסך מלא. | |
RewardedAdLoadCallback | onpaidAd |
onAd |
|
onRewardedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
קריאה חוזרת (callback) של מודעות מעברון מתגמלות |
onRewardedInterstitialAd |
onAd |
|
onRewardedInterstitialAd |
onAd |
||
onRewardedInterstitialAd |
onAd |
||
InterstitialAd | new InterstitialAd() | InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) | מודעות מעברון נוקטות עכשיו את אותה גישה של טעינה סטטית כמו פורמטים אחרים של מסך מלא. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | הוסר/ה | המחלקה NetworkExtras הוצאה משימוש. |
AdLoader | forContentAd() | הוסר/ה | |
forAppInstallAd() | הוסר/ה | ||
withCorrelator() | הוסר/ה | ||
getMediationAdapter |
הוסר/ה |