इस पेज पर मौजूदा और पिछले वर्शन के लिए माइग्रेशन के बारे में बताया गया है.
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 |
अडैप्टर,
|
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 |
localad.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.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 | getPortraitBanner |
getPortraitAnchored |
|
getलैंडस्केप बैनर |
getलैंडस्केप ऐंकर |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | इनिशलाइज़(कॉन्टेक्स्ट, स्ट्रिंग) | MobileAds.initialize(Context, OnInitializationComplete |
ऐप्लिकेशन आईडी अब AndroidManifest.xml में सेट है. |
शुरू करें(कॉन्टेक्स्ट, स्ट्रिंग, MobileAds.Settings) | इनिशलाइज़(कॉन्टेक्स्ट, ऑन इनिशलाइज़ेशनकंपलीट |
सेटिंग क्लास को बंद कर दिया गया है. | |
get RewardsedVideo |
निकाला गया | इसके बजाय, RewardedAd API का इस्तेमाल करें. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | निकाला गया | फ़ुल-स्क्रीन विज्ञापन फ़ॉर्मैट में, AdListener की जगह FullscreenContentCallback का इस्तेमाल किया जाता है. FullscreenContentCallback पर, इससे मिलता-जुलता कोई तरीका उपलब्ध नहीं है. AdListener से, तरीका हटा दिया गया है. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | निकाला गया | |
getBirthday() | निकाला गया | ||
getNetworkExtras() | निकाला गया | ||
setManualimpressions |
निकाला गया | ||
updateCorrelator() | निकाला गया | विज्ञापन के लिए कॉन्टेंट को फ़िल्टर करना देखें. | |
AdRequest.बिल्डर | setBirthday() | निकाला गया | |
setGender() | निकाला गया | ||
setIsDesignedForFamilies() | निकाला गया | गाइड देखें. | |
addTestDevice() | अनुरोध कॉन्फ़िगरेशन |
टेस्ट विज्ञापन चालू करना लेख पढ़ें. | |
tagForChildDirectedTreatment() | अनुरोध कॉन्फ़िगरेशन |
विज्ञापन के लिए कॉन्टेंट को फ़िल्टर करना देखें. | |
setTagFor |
अनुरोध कॉन्फ़िगरेशन |
||
setMaxAdContentRating() | अनुरोध कॉन्फ़िगरेशन |
||
AdView | getMediaAdapter |
ResponseInfo |
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 RewardsedAd |
onAd |
|
on RewardsedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
Rewardedइंटरस्टीशियलAdLoad |
onRewardedइंटरस्टीशियलAd |
onAd |
|
on Rewardsedइंटरस्टीशियलAd |
onAd |
||
on Rewardsedइंटरस्टीशियलAd |
onAd |
||
InterstitialAd | नया InterstitialAd() | इंटरस्टीशियलAd.load(कॉन्टेक्स्ट, स्ट्रिंग, AdRequest, इंटरस्टीशियलAdLoadCallback) | अब इंटरस्टीशियल विज्ञापन में उसी तरीके से लोड करने की प्रोसेस अपनाई जाती है, जैसे कि दूसरे फ़ुल-स्क्रीन फ़ॉर्मैट में होती है. |
setAdListener() | |||
DynamicHightSearchAd |
getNetworkExtras() | निकाला गया | NetworkExtras क्लास को बंद कर दिया गया है. |
AdLoader | कॉन्टेंट के लिए विज्ञापन() | निकाला गया | |
AppInstallAd() के लिए | निकाला गया | ||
withCorrelator() | निकाला गया | ||
getMediaAdapter |
निकाला गया |