בדף הזה מוסבר איך מבצעים העברות לגרסה הנוכחית ולגרסאות הקודמות.
מעבר מגרסת v23 ל-v24
בקטעים הבאים מתוארים שינויים משמעותיים והבדלים בהתנהגות בין הגרסה הראשית 23 לבין הגרסה הראשית 24 של Google Mobile Ads SDK.
רמת ה-API המינימלית ב-Android היא 23
החל מגרסה 24.0.0, כל האפליקציות צריכות לפעול ברמת Android API 23 לפחות כדי לפעול עם Google Mobile Ads SDK. כדי לשנות את רמת ה-API, משנים את הערך minSdk
בקובץ build.gradle
ברמת האפליקציה ל-23 ומעלה.
שינויים באופטימיזציה של האתחול והטעינה
כברירת מחדל, הדגלים OPTIMIZE_INITIALIZATION
ו-OPTIMIZE_AD_LOADING
מוגדרים כ-true
. מידע נוסף על הדגלים האלה זמין במאמר אופטימיזציה של האתחול והטעינה.
הוסר התלות ב-firebase-ads וב-firebase-ads-lite
החל מגרסה 24.0.0, מהדורות SDK לא כוללות יותר את יחסי התלות של firebase-ads
ושל firebase-ads-lite
. במקום זאת, צריך להשתמש ביחס התלות play-services-ads
.
הוסרו ממשקי API שהוצאו משימוש לזיהוי כיוון המסך במודעות בפתיחת אפליקציה
- הוסרו שיטות
AppOpenAd.load()
שמקבלות פרמטר קלט של כיוון. במקום זאת, משתמשים בשיטותAppOpenAd.load()
שלא מקבלות כיוון. - הוסר המאפיין
AppOpenAdOrientation
enum.
קריאה חוזרת פשוטה לקבלת פרסים למודולים של בחירת הרשת
בגרסה 24.0.0 נוספה קריאה חוזרת (callback) של onUserEarnedReward()
ב-MediationRewardedAdCallback
, והתכונה onUserEarnedReward(RewardItem)
הוצאה משימוש.
מתאמי בחירת הרשת חייבים להתחיל לבצע קריאות ל-onUserEarnedReward()
כשהמשתמש מרוויח פרס.
כשמפנימים קריאות חזרה (callbacks) ממתאמי תהליך בחירת הרשת, כל הגרסאות של Google Mobile Ads SDK מחזירות את התגמול שהוגדר בממשק המשתמש של AdMob בקטע OnUserEarnedRewardListener
.
כיתות שהוסרו
הכיתות הבאות הוסרו ללא החלפה:
DynamicHeightSearchAdRequest
SearchAdRequest
SearchAdView
שיטות שהוסרו
השיטות הבאות הוסרו ללא חלופה:
מחלקה | שיטה |
---|---|
RewardedInterstitialAdLoadCallback | onRewardedInterstitialAdLoaded() |
onRewardedInterstitialAdFailedToLoad(int) |
|
onRewardedInterstitialAdFailedToLoad(LoadAdError) |
שיטות שהוצאו משימוש
השיטות הבאות יוצאו משימוש ללא חלופה:
מחלקה | שיטה |
---|---|
Adapter | loadInterscrollerAd() |
RtbAdapter | loadRtbInterscrollerAd() |
מעבר מגרסת v22 ל-v23
בקטעים הבאים מתוארים שינויים משמעותיים והבדלים בהתנהגות בין הגרסה הראשית 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 מגרסה 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
בקטעים הבאים מתוארים שינויים משמעותיים והבדלים בהתנהגות בין הגרסה הראשית 21 לבין הגרסה הראשית 22 של Google Mobile Ads SDK.
שימוש ב-MobileAds.getVersion() כדי לקבל את גרסת Google Mobile Ads SDK
השיטה MobileAds.getVersionString()
הוסרה בגרסה 22.0.0 לטובת MobileAds.getVersion()
.
השיטה החדשה מחזירה את מספר הגרסה החיצוני הצפוי – לדוגמה, 22.0.0
. מידע נוסף על השינוי הזה זמין במאמר שימוש בשיטה 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
בקטעים הבאים מתוארים שינויים משמעותיים והבדלים בהתנהגות בין הגרסה הראשית 20 לבין הגרסה הראשית 21 של Google Mobile Ads SDK:
מעדכנים את minSdkVersion ל-19 ואילך
החל מגרסה 21.0.0, כדי להריץ את Google Mobile Ads SDK, כל האפליקציות צריכות להיות ברמת API של Android 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
השתנה.
19.5.0 Class | 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 זמין באמצעות השיטה AdView , getResponseInfo() .
|
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 |
הוסר |