इस पेज पर मौजूदा और पिछले वर्शन के लिए माइग्रेशन की जानकारी दी गई है.
वर्शन 22 से v23 पर माइग्रेट करना
Android में एपीआई का कम से कम लेवल 21 होना चाहिए
23.0.0 से शुरू होने वाले सभी ऐप्लिकेशन को चलाने के लिए यह ज़रूरी है कि सभी ऐप्लिकेशन
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() | boolean MobileAds.putPublisherFirstPartyIdEnabled() |
वर्शन 21 से v22 पर माइग्रेट करें
Google Mobile Ads SDK का वर्शन पाने के लिए, MobileAds.getVersion() का इस्तेमाल करें
MobileAds.getVersionString()
वाले तरीके को वर्शन 22.0.0 से हटा दिया गया है, ताकि यह 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 |
वर्शन 20 से v21 पर माइग्रेट करें
minSdkVersion को 19 या उसके बाद के वर्शन पर अपडेट करें
21.0.0 और Google Mobile Ads SDK के 21.0.0 वर्शन से, Google Mobile Ads 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 |
वर्शन 19 से v20 पर माइग्रेट करें
वर्शन 20.0.0 में कई नुकसान पहुंचा सकने वाले बदलाव हैं. वर्शन 19.7.0 में कई नए एपीआई लॉन्च किए गए हैं या वर्शन 20.0.0 की तैयारी के लिए, कई क्लास के नाम बदले गए हैं या उनका नाम बदला गया है. यह गाइड वर्शन 20.0.0 में हुए बड़े बदलावों को हाइलाइट करती है.
फ़ुल-स्क्रीन फ़ॉर्मैट एपीआई के अपडेट
वर्शन 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 | इनाम वाले.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 |
format.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.TagForअंडरAgeOfConsent | हटाया गया |
इंटरफ़ेस AdRequest.MaxAdContentरेटिंग | हटाया गया |
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
क्लास में ले जाया गया है.- RewardedAd और इंटरस्टीशियल विज्ञापन एपीआई को अपडेट किया गया है, ताकि वे सभी फ़ुल-स्क्रीन वाले फ़ॉर्मैट के साथ अलाइन हो सकें.
- कोरेलेटर की सुविधाएं हटा दी गई हैं.
कक्षा | v19.5.0 एपीआई | v20.0.0 एपीआई | ज़रूरी जानकारी |
---|---|---|---|
AdSize | getपोर्ट्रेटबैनर |
getपोर्ट्रेटanchored |
|
getlandBanner |
getलैंडलैंडस्केप्ड |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | शुरू करें(कॉन्टेक्स्ट, स्ट्रिंग) | MobileAds.Instantize(कॉन्टेक्स्ट, OnInitializationcomplete |
ऐप्लिकेशन आईडी अब AndroidManifest.xml में सेट है. |
शुरू करें(कॉन्टेक्स्ट, स्ट्रिंग, MobileAds.Settings) | शुरू करें(Context, OnInitializationcomplete |
'सेटिंग' क्लास को अब बंद कर दिया गया है. | |
getRewardedVideo |
हटाया गया | इसके बजाय, RewardedAd API का इस्तेमाल करें. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | हटाया गया | फ़ुल-स्क्रीन विज्ञापन फ़ॉर्मैट में, AdListener के बजाय FullscreenContentCallback का इस्तेमाल किया जाता है. साथ ही, FullscreenContentCallback पर ऐसा कोई तरीका नहीं होता है. इस तरीका को AdListener से हटा दिया गया है. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | हटाया गया | |
getBirthday() | हटाया गया | ||
getNetworkExtras() | हटाया गया | ||
सेटमैन्युअल इंप्रेशन |
हटाया गया | ||
updateCorrelator() | हटाया गया | विज्ञापन के कॉन्टेंट को फ़िल्टर करने का तरीका देखें. | |
AdRequest.बिल्डर | setBirthday() | हटाया गया | |
setGender() | हटाया गया | ||
setIsDesignedForFamilies() | हटाया गया | गाइड देखें. | |
addTestDevice() | अनुरोध कॉन्फ़िगरेशन |
टेस्ट विज्ञापन चालू करना देखें. | |
tagForChildDirectedTreatment() | RequestConfiguration |
विज्ञापन के कॉन्टेंट को फ़िल्टर करने का तरीका देखें. | |
setTagFor |
अनुरोध कॉन्फ़िगरेशन |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
अब ResponseInfo ऑब्जेक्ट, AdView तरीके getResponseInfo() के ज़रिए उपलब्ध है. |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, RewardedAdLoadCallback) | RewardedAd.load(कॉन्टेक्स्ट, स्ट्रिंग, AdRequest, RewardedAdLoadCallback) | RewardedAd अब दूसरे फ़ुल-स्क्रीन फ़ॉर्मैट की तरह ही स्टैटिक लोड (स्टैटिक लोड) के तरीके का इस्तेमाल करता है. |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(कॉन्टेक्स्ट, स्ट्रिंग, AdManagerAdRequest, RewardedAdLoadCallback) | ||
isLoaded() | हटाया गया | स्टैटिक लोड के तरीके से लिया गया कॉलबैक, पहले से लोड किए गए विज्ञापन को दिखाता है. | |
शो(गतिविधि, RewardedAdCallback) | शो(गतिविधि, OnUserRewardedRewardListener) | शो का यह तरीका, फ़ुल-स्क्रीन फ़ॉर्मैट वाले फ़ॉर्मैट का पालन करता है. | |
RewardedAdLoadCallback | onRewardedAd |
onAd |
|
onRewardedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
इनाम वाले इंटरस्टीशियलAdLoad |
onRewardedaryAd |
onAd |
|
onRewardedइंटरस्टीशियलAd |
onAd |
||
onRewardedइंटरस्टीशियल विज्ञापन |
onAd |
||
InterstitialAd | नया InterstitialAd() | इंटरस्टीशियलAd.load(कॉन्टेक्स्ट, स्ट्रिंग, AdRequest, इंटरस्टीशियलAdLoadCallback) | इंटरस्टीशियल विज्ञापन में अब उसी तरीके से स्टैटिक लोड लोड होने की सुविधा का इस्तेमाल किया जाता है जिसका इस्तेमाल दूसरे फ़ुल-स्क्रीन फ़ॉर्मैट के लिए किया जाता है. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | हटाया गया | NetworkExtras क्लास को बंद कर दिया गया है. |
AdLoader | forContentAd() | हटाया गया | |
forAppInstallAd() | हटाया गया | ||
withCorrelator() | हटाया गया | ||
getMediationAdapter |
हटाया गया |