इस पेज पर, मौजूदा और पिछले वर्शन के लिए माइग्रेशन के बारे में बताया गया है.
v22 से v23 पर माइग्रेट करना
Android का कम से कम एपीआई लेवल 21 होना चाहिए
Google Mobile Ads SDK के 23.0.0 वर्शन से, सभी ऐप्लिकेशन के लिए कम से कम Android एपीआई लेवल 21 की ज़रूरत होगी. एपीआई लेवल में बदलाव करने के लिए, ऐप्लिकेशन-लेवल की build.gradle
फ़ाइल में minSdkVersion
की वैल्यू को 21 या उससे ज़्यादा पर सेट करें.
काम न करने वाले तरीके हटाए गए/उनकी जगह नए तरीके इस्तेमाल किए जा रहे हैं
v22.0.0 API | v23.0.0 API |
---|---|
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)
|
void MobileAds.setSameAppKeyEnabled() | boolean MobileAds.putPublisherFirstPartyIdEnabled() |
v21 से v22 पर माइग्रेट करना
Google Mobile Ads SDK का वर्शन पाने के लिए, MobileAds.getVersion() का इस्तेमाल करें
MobileAds.getVersionString()
का तरीका, MobileAds.getVersion()
के पक्ष में, वर्शन 22.0.0 में हटा दिया गया है.
नया तरीका, बाहरी वर्शन का अनुमानित नंबर दिखाता है. उदाहरण के लिए,
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 या उसके बाद के वर्शन पर अपडेट करें
Google Mobile Ads SDK टूल के 21.0.0 वर्शन से, सभी ऐप्लिकेशन के लिए कम से कम Android एपीआई लेवल 19 की ज़रूरत होगी. एपीआई लेवल में बदलाव करने के लिए, अपने ऐप्लिकेशन की बिल्ड फ़ाइल में minSdkVersion
की वैल्यू को 19 या उससे ज़्यादा पर सेट करें.
वैल्यू न होने पर गड़बड़ी का मैसेज दिखाने की ज़रूरी शर्त लागू करना
एनोटेशन के लिए तय की गई ज़रूरी शर्तों को लागू करने की तैयारी के तहत, उन सभी एपीआई में @NonNull
एनोटेशन जोड़े गए हैं जिनमें पहले एनोटेशन के लिए तय की गई ज़रूरी शर्तों के बारे में साफ़ तौर पर नहीं बताया गया था.
अगर शून्य वैल्यू की सुरक्षा से जुड़े उल्लंघन होते हैं और पहले null
वैल्यू को सुरक्षित तरीके से मैनेज नहीं किया गया था, तो इस बदलाव से Kotlin ऐप्लिकेशन और Java के शून्य वैल्यू की जांच करने वाले फ़्रेमवर्क का इस्तेमाल करने वाले ऐप्लिकेशन काम नहीं कर सकते. शून्य वैल्यू की सुरक्षा के बारे में Kotlin दस्तावेज़ देखें.
addNetworkExtras() तरीके को हटाना
SDK टूल के 20.3.0 वर्शन में, addNetworkExtras()
का वह तरीका बंद कर दिया गया है जो किसी खास विज्ञापन नेटवर्क अडैप्टर को NetworkExtras
इंस्टेंस के तौर पर अतिरिक्त पैरामीटर भेजता है. साथ ही, इसे 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 में हुए बड़े बदलावों के बारे में बताया गया है.
फ़ुल-स्क्रीन फ़ॉर्मैट वाले एपीआई के अपडेट
वर्शन 20.0.0 से, इंटरस्टीशियल, इनाम वाले, इनाम वाले इंटरस्टीशियल, और ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन फ़ॉर्मैट को स्टैंडर्ड किया गया है, ताकि एपीआई के डिज़ाइन को लगातार फ़ॉलो किया जा सके.
फ़ुल-स्क्रीन फ़ॉर्मैट वाले सभी एपीआई, इन सिद्धांतों का इस्तेमाल करते हैं:
- स्टैटिक लोड करने का तरीका
- मिलता-जुलता लोड कॉलबैक या हैंडलर का तरीका
- प्रज़ेंटेशन कॉलबैक के लिए,
FullScreenContentCallback
क्लास पर निर्भरता
RewardedVideoAd के लेगसी एपीआई को हटाना
नया RewardedAd
API, मार्च 2019 में पहली बार लॉन्च किया गया था. यह 18 महीने से, इनाम वाला पसंदीदा API है. इसमें, लेगसी RewardedVideoAd
एपीआई की तुलना में ज़्यादा बेहतर सुविधाएं हैं. जैसे, एक से ज़्यादा इनाम वाले विज्ञापन एक साथ लोड करने की सुविधा.
SDK टूल के 20.0.0 वर्शन में, लेगसी RewardedVideoAd
एपीआई को हटा दिया गया है.
अडैप्टिव बैनर के पक्ष में स्मार्ट बैनर की सुविधा बंद की जा रही है
स्मार्ट बैनर विज्ञापनों का इस्तेमाल बंद कर दिया गया है. अब अडैप्टिव बैनर विज्ञापनों का इस्तेमाल किया जा सकता है. अडैप्टिव बैनर, विज्ञापन की चौड़ाई सेट करने में बेहतर परफ़ॉर्मेंस और ज़्यादा सुविधा देते हैं. अगर आपको फ़ुल-विड्थ बैनर का इस्तेमाल जारी रखना है, तो अडैप्टिव बैनर का इस्तेमाल करके ऐसा किया जा सकता है. इसका उदाहरण नीचे दिए गए कोड स्निपेट में दिया गया है:
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) } }
Leave application callback removal
सभी विज्ञापन फ़ॉर्मैट के लिए 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 | rewarded.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 |
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.TagForUnderAgeOfConsent | हटाया गया |
इंटरफ़ेस 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
क्लास में ले जाया गया है.- RewardedAd और InterstitialAd API को अपडेट किया गया है, ताकि वे सभी फ़ुल-स्क्रीन फ़ॉर्मैट के साथ काम कर सकें.
- कोरेलेटर की सुविधाएं हटा दी गई हैं.
कक्षा | v19.5.0 API | v20.0.0 API | नोट |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | initialize(Context, String) | MobileAds.initialize(Context, OnInitializationComplete |
ऐप्लिकेशन आईडी अब AndroidManifest.xml में सेट हो गया है. |
initialize(Context, String, MobileAds.Settings) | initialize(Context, OnInitializationComplete |
Settings क्लास को बंद कर दिया गया है. | |
getRewardedVideo |
हटाया गया | इसके बजाय, RewardedAd API का इस्तेमाल करें. | |
AdListener | onAdFailedToLoad(int) | onAd |
|
onAdLeftApplication() | हटाया गया | फ़ुल-स्क्रीन विज्ञापन फ़ॉर्मैट, AdListener के बजाय FullscreenContentCallback का इस्तेमाल करते हैं. साथ ही, FullscreenContentCallback के लिए कोई दूसरा तरीका भी उपलब्ध नहीं है. इस तरीके को AdListener से हटा दिया गया है. | |
VideoController | getAspectRatio() | MediaContent.getAspectRatio() | |
AdRequest | getGender() | हटाया गया | |
getBirthday() | हटाया गया | ||
getNetworkExtras() | हटाया गया | ||
setManualImpressions |
हटाया गया | ||
updateCorrelator() | हटाया गया | विज्ञापन के कॉन्टेंट को फ़िल्टर करने की सुविधा देखें. | |
AdRequest.Builder | setBirthday() | हटाया गया | |
setGender() | हटाया गया | ||
setIsDesignedForFamilies() | हटाया गया | गाइड देखें. | |
addTestDevice() | RequestConfiguration |
टेस्ट विज्ञापन चालू करना लेख पढ़ें. | |
tagForChildDirectedTreatment() | RequestConfiguration |
विज्ञापन के कॉन्टेंट को फ़िल्टर करने की सुविधा देखें. | |
setTagFor |
RequestConfiguration |
||
setMaxAdContentRating() | RequestConfiguration |
||
AdView | getMediationAdapter |
ResponseInfo |
ResponseInfo ऑब्जेक्ट अब AdView के getResponseInfo() तरीके से उपलब्ध है. |
NativeAdOptions | setImageOrientation() | setMediaAspectRatio() | |
getImageOrientation | getMediaAspectRatio() | ||
RewardedAd | loadAd(AdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) | RewardedAd अब उसी स्टैटिक लोड अप्रोच का इस्तेमाल करता है जो अन्य फ़ुल-स्क्रीन फ़ॉर्मैट में इस्तेमाल किया जाता है. |
loadAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback) | ||
isLoaded() | हटाया गया | स्टैटिक लोड करने के तरीके से मिलने वाला कॉलबैक, पहले से लोड किया गया विज्ञापन दिखाता है. | |
show(Activity, RewardedAdCallback) | show(Activity, OnUserEarnedRewardListener) | शो दिखाने का यह तरीका, फ़ुल-स्क्रीन फ़ॉर्मैट के ज़्यादातर तरीकों के मुताबिक है. | |
RewardedAdLoadCallback | onRewardedAd |
onAd |
|
onRewardedAd |
onAd |
||
onRewardedAdLoaded() | onAdLoaded(RewardedAd) | ||
AppOpenAdLoadCallback | onAppOpenAd |
onAd |
|
onAppOpenAd |
onAd |
||
onAppOpenAd |
onAdLoaded(AppOpenAd) | ||
RewardedInterstitialAdLoad |
onRewardedInterstitialAd |
onAd |
|
onRewardedInterstitialAd |
onAd |
||
onRewardedInterstitialAd |
onAd |
||
InterstitialAd | new InterstitialAd() | InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) | InterstitialAd अब उसी स्टैटिक लोड के तरीके का इस्तेमाल करता है जो अन्य फ़ुल-स्क्रीन फ़ॉर्मैट में इस्तेमाल किया जाता है. |
setAdListener() | |||
DynamicHeightSearchAd |
getNetworkExtras() | हटाया गया | NetworkExtras क्लास का इस्तेमाल बंद कर दिया गया है. |
AdLoader | forContentAd() | हटाया गया | |
forAppInstallAd() | हटाया गया | ||
withCorrelator() | हटाया गया | ||
getMediationAdapter |
हटाया गया |