इस पेज में मौजूदा और पिछले वर्शन के लिए माइग्रेशन के बारे में बताया गया है.
v22 से v23 पर माइग्रेट करें
Android का एपीआई लेवल कम से कम 21 होना चाहिए
वर्शन 23.0.0 से लेकर Google Mobile Ads SDK के काम करने के लिए, सभी ऐप्लिकेशन को Android API लेवल 21 पर चलने के लिए ज़रूरी है. एपीआई लेवल को अडजस्ट करने के लिए, ऐप्लिकेशन लेवल की build.gradle
फ़ाइल में minSdkVersion
की वैल्यू को 21 या उससे ज़्यादा पर सेट करें.
अमान्य तरीके हटाए गए/बदले गए
v22.0.0 एपीआई | 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() |
वर्शन 21 से 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
एनोटेशन जोड़े जाते हैं जिनमें पहले साफ़ तौर पर शून्य होने के बारे में नहीं बताया गया था.
इस बदलाव से, उन 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 में हुए बड़े बदलावों को हाइलाइट करती है.
फ़ुल-स्क्रीन फ़ॉर्मैट वाले एपीआई के अपडेट
वर्शन 20.0.0 और इसके बाद के वर्शन में, इंटरस्टीशियल, इनाम वाले विज्ञापन, इनाम वाले इंटरस्टीशियल विज्ञापन, और ऐप्लिकेशन खोलने पर दिखने वाले विज्ञापन फ़ॉर्मैट, एक जैसे एपीआई डिज़ाइन के हिसाब से बनाए गए हैं.
फ़ुल-स्क्रीन फ़ॉर्मैट वाले सभी एपीआई में इन सिद्धांतों का इस्तेमाल किया जाता है:
- स्टैटिक लोड मेथड
- एक मिलती-जुलती लोड कॉलबैक या हैंडलर प्रणाली
- प्रज़ेंटेशन कॉलबैक के लिए,
FullScreenContentCallback
क्लास पर भरोसा करना
लेगसी RewardedVideoAd API को हटाना
नया 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) } }
ऐप्लिकेशन कॉलबैक हटाना छोड़ें
सभी विज्ञापन फ़ॉर्मैट के लिए, 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 |
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.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
क्लास में ले जाया गया है.- RewardedAd और InterstitialAd API को अपडेट किया गया है, ताकि वे सभी फ़ुल-स्क्रीन फ़ॉर्मैट के साथ काम कर सकें.
- सहयोगी सुविधाएं हटा दी गई हैं.
कक्षा | वर्शन 19.5.0 एपीआई | v20.0.0 एपीआई | नोट |
---|---|---|---|
AdSize | getPortraitBanner |
getPortraitAnchored |
|
getLandscapeBanner |
getLandscapeAnchored |
||
getCurrentOrientation |
getCurrentOrientationAnchored |
||
MobileAds | initialize(Context, String) | MobileAds.initialize(Context, OnInitializationComplete |
ऐप्लिकेशन आईडी अब AndroidManifest.xml में सेट हो गया है. |
initialize(Context, String, MobileAds.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 अब उसी स्टैटिक लोड अप्रोच का इस्तेमाल करता है जो अन्य फ़ुल-स्क्रीन फ़ॉर्मैट में इस्तेमाल किया जाता है. |
लोडAd(PublisherAdRequest, RewardedAdLoadCallback) | RewardsedAd.load(कॉन्टेक्स्ट, स्ट्रिंग, AdManagerAdRequest, RewardsedAdLoadCallback) | ||
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 |
हटाया गया |