בדף הזה מפורטים מעברים לגרסאות נוכחיות וקודמות.
מעבר מגרסה 23 לגרסה 24
בקטעי המשנה הבאים מתוארים שינויים שעלולים לשבור את התאימות לאחור והבדלים בהתנהגות בין גרסה 23 לגרסה 24 של Google Mobile Ads SDK.
רמת ה-API המינימלית ב-Android היא 23
החל מגרסה 24.0.0, כדי להפעיל את Google Mobile Ads SDK, כל האפליקציות צריכות לפעול ברמת API מינימלית של Android 23. כדי לשנות את רמת ה-API, צריך לשנות את הערך minSdk
בקובץ build.gradle
ברמת האפליקציה ל-23 ומעלה.
שינויים באתחול ובטעינה שעברו אופטימיזציה
כברירת מחדל, ההתראות OPTIMIZE_INITIALIZATION
ו-OPTIMIZE_AD_LOADING
מוגדרות ל-true
. מידע נוסף על הדגלים האלה זמין במאמר אופטימיזציה של האתחול והטעינה.
הוסרו התלויות (dependencies) firebase-ads ו-firebase-ads-lite
החל מגרסה 24.0.0, מהדורות של SDK לא מפיצות יותר את התלות ב-firebase-ads
וב-firebase-ads-lite
. במקום זאת, צריך להשתמש בתלות play-services-ads
.
הוסרו ממשקי API שהוצאו משימוש לשינוי כיוון המודעה במודעות בפתיחת אפליקציה
- הוסרו שיטות
AppOpenAd.load()
שמקבלות פרמטר קלט של כיוון. במקום זאת, משתמשים בשיטותAppOpenAd.load()
שלא כוללות כיוון. - הוסר enum
AppOpenAdOrientation
.
הודעת קריאה חוזרת פשוטה יותר לגבי תגמול למתאמי גישור
בגרסה 24.0.0 נוסף הקריאה החוזרת (callback) onUserEarnedReward()
ב-MediationRewardedAdCallback
, והוצא משימוש onUserEarnedReward(RewardItem)
.
מתאמי גישור צריכים להתחיל לקרוא ל-onUserEarnedReward()
כשהמשתמש מקבל תגמול.
כשמעבירים קריאות חוזרות (callback) ממתאמי גישור, כל הגרסאות של Google Mobile Ads SDK מחזירות את התגמול שמוגדר בממשק המשתמש של AdMob ב-OnUserEarnedRewardListener
.
הכיתות הוסרו
הכיתות הבאות הוסרו ללא החלפה:
DynamicHeightSearchAdRequest
SearchAdRequest
SearchAdView
השיטות הוסרו
השיטות הבאות הוסרו ולא הוחלפו:
מחלקה | שיטה |
---|---|
RewardedInterstitialAdLoadCallback | onRewardedInterstitialAdLoaded() |
onRewardedInterstitialAdFailedToLoad(int) |
|
onRewardedInterstitialAdFailedToLoad(LoadAdError) |
שיטות שהוצאו משימוש
השיטות הבאות הוצאו משימוש ולא יוחלפו:
מחלקה | שיטה |
---|---|
Adapter | loadInterscrollerAd() |
RtbAdapter | loadRtbInterscrollerAd() |
מעבר מגרסה 22 לגרסה 23
בקטעי המשנה הבאים מתוארים שינויים שעלולים לשבור את התאימות לאחור והבדלים בהתנהגות בין גרסה 22 לגרסה 23 של Google Mobile Ads SDK.
רמת ה-API המינימלית ב-Android היא 21
החל מגרסה 23.0.0, כדי להפעיל את Google Mobile Ads SDK, כל האפליקציות צריכות להיות ברמת API 21 ומעלה ב-Android. כדי לשנות את רמת ה-API, צריך לשנות את הערך של minSdkVersion
בקובץ build.gradle
ברמת האפליקציה ל-21 ומעלה.
הסרה או החלפה של שיטות שהוצאו משימוש
API גרסה v22.0.0 | v23.0.0 API |
---|---|
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
בקטעי המשנה הבאים מתוארים שינויים שעלולים לשבור את התאימות לאחור והבדלים בהתנהגות בין גרסה 21 לגרסה 22 של Google Mobile Ads SDK.
שימוש ב-MobileAds.getVersion() כדי לקבל את הגרסה של Google Mobile Ads SDK
הוסר בגרסה 22.0.0 לטובת MobileAds.getVersion()
.MobileAds.getVersionString()
השיטה החדשה מחזירה את מספר הגרסה החיצוני הצפוי – לדוגמה, 22.0.0
. מידע נוסף על השינוי הזה זמין במאמר שימוש בשיטה החדשה של Google Mobile Ads SDKgetVersion()
.
שיטות שהוסרו או הוחלפו
בטבלה הבאה מפורטים השינויים הספציפיים בגרסה 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
בקטעי המשנה הבאים מתוארים שינויים שעלולים לשבור את התאימות לאחור והבדלים בהתנהגות בין גרסה 20 לגרסה 21 של Google Mobile Ads SDK:
צריך לעדכן את minSdkVersion ל-19 ומעלה
החל מגרסה 21.0.0, כדי להפעיל את Google Mobile Ads SDK, כל האפליקציות צריכות להיות ברמת API מינימלית של Android 19. כדי לשנות את רמת ה-API, משנים את הערך של minSdkVersion
בקובץ ה-build של האפליקציה ל-19 ומעלה.
אכיפת ביטול ערך קפדני
כדי להתכונן לאכיפה של אפשרות קפדנית להגדרת ערך null, נוספו הערות @NonNull
לכל ממשקי ה-API שקודם לכן לא הגדירו במפורש אפשרות להגדרת ערך null.
השינוי הזה עלול לגרום לקריסה של אפליקציות Kotlin ואפליקציות שמשתמשות במסגרות לבדיקת ערכי null ב-Java, אם יש הפרות של בטיחות ערכי null ולא בוצע טיפול קודם בערכי null
בצורה בטוחה (אפשר לעיין במסמכי Kotlin בנושא בטיחות ערכי null).
הסרה של השיטה 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 לא משתמשת בנתוני המיקום כדי לטרגט מודעות. אם נדרש, צריך להשתמש בממשקי API של צד שלישי כדי לספק את המידע לרשתות מודעות של צד שלישי.
הוצאה משימוש של ממשקים לאירועים בהתאמה אישית
אירועים בהתאמה אישית מאפשרים לבעלי אפליקציות שמשתמשים בתהליך בחירת הרשת (Mediation) של AdMob להגדיר מקור מודעות ב-Waterfall שלא נכלל במקורות המודעות הנתמכים ב-AdMob.
כל הממשקים של אירועים מותאמים אישית הוצאו משימוש, ועכשיו משתמשים במחלקת Adapter
ובממשק MediationAdLoadCallback
.
בטבלה הבאה מפורטים המחלקה או הממשק המתאימים שבהם צריך להשתמש בכל ממשק של אירוע מותאם אישית החל מגרסה 21.0.0:
ממשקים בגרסה v20.0.0 | גרסה 21.0.0 Class/ Interface |
---|---|
CustomEvent | מתאם |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Adapter,
|
CustomEventInterstitialListener | |
CustomEventListener | |
CustomEventNativeListener |
מעבר מגרסה 19 לגרסה 20
יש הרבה שינויים שעלולים לשבור את התאימות בגרסה 20.0.0. בגרסה 19.7.0 הוספנו הרבה ממשקי API חדשים, והוצאנו משימוש או שינינו את השם של הרבה מחלקות לקראת גרסה 20.0.0. במדריך הזה מפורטים השינויים העיקריים בגרסה 20.0.0.
עדכונים ב-API של פורמט מסך מלא
החל מגרסה 20.0.0, פורמטים של מודעות מעברון, מודעות מתגמלות, מודעות מעברון מתגמלות ומודעות בפתיחת האפליקציה עוברים סטנדרטיזציה כדי להתאים לעיצוב API עקבי.
כל ממשקי ה-API של פורמטים שמוצגים במסך מלא פועלים לפי העקרונות הבאים:
- שיטת טעינה סטטית
- מנגנון דומה של קריאה חוזרת או של טיפול בטעינה
- הסתמכות על המחלקה
FullScreenContentCallback
לקבלת קריאות חוזרות (callback) של מצגות
הסרת Legacy RewardedVideoAd 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) } }
עזיבת השיחה החוזרת בנושא הסרת אפליקציה
הסרנו את onAdLeftApplication
callback לכל הפורמטים של המודעות, ועכשיו משתמשים ב-ProcessLifecycleOwner
.
שימוש ב-API ברמת מערכת ההפעלה מאפשר לכם לקבל הודעה בכל פעם שמשתמשים יוצאים מהאפליקציה, בלי קשר לשאלה אם זה קורה בגלל אינטראקציה עם מודעה או לא.
חשוב לציין שפונקציית ה-callback onAdLeftApplication
אף פעם לא נועדה להיות handler של קליקים על מודעות, והסתמכות על פונקציית ה-callback הזו לדיווח על קליקים לא הניבה מדד מדויק. לדוגמה, קליק על סמל AdChoices שפתח דפדפן חיצוני הפעיל את הקריאה החוזרת אבל לא נספר כקליק.
שינוי שם של כיתה
בטבלה הבאה מפורטים שמות ספציפיים של מחלקות שהשתנו או הוסרו:
- רוב הכיתות שקשורות ל-
UnifiedNativeAd
שונו ל-NativeAd
. - הוסרו הכיתות והתצוגות
MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
,NativeContentAd
ו-InstreamAd
. - כל המחלקות עם הקידומת
Publisher
הוחלפו בקידומתAdManager
. - שם החבילה
InterstitialAd
השתנה.
19.5.0 Class | 20.0.0 Class |
---|---|
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 |
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.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 |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | initialize(Context, String) | MobileAds.initialize(Context, OnInitializationComplete |
מזהה האפליקציה מוגדר עכשיו בקובץ AndroidManifest.xml. |
initialize(Context, String, MobileAds.Settings) | initialize(Context, OnInitializationComplete |
הוצאנו משימוש את מחלקת ההגדרות. | |
getRewardedVideo |
הוסר | במקום זאת, כדאי להשתמש ב-RewardedAd 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) | RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) | מודעות מתגמלות משתמשות עכשיו באותה גישה של טעינה סטטית כמו פורמטים אחרים של מודעות במסך מלא. |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback) | ||
isLoaded() | הוסר | הקריאה החוזרת (callback) משיטת הטעינה הסטטית מספקת מודעה שכבר נטענה. | |
show(Activity, RewardedAdCallback) | show(Activity, OnUserEarnedRewardListener) | שיטת ההצגה הזו תואמת לגישה הרחבה יותר של פורמט מסך מלא. | |
RewardedAdLoadCallback | onRewardedAd |
onAd |
|
onRewardedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
RewardedInterstitialAdLoad |
onRewardedInterstitialAd |
onAd |
|
onRewardedInterstitialAd |
onAd |
||
onRewardedInterstitialAd |
onAd |
||
InterstitialAd | new InterstitialAd() | InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) | המודעה הביניים משתמשת עכשיו באותה גישה סטטית לטעינה כמו פורמטים אחרים של מודעות במסך מלא. |
setAdListener() | |||
בקשת |
getNetworkExtras() | הוסר | הוצאנו משימוש את המחלקה NetworkExtras. |
AdLoader | forContentAd() | הוסר | |
forAppInstallAd() | הוסר | ||
withCorrelator() | הוסר | ||
getMediationAdapter |
הוסר |