בדף הזה מוסבר איך מבצעים העברות לגרסה הנוכחית ולגרסאות קודמות.
מעבר מגרסת v22 ל-v23
רמת ה-API המינימלית ב-Android היא 21
החל מגרסה 23.0.0, כדי להריץ את Google Mobile Ads SDK, כל האפליקציות צריכות להיות ברמת API 21 ומעלה ל-Android. כדי לשנות את רמת ה-API, משנים את הערך של minSdkVersion
בקובץ build.gradle
ברמת האפליקציה ל-21 ומעלה.
שיטות שהוצאו משימוש הוסרו או הוחלפו
API מגרסה 22.0.0 | API מגרסה 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)
|
void MobileAds.setSameAppKeyEnabled() | boolean MobileAds.putPublisherFirstPartyIdEnabled() |
מעבר מ-v21 ל-v22
שימוש ב-MobileAds.getVersion() כדי לקבל את גרסת Google Mobile Ads SDK
השיטה MobileAds.getVersionString()
הוסרה בגרסה 22.0.0 לטובת MobileAds.getVersion()
.
השיטה החדשה מחזירה את מספר הגרסה החיצוני הצפוי – לדוגמה, 22.0.0
. מידע נוסף על השינוי הזה זמין במאמר שימוש ב-method getVersion() החדש של Google Mobile Ads SDK.
שיטות שהוסרו או הוחלפו
בטבלה הבאה מפורטים השינויים הספציפיים בגרסה 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 |
מעבר מ-v20 ל-v21
מעדכנים את minSdkVersion ל-19 ואילך
החל מגרסה 21.0.0, כדי להריץ את Google Mobile Ads SDK, כל האפליקציות צריכות להיות ברמת Android API 19 ומעלה. כדי לשנות את רמת ה-API, משנים את הערך של minSdkVersion
בקובץ ה-build של האפליקציה ל-19 ומעלה.
אכיפת תנאי נכונות קפדני של ערך null
כדי להתכונן לאכיפה מחמירה של יכולת החזקה של ערך (nullability), נוספו הערות @NonNull
לכל ממשקי ה-API שלא הגדירו בעבר במפורש את יכולת החזקה של ערך.
השינוי הזה עלול לשבש את האפליקציות של Kotlin ואת האפליקציות שמשתמשות במסגרות של בדיקת null ב-Java, אם יש הפרות של אבטחת null ולא טופלו בעבר ערכים של null
בצורה בטוחה (ראו מסמכי התיעוד של Kotlin בנושא אבטחת null).
הסרת השיטה addNetworkExtras()
השיטה addNetworkExtras()
, שמעבירה פרמטרים נוספים כמכונה של NetworkExtras
למתאם ספציפי של רשת מודעות, הוצאה משימוש בגרסה 20.3.0 של ה-SDK ותוסרה בגרסה 21.0.0. במקום זאת, צריך להשתמש ב-method 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:
ממשקים של גרסה 20.0.0 | סיווג/ ממשק v21.0.0 |
---|---|
CustomEvent | מתאם |
CustomEventBanner | |
CustomEventInterstitial | |
CustomEventNative | |
CustomEventBannerListener |
Adapter, |
CustomEventInterstitialListener | |
CustomEventListener | |
CustomEventNativeListener |
מעבר מ-v19 ל-v20
יש הרבה שינויים משמעותיים בגרסה 20.0.0. בגרסה 19.7.0 הוספנו הרבה ממשקי API חדשים, וגם הוצאנו משימוש או שינינו את השם של הרבה כיתות לקראת הגרסה 20.0.0. במדריך הזה נסביר על השינויים העיקריים בגרסה 20.0.0.
עדכוני API לפורמט מסך מלא
החל מגרסה 20.0.0, פורמטים של מודעות מעברון, מודעות מתגמלות, מודעות מעברון מתגמלות ומודעות בפתיחת האפליקציה מוגדרים לפי תקן כדי לעמוד בדרישות של תכנון API עקבי.
כל ממשקי ה-API של מודעות בפורמט מסך מלא מבוססים על העקרונות הבאים:
- שיטת טעינה סטטית
- מנגנון קריאה חוזרת או טיפול דומה לטעינה
- שימוש בכיתה
FullScreenContentCallback
ליצירת קריאות חזרה (callbacks) של מצגות
הסרת ה-API הקודם של RewardedVideoAd
ה-API החדש יותר, RewardedAd
, הוצג לראשונה במרץ 2019 והוא ה-API המועדף לקבלת פרסים כבר יותר מ-18 חודשים. הוא כולל שיפורים רבים יותר בהשוואה ל-RewardedVideoAd
API הקודם, כולל היכולת לטעון יותר ממודעה מתגמלת אחת בכל פעם.
ממשק ה-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
לא נועדה אף פעם להיות טיפול בקליק על מודעה, והסתמכות על הקריאה החוזרת הזו לדיווח על קליקים לא הניבה מדד מדויק. לדוגמה, קליק על סמל AdChoices שהפעיל דפדפן חיצוני גרם לקריאה החוזרת, אבל לא נספר כקליק.
שינוי שמות של כיתות
בטבלה הבאה מפורטים שמות ספציפיים של כיתות ששונו או הוסרו. לסיכום:
- שם רוב הכיתות שקשורות ל-
UnifiedNativeAd
השתנה ל-NativeAd
. - הכיתות והתצוגות
MobileAds.Settings
,NativeExpressAdView
,NativeAppInstallAd
,NativeContentAd
ו-InstreamAd
הוסרו. - כל הכיתות עם הקידומת
Publisher
הוחלפו בקידומתAdManager
. - שם החבילה
InterstitialAd
השתנה.
Class 19.5.0 | Class 20.0.0 |
---|---|
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 | הוסר |
מתאם | הוסר |
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 עודכנו בהתאם לכל הפורמטים במסך מלא.
- תכונות המתאמים הוסרו.
מחלקה | API מגרסה 19.5.0 | API מגרסה 20.0.0 | הערות |
---|---|---|---|
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 |
הכיתה Settings הוצאה משימוש. | |
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 זמין עכשיו דרך השיטה getResponseInfo() של AdView. |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) | מודעות RewardedAd משתמשות עכשיו באותה גישה של טעינה סטטית כמו בפורמטים אחרים של מודעות במסך מלא. |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback) | ||
isLoaded() | הוסר | קריאת החזרה (callback) מ-method הטעינה הסטטית מספקת מודעה שכבר נטענה. | |
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) | מודעות InterstitialAd משתמשות עכשיו באותה גישה של טעינה סטטית כמו בפורמטים אחרים של מודעות במסך מלא. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | הוסר | הכיתה NetworkExtras הוצאה משימוש. |
AdLoader | forContentAd() | הוסר | |
forAppInstallAd() | הוסר | ||
withCorrelator() | הוסר | ||
getMediationAdapter |
הוסר |