
Power the next wave of games growth with ads innovation

Today, we are announcing that version 11.0.0 of the Google Mobile Ads SDK is now available. We recommend upgrading as soon as possible to get our latest features and performance improvements.
Version 11.0.0 no longer requires publishers to declare a view controller to present full-screen ads. As a result, SwiftUI Publishers can now present full-screen ads without the need for UIKit or UIViewControllerRepresentable
workarounds. See our SwiftUI guide for more information.
struct ContentView: View { private let adCoordinator = AdCoordinator() var body: some View { ... Button("Watch an ad") { adCoordinator.showAd() } } } private class InterstitialAdCoordinator: NSObject, GADFullScreenContentDelegate { private var interstitial: GADInterstitialAd? ... func showAd() { guard let interstitial = interstitial else { return print("Ad wasn't ready") } // The SDK uses the app's main window to look up view controllers // automatically when one is not provided. interstitial.present(fromRootViewController: nil) } }
The Google Mobile Ads SDK dependency on GoogleAppMeasurement has been removed. This dependency that powered the user metrics toggle in AdMob will be discontinued in early 2024. To continue collecting user metrics in AdMob, link your AdMob app to Firebase and integrate the Google Analytics for Firebase SDK into your app.
For the full list of changes, check the release notes. Check our migration guide to ensure your mobile apps are ready to upgrade.
Per the deprecation schedule, the release of version 11.0.0 means that:
As always, if you have any questions or need additional help, contact us via the developer forum.
In case you missed it, we announced new consent management platform requirements for serving ads in the EEA and UK. Beginning January 16, 2024, Google will require all publishers to use a Google-certified consent management platform (CMP) when serving ads to users in the European Economic Area or the UK.
In addition to growing our list of certified CMPs, we explored how to improve the User Messaging Platform (UMP) SDK developer experience for those who choose to use Google’s consent management solution. We are excited to share several updates in the latest iOS and Android versions that we think will streamline your integration.
The latest UMP SDK release introduces a new API, loadAndPresentIfRequired(), that consolidates the existing individual load and present consent form methods into a single method. The new API loads a consent form and if consent is required, automatically presents the consent form. This method is intended to be used at the beginning of a new app session.
Here is a code example of how to use the new API on iOS:
class ViewController: UIViewController { private var isMobileAdsStartCalled = false override func viewDidLoad() { super.viewDidLoad() UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(with: parameters) { [weak self] requestConsentError in guard let self else { return } // Call the helper method once consent information has been updated. UMPConsentForm.loadAndPresentIfRequired(from: self) { [weak self] loadAndPresentError in guard let self else { return } if UMPConsentInformation.sharedInstance.canRequestAds { self.startGoogleMobileAdsSDK() } } } // canRequestAds will be true if consent was gathered in the previous session. if UMPConsentInformation.sharedInstance.canRequestAds { startGoogleMobileAdsSDK() } } private func startGoogleMobileAdsSDK() { DispatchQueue.main.async { guard !self.isMobileAdsStartCalled else { return } self.isMobileAdsStartCalled = true // Initialize the Google Mobile Ads SDK. GADMobileAds.sharedInstance().start() // Request an ad. GADInterstitialAd.load(...) } } }
We added a new boolean property canRequestAds to use as a check before initializing the Google Mobile Ads SDK and requesting ads. canRequestAds
returns true when the consent status is either OBTAINED or NOT_REQUIRED; as a result you don’t need to implement any enum checking yourself.
You should use the canRequestAds
API in two places (as seen in the code snippet above):
requestConsentInfoUpdate.
It is possible consent has been gathered in the previous session in which case it is not necessary to wait for the callback to finish.GDPR requires that publishers allow users to withdraw their consent choices at any time. It should be as easy to withdraw consent as it is to gather consent. To simplify this process, we have added two new APIs:
Here is a code example of how to use the new APIs on iOS:
// Show a privacy options button if required. private var isPrivacySettingsButtonEnabled: Bool { return UMPConsentInformation.shared.privacyOptionsRequirementStatus == .required } // Present the privacy options form when a user interacts with your app. @IBAction func privacySettingsTapped(_ sender: UIBarButtonItem) { UMPConsentForm.presentPrivacyOptionsForm(from: self) { [weak self] formError in guard let self, let formError else { return } // Handle the error. } }
We updated our AdMob banner samples applications for iOS and Android to showcase integrating the UMP SDK. Keep an eye out as we add UMP SDK support to the rest of our samples soon.
Also take a look at our iOS and Android developer documentation for instructions on how to implement the UMP SDK.
If you have any questions or need additional help integrating the UMP SDK, please contact us via the developer forum.
We’re excited to announce the launch of new testing features on ad inspector across all platforms for our AdMob and Ad Manager publishers.
Previously, ad inspector tested all ads in context - in other words, you had to fire up your app, navigate to the appropriate screen in the UI, and have your ad load as it would for any other user. While this provides for the most accurate testing scenario, it also puts more work on you as the publisher and tester of your app. You don’t want ads buried in more obscure screens in your app to lose out on the testing attention and care they need!
With our latest update, you can now use test ads to load requests for any ad unit - no matter where it's located in your app. Rather than needing to navigate through your app to test each ad unit, you can execute your tests directly from ad inspector.
Beginning with version v10.0.0 on iOS and v21.4.0 on Android of the Google Mobile Ads SDK, ad inspector supports running tests directly from the ad unit detail screen via a “Request test ad” button:
All of your requests made from your app’s UI or within ad inspector will appear in the SDK request log; your requests made from within ad inspector will be differentiated by being labeled with “Requested from ad inspector”. For these special requests you’ll be able to tap the “View” button one time to view the actual ad, see which network filled the slot, and more.
Alongside single ad source testing, these new testing features will allow you to rigorously test each individual ad network integration in your app.
To learn more about how to test your ads with ad inspector, check out our developer guides here:
If you have any questions or need additional help, please contact us via the developer forum.
We are excited to announce the release of Version 8 of the Google Mobile Ads for Unity plugin! This new version contains a number of new features and upgraded APIs.
The Google Mobile Ads Unity plugin now has a minimum Unity Engine version requirement of 2019.4. This was done to align with Unity’s long term support.
This release supports the Android Google Mobile Ads SDK version 22.0.0 major version release.
The Google Mobile Ads Unity plugin now includes support for the Google User Messaging Platform (UMP) to help you gather consent from app users. To enable UMP support, see the user privacy get started guide.
With the release of version 8, we now have launched C# reference documentation. Moreover, this version added xml-doc summaries to all public fields, properties, methods, and classes. This makes the plugin easier to use and provides full IntelliSense support when developing in Visual Studio.
Full-screen ad formats APIs now have a uniform interface and we are removing the old ad event APIs. These changes make the APIs for each ad format more consistent and easier to use. The new interface includes a static Load() method, use of generic delegates instead of EventArgs, and consistent ad events names across formats.
For a full list of changes and steps for upgrading your code, please see the version 8 migration guide.
The Google Mobile Ads Unity plugin now includes an optional support feature for Unity thread safety. This feature means you no longer need to manage threading concerns when handling platform events or callbacks.
If you use this feature, the SDK may pause events during full screen ad presentations. This means that you might not get some events, like OnAdFullScreenContentOpened or OnAdImpressionRecorded, until after the user comes back to the game. If you need to collect this data in real time, this might not be a good option. We recommend you test this feature to see if it works for you.
Here's an example of how to use Google Mobile Ads new thread safety support:
The Google Mobile Ads Unity plugin's Ad Placements feature is deprecated. There are no plans to move it into public release.
If you have any questions or concerns about migrating your project, please reach out on our developer forum.
We are excited to announce the release of our newest version of the Google Mobile Ads SDK. We recommend upgrading as soon as possible to stay up-to-date with our latest features.
Google Mobile Ads SDK version 22.0.0 introduces a few major changes:
MobileAds.getVersionString()
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
), helping you more clearly identify your SDK version. For more information about this change, see the Use the new Google Mobile Ads SDK getVersion() method blog post.
NativeCustomFormatAd.getVideoMediaView()
method to get the media asset for an Ad Manager native custom ad format. In version 22, NativeCustomFormatAd provides direct access to getMediaContent() enabling you to define your MediaView in layout files along with the rest of your other views, and simply populate that view with its content once the ad loads.See release notes for the full changelog. See our migration guide to help you migrate your apps.
Per the deprecated schedule announced last year, the release of iOS version 10.0.0 in February and this Android version 22.0.0 release activate the sunset period of earlier Android/iOS releases. Specifically:
We remain committed to regularly disabling old SDK versions balanced with minimizing disruption to ad serving. Aligned with this goal, we are making some changes to the previously announced sunset definition for 2023:
To avoid disruptions in ad serving, we highly recommend upgrading to a supported version as soon as possible so your users have a chance to update before June 30th, 2023.
To help you prepare for these changes, there are several ways you can check if your apps are affected:
As always, if you have any questions or need additional help, contact us through the developer forum.
Today, we’re excited to announce the launch of our 2023 Google Mobile Ads SDK Developer Survey. As part of our efforts to continue updating the AdMob and Ad Manager products, we’d like to hear from you about where we should focus our efforts. This includes product feedback as well as feedback on our guides, code samples and other resources. Your feedback will help shape our future product and resource roadmap.
This anonymous survey should only take about 15 minutes to complete and will provide our team with your valuable feedback as we plan for the months ahead. Whether you’re an engineer, Ad Ops personnel, or a PM, your feedback on AdMob, Ad Manager, and the Google Mobile Ads SDK is valuable to us. We appreciate you taking the time to help improve our developer experience!