This page covers migrations for current and previous versions.
Migrate from v23 to v24The following subsections describe breaking changes and behavior differences between major version 23 and 24 of the Google Mobile Ads SDK.
The minimum Android API level is 23Starting in version 24.0.0, the Google Mobile Ads SDK requires all apps to run on a minimum Android API level 23 to run. To adjust the API level, change the minSdk
value in your app-level build.gradle
file to 23 or higher.
By default, the OPTIMIZE_INITIALIZATION
and OPTIMIZE_AD_LOADING
flags are set to true
. For more information on these flags, see Optimize initialization and loading.
Starting with version 24.0.0, SDK releases no longer distribute the firebase-ads
and firebase-ads-lite
dependencies. Use the play-services-ads
dependency instead.
AppOpenAd.load()
methods that accept an orientation input parameter. Use AppOpenAd.load()
methods that don't take an orientation instead.AppOpenAdOrientation
enum.Version 24.0.0 adds the onUserEarnedReward()
callback in MediationRewardedAdCallback
and deprecates onUserEarnedReward(RewardItem)
. Mediation adapters must start calling onUserEarnedReward()
when the user earns a reward.
When forwarding callbacks from mediation adapters, all Google Mobile Ads SDK versions return the reward defined in the AdMob UI in OnUserEarnedRewardListener
.
The following classes were removed with no replacement:
DynamicHeightSearchAdRequest
SearchAdRequest
SearchAdView
The following methods were removed with no replacement:
Class Method RewardedInterstitialAdLoadCallbackonRewardedInterstitialAdLoaded()
onRewardedInterstitialAdFailedToLoad(int)
onRewardedInterstitialAdFailedToLoad(LoadAdError)
Methods deprecated
The following methods are deprecated with no replacement:
Class Method AdapterloadInterscrollerAd()
RtbAdapter loadRtbInterscrollerAd()
Migrate from v22 to v23
The following subsections describe breaking changes and behavior differences between major version 22 and 23 of the Google Mobile Ads SDK.
The minimum Android API level is 21Starting in version 23.0.0, the Google Mobile Ads SDK requires all apps to be on a minimum Android API level 21 to run. To adjust the API level, change the value of minSdkVersion
in your app-level build.gradle
file to 21 or higher.
The following subsections describe breaking changes and behavior differences between major version 21 and 22 of the Google Mobile Ads SDK.
Use MobileAds.getVersion() to get the Google Mobile Ads SDK versionThe MobileAds.getVersionString()
method is removed in version 22.0.0 in favor of MobileAds.getVersion()
.
The new method returns the expected external version number—for example, 22.0.0
. For more information about this change, see Use the new Google Mobile Ads SDK getVersion()
method.
The following table lists the specific changes in version 22.0.0:
Migrate from v20 to v21The following subsections describe breaking changes and behavior differences between major version 20 and 21 of the Google Mobile Ads SDK:
Update minSdkVersion to 19 or higherStarting from version 21.0.0, the Google Mobile Ads SDK requires all apps to be on a minimum Android API level 19 to run. To adjust the API level, change the value of minSdkVersion
in your app's build file to 19 or higher.
In preparation for enforcing strict nullability, @NonNull
annotations are added in all the APIs that previously did not explicitly define nullability.
This change may break the Kotlin apps and apps that use Java null checking frameworks if there are null safety violations and did not previously handle null
values in a safe way (see the Kotlin documentation on Null-safety ).
The addNetworkExtras()
method that passes extra parameters as a NetworkExtras
instance to a specific ad network adapter was deprecated in SDK version 20.3.0, and will be removed in version 21.0.0. Use the addNetworkExtrasBundle()
method from the same AdRequest.Builder
class instead.
The following location methods will be removed in version 21.0.0:
setLocation(Location location)
method in the AdRequest.Builder
class that sets the user's location for mediation targeting purposes.getLocation()
method in the AdRequest
class that returns the user's location targeting information previously passed to the setLocation(Location location)
method.getLocation()
method in the MediationAdConfiguration
class that returns the location of the user, if defined by the AdRequest
.The location data is not used by Google to target ads. You should use third-party APIs to provide the information to third-party ad networks if required.
Custom event interfaces deprecationCustom events enable publishers using AdMob Mediation to set up a waterfall ad source that isn't one of the AdMob supported ad sources.
All the custom event interfaces are deprecated in favor of the Adapter
class and MediationAdLoadCallback
interface.
The following table lists the corresponding class or interface you must use for each custom event interface starting from version 21.0.0:
Migrate from v19 to v20There are many breaking changes in version 20.0.0. Version 19.7.0 introduced many new APIs, and deprecated or renamed many classes in preparation for version 20.0.0. This guide highlights the major changes in version 20.0.0.
Full-screen format API updatesStarting with version 20.0.0, interstitial, rewarded, rewarded interstitial, and App Open ad formats are standardized to follow a consistent API design.
All full-screen format APIs use the following principles:
FullScreenContentCallback
class for presentation callbacksThe newer RewardedAd
API was first introduced back in March 2019 and has been the preferred rewarded API for over 18 months. It has had more enhancements compared to the legacy RewardedVideoAd
API, including the ability to load more than one rewarded ad at a time.
The legacy RewardedVideoAd
API is removed in SDK version 20.0.0.
Smart banner ads are deprecated in favor of adaptive banner ads. Adaptive banners provide superior performance and more flexibility in setting ad width. If you prefer to continue using full-width banners, that can still be done using adaptive banner, as shown in the following code snippet:
Javapublic 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
The onAdLeftApplication
callback for all ad formats has been removed in favor of ProcessLifecycleOwner
. Using an OS-level API notifies you whenever users leave your app, regardless of whether or not it is due to an ad interaction.
Note that the onAdLeftApplication
callback was never intended to be an ad click handler, and relying on this callback to report clicks did not produce an accurate metric. For example, a click the AdChoices icon that launched an external browser invoked the callback but did not count as a click.
The following table lists specific class names that have changed or are removed:
UnifiedNativeAd
have been renamed to NativeAd
.MobileAds.Settings
, NativeExpressAdView
, NativeAppInstallAd
, NativeContentAd
, and InstreamAd
classes and views have been removed.Publisher
prefix have been replaced with an AdManager
prefix.InterstitialAd
package name has changed.The following table lists the specific changes in version 20.0.0:
AdRequest.Builder()
class have either been removed or moved to the RequestConfiguration
class.ResponseInfo
object is available using the AdView
method, getResponseInfo()
. NativeAdOptions setImageOrientation() setMediaAspectRatio() getImageOrientation getMediaAspectRatio() RewardedAd loadAd(AdRequest, RewardedAdLoadCallback) RewardedAd.load(Context, String, AdRequest, RewardedAdLoadCallback) RewardedAd now uses the same static load approach as other full-screen formats. loadAd(PublisherAdRequest, RewardedAdLoadCallback) RewardedAd.load(Context, String, AdManagerAdRequest, RewardedAdLoadCallback) isLoaded() Removed The callback from the static load method provides an ad that is already loaded. show(Activity, RewardedAdCallback) show(Activity, OnUserEarnedRewardListener) This show method adheres to the broader full-screen format approach. 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() InterstitialAd.load(Context, String, AdRequest, InterstitialAdLoadCallback) InterstitialAd now uses the same static load approach as other full-screen formats. setAdListener() DynamicHeightSearchAdRequest getNetworkExtras() Removed The NetworkExtras class has been deprecated. AdLoader forContentAd() Removed forAppInstallAd() Removed withCorrelator() Removed getMediationAdapterClassName() Removed
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3