Hello Google AdMob/Developer Community,
I’d like to confirm the recommended integration order for the Google Mobile Ads SDK and the User Messaging Platform (UMP) SDK to ensure full compliance with GDPR, Google Play Developer Program Policies, and Google’s EU User Consent Policy.
My current proposed sequence at app launch is:
Initialize the Google Mobile Ads SDK (e.g., MobileAds.initialize()),
Note: At this stage, I do not request or load any ads yet.
Request and present the UMP consent form if required (e.g., ConsentInformation.requestConsentInfoUpdate() followed by loading and showing the consent form).
Request and display ads (e.g., AdView.loadAd(adRequestAds())) only after consent has been obtained or confirmed.
Is this the optimal and recommended flow for AdMob + UMP integration under GDPR?
Specifically, is it correct (and policy‑compliant) to initialize the Mobile Ads SDK before showing the consent form, given that I do not request any ads until after consent is handled?
Would this sequence fully satisfy GDPR, Google Play policies, and Google’s EU User Consent Policy?
Thank you very much for your guidance!
Hi,
Thank you for contacting the Mobile Ads SDK Support team.
Yes, your proposed integration flow is optimal and compliant with GDPR, Google Play Developer Program Policies, and Google’s EU User Consent Policy.
Questions:
1. Is this the optimal and recommended flow for AdMob + UMP integration under GDPR?
Yes. Your proposed flow is the correct, recommended, and compliant integration method for using the Google Mobile Ads SDK with the User Messaging Platform (UMP) SDK under GDPR.
2. Specifically, is it correct (and policy‑compliant) to initialize the Mobile Ads SDK before showing the consent form, given that I do not request any ads until after consent is handled?
Yes. It is policy-compliant and allowed to initialize the Mobile Ads SDK before showing the UMP consent form, as long as no ads are requested or loaded before consent is obtained. Initialization (MobileAds.initialize()) can be called at app launch and does not process personal data.
3. Would this sequence fully satisfy GDPR, Google Play policies, and Google’s EU User Consent Policy?
Yes. The sequence fully satisfies GDPR, Google Play policies, and Google’s EU User Consent Policy.
I hope this helps! Let me know if you have any other questions.
![]() |
Mobile Ads SDK Team |
[2025-07-30 06:59:47Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01sxDN0:ref" (ADR-00321136)
Hi,
Thanks again for confirming the recommended AdMob + UMP integration flow.
I’m facing an issue where the UMP consent form sometimes triggers the following warning on the very first app launch after installation:
When this happens, the app UI briefly flickers before the consent form appears. Although the form eventually shows and works, the flicker negatively impacts the first‑time user experience. On subsequent app launches, this issue does not occur.
Notes:
I initialize Mobile Ads SDK at app launch (MobileAds.initialize()), but I do not load ads until after consent.
I follow the recommended sequence: initialize SDK → run UMP consent flow → request ads.
A retry mechanism ensures the consent flow starts once the SDK is ready.
Questions:
Is this flickering on first launch expected behavior?
If not, what is the best practice to avoid the “Activity is invalid” warning and ensure the consent form appears smoothly on the first run?
Thanks for your guidance!
Hi,
Thank you for getting back to us.
Please note that the Mobile Ads SDK should be fully initialized before triggering the UMP consent flow. The best way to optimize initialization is to call MobileAds.initialize() on a background thread, as described in the Get Started guide.
No, this is not expected behavior. The UMP consent form should ideally appear smoothly without flickering on the first launch. The warning (Activity is invalid) usually means the consent flow is trying to run before the Activity context is properly ready to handle the consent form.
If the issue still persists, kindly provide the below information via reply to author option for further investigation:
![]() |
Mobile Ads SDK Team |
[2025-07-31 07:27:57Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01sxDN0:ref" (ADR-00321136)
Hi,
Yes you are correct, As per the get started Get Started, Consent must be handled before SDK initialization, otherwise preloaded ads may not respect user preferences or regulatory requirements.You can check the Google sample application for a reference implementation.![]() |
Mobile Ads SDK Team |
[2025-08-01 22:49:19Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01sxDN0:ref" (ADR-00321136)
Hello gain,
I'm facing an issue that appeared after I updated the Google Mobile Ads SDK to version 36. My app's "Slow warm start rate" metric has significantly increased, which I believe is a result of this update.
The problem seems to be that when a user opens the app without an internet connection, the UMP (User Messaging Platform) and Mobile Ads SDKs attempt to initialize, but the process hangs and eventually times out. This causes a long delay before the main content is displayed.
To address this, I've implemented a network check at the start of my app. If the device is offline, I completely skip the initialization of both SDKs. This has made the app's startup much faster for users without a network connection.
I'd like to ask the community if this is the standard or recommended approach to address this specific "slow warm start" issue. Are there any other best practices for handling ad and consent initialization when a device is offline?
Thank you for your insights!
Hi,
Thank you for getting back to us.
Could you please confirm if the SDK is being initialized on a background thread?
It is important to note that initializing the SDK using the MobileAds.initialize() method is optional. Also, if you decided not to call this method, the SDK will be initialized automatically on your very first Ad request which might increase the Ads load time to a few milliseconds more. That said, you should be able to load Ads with or without implementing the MobileAds.initialize() as it is mainly for the purpose of initializing the SDK ahead to decrease load time on the first Ad request.
We do not recommend skipping SDK initialization, especially for consent handling, since consent needs to be collected before showing the ads.
If you skip the UMP SDK initialization when the device is offline, consent cannot be requested or collected.
Instead of skipping the initialization entirely, initialize the SDK later when the device goes online but must not show ads until proper consent has been collected
![]() |
Mobile Ads SDK Team |
[2025-09-02 20:31:51Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01sxDN0:ref" (ADR-00321136)
![]() |
Mobile Ads SDK Team |
[2025-09-03 08:37:26Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01sxDN0:ref" (ADR-00321136)
Dear Mobile Ads SDK Team ,
I'm writing to share feedback on the Mobile Ads SDK, specifically concerning performance and the UMP consent flow. I've encountered some challenges that I believe could be addressed by incorporating solutions directly into the library.
Startup Delays with Offline/VPN Connections: The MobileAds.initialize() call can cause significant app startup delays (over 10 seconds) when the device has an internet signal but no real connectivity. This happens because the library waits for a network timeout, which is a major concern for user experience and Play Console metrics.
Proposed Solution: Integrate a fast, internal network reachability check. If a real connection isn't detected within a short timeout, the SDK should fail gracefully and quickly, preventing long startup delays.
UMP Consent Flow in Multi-Activity Apps: When a user navigates to a new activity before the UMP form appears, the consent flow can be interrupted. The current callback-based approach is tied to a specific activity, which can lead to lost callbacks and requires complex, custom state management.
Proposed Solution: The SDK should manage the consent state centrally (e.g., via a singleton). This would allow any activity to simply query the current status and display the UMP form when needed, without risking a broken consent flow.
I hope you'll consider this feedback. Integrating these solutions into the SDK would greatly improve its robustness and developer experience.
I have kept this message brief, but I am happy to provide more details about our implementation and the issues we've debugged. Please feel free to ask any questions you have.
Thank you.