SDK टूल को माइग्रेट करना

इस पेज पर मौजूदा और पिछले वर्शन के लिए माइग्रेशन के बारे में बताया गया है.

v22 से v23 पर माइग्रेट करें

Android का एपीआई लेवल कम से कम 21 होना चाहिए

वर्शन 23.0.0 से लेकर Google Mobile Ads SDK के काम करने के लिए, सभी ऐप्लिकेशन को Android API लेवल 21 पर चलने के लिए ज़रूरी है. एपीआई लेवल को अडजस्ट करने के लिए, ऐप्लिकेशन लेवल की build.gradle फ़ाइल में minSdkVersion की वैल्यू को 21 या उससे ज़्यादा पर सेट करें.

अमान्य तरीके हटाए गए/बदले गए

v22.0.0 एपीआई 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)
MobileAds.setSameAppKeyEnabled() वाला अमान्य है बूलियन MobileAds.putPublisherFirstPartyIdEnabled()

वर्शन 21 से v22 पर माइग्रेट करें

Google Mobile Ads SDK वर्शन पाने के लिए MobileAds.getVersion() का इस्तेमाल करें

वर्शन 22.0.0 से MobileAds.getVersionString() तरीके को हटा दिया गया है, ताकि 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

v20 से v21 पर माइग्रेट करना

minSdkVersion को 19 या उसके बाद वाले वर्शन पर अपडेट करें

21.0.0 वर्शन से, 'Google मोबाइल विज्ञापन SDK' का इस्तेमाल करने के लिए यह ज़रूरी है कि सभी ऐप्लिकेशन, Android API लेवल 19 पर चल सकें. एपीआई लेवल में बदलाव करने के लिए, अपने ऐप्लिकेशन की बिल्ड फ़ाइल में minSdkVersion की वैल्यू को बदलकर 19 या उससे ज़्यादा करें.

सख्त शून्यता लागू करें

सख्त शून्यता को लागू करने के लिए तैयार रहने के दौरान, उन सभी एपीआई में @NonNull एनोटेशन जोड़े जाते हैं जिनमें पहले साफ़ तौर पर शून्य होने के बारे में नहीं बताया गया था.

इस बदलाव से, उन Kotlin ऐप्लिकेशन और ऐप्लिकेशन को गड़बड़ी हो सकती है जो Java की शून्य जांच वाले फ़्रेमवर्क का इस्तेमाल करते हैं. ऐसा तब होता है, जब सुरक्षा का कोई उल्लंघन न हुआ हो और पहले null वैल्यू को सुरक्षित तरीके से हैंडल न किया गया हो (Null-safety पर Kotlin दस्तावेज़ देखें).

addNetworkExtras() तरीका को हटाना

किसी खास विज्ञापन नेटवर्क अडैप्टर को NetworkExtras इंस्टेंस के तौर पर, अतिरिक्त पैरामीटर पास करने वाला addNetworkExtras() तरीका, SDK टूल के 20.3.0 वर्शन में अब काम नहीं करता. इसे वर्शन 21.0.0 से हटा दिया जाएगा. इसके बजाय, उसी AdRequest.Builder क्लास के addNetworkExtrasBundle() तरीके का इस्तेमाल करें.

जगह की जानकारी के तरीकों को हटाने का तरीका

वर्शन 21.0.0 में, जगह की जानकारी के ये तरीके हटा दिए जाएंगे:

  • AdRequest.Builder क्लास में मौजूद setLocation(Location location) तरीका, जो मीडिएशन टारगेटिंग के मकसद से उपयोगकर्ता की जगह की जानकारी सेट करता है.
  • AdRequest क्लास में मौजूद getLocation() तरीका, जो उपयोगकर्ता की जगह के हिसाब से टारगेटिंग की जानकारी दिखाता है. यह जानकारी, setLocation(Location location) तरीके को पहले ही पास की जाती है.
  • MediationAdConfiguration क्लास में getLocation() तरीका, जो AdRequest के ज़रिए तय किए गए होने पर, उपयोगकर्ता की जगह की जानकारी दिखाता है.

Google, विज्ञापन दिखाने के लिए जगह की जानकारी के डेटा का इस्तेमाल नहीं करता. अगर ज़रूरी हो, तो तीसरे पक्ष की विज्ञापन नेटवर्क कंपनियों को जानकारी देने के लिए, आपको तीसरे पक्ष के एपीआई का इस्तेमाल करना चाहिए.

कस्टम इवेंट इंटरफ़ेस का बंद होना

कस्टम इवेंट की मदद से, पब्लिशरAdMob मीडिएशन का इस्तेमाल करके, ऐसा वॉटरफ़ॉल विज्ञापन सोर्स सेट अप कर सकते हैं जो AdMobइस्तेमाल किए जा सकने वाले विज्ञापन सोर्स में से एक नहीं है.

सभी कस्टम इवेंट इंटरफ़ेस अब Adapter क्लास और MediationAdLoadCallback इंटरफ़ेस के हिसाब से काम नहीं करते.

नीचे दी गई टेबल में संबंधित क्लास या इंटरफ़ेस की सूची दी गई है. इसका इस्तेमाल, वर्शन 21.0.0 से शुरू होने वाले हर कस्टम इवेंट इंटरफ़ेस के लिए किया जाना चाहिए:

v20.0.0 इंटरफ़ेस v21.0.0 क्लास/ इंटरफ़ेस
CustomEvent अडैप्टर
CustomEventBanner
CustomEventInterstitial
CustomEventNative
CustomEventBannerListener अडैप्टर, MediationAdLoadCallback
CustomEventInterstitialListener
CustomEventListener
CustomEventNativeListener

v19 से v20 पर माइग्रेट करना

वर्शन 20.0.0 में नुकसान पहुंचा सकने वाले कई बदलाव किए गए हैं. वर्शन 19.7.0 में कई नए एपीआई लॉन्च किए गए. साथ ही, वर्शन 20.0.0 की तैयारी करने वाली कई क्लास को बंद कर दिया या उनके नाम बदल दिए. यह गाइड, वर्शन 20.0.0 में हुए बड़े बदलावों को हाइलाइट करती है.

Full-screen Format API के अपडेट

वर्शन 20.0.0 और इसके बाद के वर्शन में, इंटरस्टीशियल, इनाम वाले विज्ञापन, इनाम वाले इंटरस्टीशियल विज्ञापन, और ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन फ़ॉर्मैट, एक जैसे एपीआई डिज़ाइन के हिसाब से बनाए गए हैं.

फ़ुल-स्क्रीन फ़ॉर्मैट वाले सभी एपीआई में इन सिद्धांतों का इस्तेमाल किया जाता है:

  • स्टैटिक लोड मेथड
  • एक मिलती-जुलती लोड कॉलबैक या हैंडलर प्रणाली
  • प्रज़ेंटेशन कॉलबैक के लिए, FullScreenContentCallback क्लास पर निर्भर रहना

लेगसी RewardedVideoAd API को हटाना

नया RewardedAd एपीआई, सबसे पहले मार्च 2019 में लॉन्च किया गया था. यह 18 महीनों से ज़्यादा समय से, इनाम वाले एपीआई के तौर पर लोकप्रिय बना हुआ है. इसमें, लेगसी RewardedVideoAd एपीआई की तुलना में, ज़्यादा बेहतर नतीजे दिए गए हैं. इनमें, इनाम वाले एक से ज़्यादा विज्ञापन को एक साथ लोड करने की सुविधा भी शामिल है.

SDK टूल के वर्शन 20.0.0 से, लेगसी RewardedVideoAd API को हटा दिया गया है.

अडैप्टिव बैनर के लिए स्मार्ट बैनर का बंद होना

अडैप्टिव बैनर वाले विज्ञापनों की जगह स्मार्ट बैनर में दिखने वाले विज्ञापन अब काम नहीं करते. अडैप्टिव बैनर की मदद से, विज्ञापन की चौड़ाई को बेहतर तरीके से सेट किया जा सकता है. अगर आपको पूरी चौड़ाई वाले बैनर का इस्तेमाल जारी रखना है, तो अब भी अडैप्टिव बैनर का इस्तेमाल किया जा सकता है, जैसा कि इस कोड स्निपेट में दिखाया गया है:

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 कॉलबैक को हटा दिया गया है, ताकि ProcessLifecycleOwner की पहचान की जा सके. ओएस-लेवल एपीआई का इस्तेमाल करने से, उपयोगकर्ताओं के आपके ऐप्लिकेशन से बाहर निकलने पर, आपको इसकी सूचना मिलती है. भले ही, यह विज्ञापन इंटरैक्शन की वजह से हो या नहीं.

ध्यान दें कि 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.RewardsedAdLoadCallback और 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.OnCustomTemplateAdLoadedListener localad.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 निकाला गया
कोरिलेटर निकाला गया
search.SearchAdRequest निकाला गया
इंटरफ़ेस AdRequest.TagForDownAgeOfConsent निकाला गया
इंटरफ़ेस 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 क्लास में ले जाया गया है.
  • इनाम वाले विज्ञापन और इंटरस्टीशियल विज्ञापन के एपीआई को सभी फ़ुल-स्क्रीन फ़ॉर्मैट के साथ अलाइन करने के लिए अपडेट किया गया है.
  • सहयोगी सुविधाएं हटा दी गई हैं.
कक्षा वर्शन 19.5.0 एपीआई v20.0.0 एपीआई ज़रूरी जानकारी
AdSize getPortraitBannerAdSizeWithwidth() getPortraitAnchoredAdaptiveBannerAdSize()
getलैंडस्केप बैनरAdSizeWithwidth() getलैंडस्केप ऐंकरAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithwidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds इनिशलाइज़(कॉन्टेक्स्ट, स्ट्रिंग) MobileAds.initialize(Context, OnInitializationCompleteलिसनर) ऐप्लिकेशन आईडी अब AndroidManifest.xml में सेट है.
शुरू करें(कॉन्टेक्स्ट, स्ट्रिंग, MobileAds.Settings) इनिशलाइज़(कॉन्टेक्स्ट, ऑन इनिशलाइज़ेशनकंपलीटलिसनर) सेटिंग क्लास को बंद कर दिया गया है.
get RewardsedVideoAdInstance() निकाला गया इसके बजाय, RewardedAd API का इस्तेमाल करें.
AdListener onAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAdLeftApplication() निकाला गया फ़ुल-स्क्रीन विज्ञापन फ़ॉर्मैट में, AdListener की जगह FullscreenContentCallback का इस्तेमाल किया जाता है. FullscreenContentCallback पर, इससे मिलता-जुलता कोई तरीका उपलब्ध नहीं है. AdListener से, तरीका हटा दिया गया है.
VideoController getAspectRatio() MediaContent.getAspectRatio()
AdRequest getGender() निकाला गया
getBirthday() निकाला गया
getNetworkExtras() निकाला गया
setManualimpressionsचालू है() निकाला गया
updateCorrelator() निकाला गया विज्ञापन के लिए कॉन्टेंट को फ़िल्टर करना देखें.
AdRequest.बिल्डर setBirthday() निकाला गया
setGender() निकाला गया
setIsDesignedForFamilies() निकाला गया गाइड देखें.
addTestDevice() अनुरोध कॉन्फ़िगरेशन.बिल्डर.setTestDeviceIds() टेस्ट विज्ञापन चालू करना लेख पढ़ें.
tagForChildDirectedTreatment() अनुरोध कॉन्फ़िगरेशन.Builder.setTagForChildDirectDirectment() विज्ञापन के लिए कॉन्टेंट को फ़िल्टर करना देखें.
setTagForअंडरAgeOfConsent() अनुरोध कॉन्फ़िगरेशन.Builder.setTagForअंडरAgeOfConsent()
setMaxAdContentRating() अनुरोध कॉन्फ़िगरेशन.बिल्डर.setMaxAdContentRating()
AdView getMediaAdapterClassName() ResponseInfo.getमीडिएशनAdapterClassName() ResponseInfo ऑब्जेक्ट अब AdView तरीके getResponseInfo() के ज़रिए उपलब्ध है.
NativeAdOptions setImageOrientation() setMediaAspectRatio()
getImageOrientation getMediaAspectRatio()
RewardedAd loadAd(AdRequest, RewardedAdLoadCallback) RewardsedAd.load(कॉन्टेक्स्ट, स्ट्रिंग, AdRequest, RewardedAdLoadCallback) अब दूसरे फ़ुल-स्क्रीन फ़ॉर्मैट की तरह ही RewardsedAd, स्टैटिक लोड करने की प्रोसेस का ही इस्तेमाल करता है.
लोडAd(PublisherAdRequest, RewardedAdLoadCallback) RewardedAd.load(कॉन्टेक्स्ट, स्ट्रिंग, AdManagerAdRequest, RewardedAdLoadCallback)
isLoaded() निकाला गया स्टैटिक लोड करने के तरीके से कॉलबैक, पहले से लोड किया गया विज्ञापन उपलब्ध कराता है.
दिखाएं(गतिविधि, इनाम वाला विज्ञापन कॉलबैक) शो(गतिविधि, OnUserGetedRewardListener) कॉन्टेंट दिखाने का यह तरीका, फ़ुल-स्क्रीन फ़ॉर्मैट के लिए बने बड़े फ़ॉर्मैट के हिसाब से है.
RewardedAdLoadCallback on RewardsedAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
on RewardsedAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onRewardedAdLoaded() onAdLoaded(RewardedAd)
AppOpenAdLoadCallback onAppOpenAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
onAppOpenAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
onAppOpenAdLoaded(AppOpenAd) onAdLoaded(AppOpenAd)
Rewardedइंटरस्टीशियलAdLoadकॉलबैक onRewardedइंटरस्टीशियलAdFailedToLoad(int) onAdFailedToLoad(LoadAdError)
on Rewardsedइंटरस्टीशियलAdFailedToLoad(LoadAdError) onAdFailedToLoad(LoadAdError)
on Rewardsedइंटरस्टीशियलAdलोड किया गया(Rewardedइंटरस्टीशियलAd) onAdLoaded(Rewardedइंटरस्टीशियलAd)
InterstitialAd नया InterstitialAd() इंटरस्टीशियलAd.load(कॉन्टेक्स्ट, स्ट्रिंग, AdRequest, इंटरस्टीशियलAdLoadCallback) अब इंटरस्टीशियल विज्ञापन में उसी तरीके से लोड करने की प्रोसेस अपनाई जाती है, जैसे कि दूसरे फ़ुल-स्क्रीन फ़ॉर्मैट में होती है.
setAdListener()
DynamicHightSearchAdअनुरोध getNetworkExtras() निकाला गया NetworkExtras क्लास को बंद कर दिया गया है.
AdLoader कॉन्टेंट के लिए विज्ञापन() निकाला गया
AppInstallAd() के लिए निकाला गया
withCorrelator() निकाला गया
getMediaAdapterClassName() निकाला गया