העברת SDK

דף זה עוסק בהעברות של גרסאות נוכחיות וקודמות.

מעבר מגרסה 22 לגרסה 23

רמת ה-API המינימלית של Android היא 21

החל מגרסה 23.0.0, כל האפליקציות ב-Google Mobile Ads SDK חייבות ברמה 21 לפחות של Android API. כדי להתאים את רמת ה-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)
ביטול MobileAds.setSameAppKeyEnabled() boolean MobileAds.putPublisherFirstPartyIdEnabled()

מעבר מגרסה 21 לגרסה 22

משתמשים ב-MobileAds.getVersion() כדי לקבל את הגרסה של Google Mobile Ads SDK

השיטה MobileAds.getVersionString() הוסרה בגרסה 22.0.0 לטובתה מתוך MobileAds.getVersion().

ה-method החדש מחזירה את מספר הגרסה החיצונית הצפויה - לדוגמה, 22.0.0 למידע נוסף על השינוי, אפשר לקרוא את המאמר שימוש בממשק החדש של Google Mobile getVersion() של 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 לגרסה 21

עדכון minSdkVersion ל-19 ואילך

החל מגרסה 21.0.0, כל האפליקציות ב-Google Mobile Ads SDK חייבות ברמה 19 ומעלה של Android API. כדי להתאים את רמת ה-API, משנים את של minSdkVersion בקובץ ה-build של האפליקציה ל-19 ומעלה.

אכיפת יכולת אפס מחמירה

כהכנה לאכיפה של יכולת אפס מחמירה, הערות @NonNull שנוספו לכל ממשקי ה-API שלא הגדירו קודם לכן באופן מפורש יכולת null.

השינוי הזה עלול לגרום לשיבושים באפליקציות ובאפליקציות של Kotlin שמשתמשות בבדיקת null של Java. של frameworks אם יש הפרות בטיחות אפסיות ולא טיפלנו בעבר null ערכים באופן בטוח (ניתן לעיין במסמכי התיעוד של Kotlin בנושא? אפס-בטיחות ).

הסרת שיטת addNetworkExtras()

השיטה addNetworkExtras() שמעבירה פרמטרים נוספים בתור מופע NetworkExtras של מתאם רשת מודעות ספציפי הוצא משימוש ב-SDK בגרסה 20.3.0 והיא תוסר בגרסה 21.0.0. משתמשים ב addNetworkExtrasBundle() מאותה המחלקה AdRequest.Builder.

הסרה של שיטות למיקום

השיטות הבאות למיקום יוסרו בגרסה 21.0.0:

  • השיטה setLocation(Location location) במחלקה AdRequest.Builder שקובעת את המיקום של המשתמש למטרות טירגוט של תהליך בחירת הרשת (Mediation).
  • השיטה getLocation() במחלקה AdRequest שמחזירה את פרטי טירגוט למיקום גיאוגרפי הועברו בעבר לשיטה setLocation(Location location).
  • ה-method getLocation() במחלקה MediationAdConfiguration, מחזירה את מיקום המשתמש, אם מוגדר על ידי AdRequest.

Google לא משתמשת בנתוני המיקום לטירגוט מודעות. צריך להשתמש ממשקי API של צד שלישי כדי לספק את המידע לרשתות מודעות של צד שלישי, נדרש.

הוצאה משימוש של ממשקי אירועים בהתאמה אישית

אירועים מותאמים אישית מאפשרים לבעלי תוכן דיגיטלי להשתמש תהליך בחירת הרשת (Mediation) ב-AdMob כדי להגדיר מקור מודעות ב-Waterfall שלא אחד מ- AdMob מקורות מודעות נתמכים.

כל המודלים בהתאמה אישית אירוע והממשקים הוצאו משימוש לטובת Adapter כיתה MediationAdLoadCallback גרפי.

הטבלה הבאה מפרטת את המחלקה או הממשק המתאימים שבהם צריך להשתמש לכל ממשק של אירוע בהתאמה אישית החל מגרסה 21.0.0:

ממשקים בגרסה 20.0.0 גרסה 21.0.0 מחלקה/ ממשק
CustomEvent מתאם
CustomEventBanner
CustomEventInterstitial
CustomEventNative
CustomEventBannerListener מתאם, MediationAdLoadCallback
CustomEventInterstitialListener
CustomEventListener
CustomEventNativeListener

מעבר מ-v19 לגרסה 20

בגרסה 20.0.0 בוצעו הרבה שינויי תוכנה שעלולים לגרום לכשלים. גרסה 19.7.0 הושקה הרבה ממשקי API חדשים, ומחלקות רבות הוצאו משימוש או שינו את השם שלהן כהכנה לגרסה 20.0.0. במדריך הזה נדגיש את השינויים העיקריים בגרסה 20.0.0.

עדכונים לגבי פורמט במסך מלא

החל מגרסה 20.0.0, מודעות מעברון, מודעות מעברון מתגמלות, מודעות מעברון מתגמלות הפורמטים של מודעות בפתיחת אפליקציה מתוקנים בהתאם לעיצוב API עקבי.

בכל ממשקי ה-API בפורמט מסך מלא פועלים לפי העקרונות הבאים:

  • שיטת טעינה סטטית
  • מנגנון דומה של קריאה חוזרת (callback) או handler של טעינה
  • הסתמכות על FullScreenContentCallback שיעור להתקשרות חזרה למצגת

הסרה של RewardedVideoAd API מדור קודם

הגרסה החדשה יותר RewardedAd ממשק API הושק לראשונה במרץ 2019, והוא הפך למתגמל המועדף API למשך יותר מ-18 חודשים. יש בה יותר שיפורים בהשוואה לדור הקודם API של RewardedVideoAd, כולל היכולת לטעון יותר ממודעה מתגמלת אחת בכל פעם.

ה-API הקודם של RewardedVideoAd הוסר בגרסת ה-SDK בגרסה 20.0.0.

הוצאה משימוש של מודעות באנר חכמות לטובת מודעות באנר מותאמות

מודעות באנר חכם הוצאו משימוש לטובת מודעת באנר מותאמת מודעות. מודעות באנר מותאמות מספקות ביצועים מעולים וגמישות רבה יותר הגדרה של רוחב המודעה. אם מעדיפים להמשיך להשתמש במודעות באנר ברוחב מלא, ניתן עדיין להשתמש במודעות באנר מותאמות, כפי שמוצג בקטע הקוד הבא:

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) של onAdLeftApplication לכל הפורמטים של המודעות הוסרה לטובתך מתוך ProcessLifecycleOwner. כשמשתמשים ב-API ברמת מערכת ההפעלה, מקבלים התראה בכל פעם שהמשתמשים עוזבים את האפליקציה, בין אם כתוצאה מאינטראקציה עם מודעה ובין אם לא.

לתשומת ליבך: הקריאה החוזרת של onAdLeftApplication אף פעם לא הייתה אמורה להיות מודעה המטפל בקליקים, והסתמכות על קריאה חוזרת זו לדיווח על קליקים לא הניבה מדד מדויק. לדוגמה, קליק על סמל 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 Rewards.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.OnCustomTemplateAdLoadedListener nativead.NativeCustomFormatAd.OnCustomFormatAdLoadedListener
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.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 של גרסה 19.5.0 ממשק API של גרסה 20.0.0 הערות
AdSize getPortraitBannerAdSizeWithWidth() getPortraitAnchoredAdaptiveBannerAdSize()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds segmentize(Context, String) MobileAds.initialize(Context, OnInitializationCompleteListener) מזהה האפליקציה מוגדר עכשיו בקובץ AndroidManifest.xml.
segmentize(Context, String, MobileAds.Settings) segmentize(Context, OnInitializationCompleteListener) הכיתה 'הגדרות' הוצאה משימוש.
getRewardedVideoAdInstance() הוסר במקום זאת, צריך להשתמש ב-RewardedAd API.
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() הוסר פורמטים של מודעות במסך מלא משתמשים ב-FullscreenContentCallback במקום ב- AdListener, ואין שיטה מקבילה ב-FullscreenContentCallback. השיטה הוסרה מ-AdListener.
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest getGender() הוסר
getBirthday() הוסר
getNetworkExtras() הוסר
setManualImpressionsEnabled() הוסר
updateCorrelator() הוסר צפייה סינון תוכן מודעות.
AdRequest.Builder setBirthday() הוסר
setGender() הוסר
setIsDesignedForFamilies() הוסר לעיון במדריך.
addTestDevice() RequestConfiguration.Builder.setTestDeviceIds() למידע נוסף, כדאי לעיין במאמר הפעלת מודעות בדיקה.
tagForChildDirectedTreatment() RequestConfiguration.Builder.setTagForChildDirectedTreatment() צפייה סינון תוכן מודעות.
setTagForUnderAgeOfConsent() RequestConfiguration.Builder.setTagForUnderAgeOfConsent()
setMaxAdContentRating() RequestConfiguration.Builder.setMaxAdContentRating()
AdView getMediationAdapterClassName() ResponseInfo.getMediationAdapterClassName() אובייקט 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(פעילות, RewardedAdCallback) show(Activity, OnUserRevenueedRewardListener) שיטת ההצגה הזו פועלת בהתאם לגישה הרחבה יותר של פורמט מסך מלא.
RewardedAdLoadCallback onRewardedAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdLoaded(AppOpenAd) onAdLoaded(AppOpenAd)
RewardedInterstitialAdLoadCallback onRewardedInterstitialAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedInterstitialAdLoaded(RewardedInterstitialAd) onAdLoaded(RewardedInterstitialAd)
InterstitialAd new InterstitialAd() מעברוןAd.load(Context, String, AdRequest, למספר מעברוןAdLoadCallback) גישת הטעינה הסטטית של מודעת המעברון זהה לזו של בפורמטים אחרים של מסך מלא.
setAdListener()
DynamicHeightSearchAdRequest getNetworkExtras() הוסר המחלקה NetworkExtras הוצאה משימוש.
AdLoader forContentAd() הוסר
forAppInstallAd() הוסר
withCorrelator() הוסר
getMediationAdapterClassName() הוסר