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

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

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

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

वर्शन 23.0.0 से, Google Mobile Ads SDK के लिए यह ज़रूरी है कि सभी ऐप्लिकेशन कम से कम Android API लेवल 21 पर चलने वाला ऐप्लिकेशन होना चाहिए. एपीआई लेवल को अडजस्ट करने के लिए, मान minSdkVersion है, जो कि आपके ऐप्लिकेशन-लेवल की build.gradle फ़ाइल में 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() वाला अमान्य है boolean MobileAds.putPublisherFirstPartyIdEnabled()

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

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

वर्शन 22.0.0 में मौजूद MobileAds.getVersionString() तरीके को हटा दिया गया है में से MobileAds.getVersion().

नया तरीका अनुमानित बाहरी वर्शन नंबर दिखाता है—उदाहरण के लिए, 22.0.0. इस परिवर्तन के बारे में अधिक जानकारी के लिए, नए Google मोबाइल का उपयोग करना देखें विज्ञापन 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 Mobile Ads SDK के लिए यह ज़रूरी है कि सभी ऐप्लिकेशन Android के एपीआई लेवल 19 पर चलने के लिए ज़रूरी है. एपीआई लेवल को अडजस्ट करने के लिए, minSdkVersion का मान 19 या उससे ज़्यादा होना चाहिए.

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

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

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

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

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

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

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

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

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

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

कस्टम इवेंट, पब्लिशर को इनका इस्तेमाल करने की सुविधा देते हैं 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 पेश किया गया कई नए API, और वर्शन तैयार करने के लिए बनाई गई कई क्लास को बंद कर दिया या उनके नाम बदल दिए 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
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.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()
getLandscapeBannerAdSizeWithWidth() getLandscapeAnchoredAdaptiveBannerAdSize()
getCurrentOrientationBannerAdSizeWithWidth() getCurrentOrientationAnchoredAdaptiveBannerAdSize()
MobileAds इनिशलाइज़(कॉन्टेक्स्ट, स्ट्रिंग) MobileAds.initialize(Context, OnInitializationCompleteलिसनर) ऐप्लिकेशन आईडी अब AndroidManifest.xml में सेट है.
शुरू करें(कॉन्टेक्स्ट, स्ट्रिंग, MobileAds.Settings) इनिशलाइज़(कॉन्टेक्स्ट, ऑन इनिशलाइज़ेशनकंपलीटलिसनर) सेटिंग क्लास को बंद कर दिया गया है.
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) RewardsedAd.load(कॉन्टेक्स्ट, स्ट्रिंग, AdRequest, RewardedAdLoadCallback) RewardsedAd अब उसी स्टैटिक लोड प्रोसेस का इस्तेमाल करता है जिसका इस्तेमाल अन्य फ़ुल-स्क्रीन फ़ॉर्मैट में दिख सकते हैं.
लोडAd(PublisherAdRequest, RewardedAdLoadCallback) RewardsedAd.load(कॉन्टेक्स्ट, स्ट्रिंग, AdManagerAdRequest, RewardsedAdLoadCallback)
isLoaded() निकाला गया स्टैटिक लोड करने के तरीके से कॉलबैक, पहले से लोड किया गया विज्ञापन उपलब्ध कराता है.
दिखाएं(गतिविधि, इनाम वाला विज्ञापन कॉलबैक) शो(गतिविधि, OnUserGetedRewardListener) शो दिखाने का यह तरीका, फ़ुल-स्क्रीन फ़ॉर्मैट के बड़े दायरे में आता है.
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(कॉन्टेक्स्ट, स्ट्रिंग, AdRequest, इंटरस्टीशियलAdLoadCallback) इंटरस्टीशियल Ad अब एक ही तरह के स्टैटिक तरीके से लोड होने की सुविधा का इस्तेमाल करता है जैसे दूसरे फ़ुल-स्क्रीन फ़ॉर्मैट.
setAdListener()
DynamicHeightSearchAdRequest getNetworkExtras() निकाला गया NetworkExtras क्लास का इस्तेमाल बंद कर दिया गया है.
AdLoader forContentAd() निकाला गया
forAppInstallAd() निकाला गया
withCorrelator() निकाला गया
getMediationAdapterClassName() निकाला गया