Skip to content
WebViewGold Vibe Coding to App Store
English
Get WebViewGold

Google Play rejection

Ads policy rejections: how to run AdMob in a WebViewGold app without breaking Google's rules

Google is fine with ads. It is not fine with ads that surprise the user, cover the content, appear before the app is usable, or reach children through an uncertified network. WebViewGold's AdMob integration has a handful of settings that decide which side of that line you land on.

From $109 one-time per platform, or let our team do it all from $698.

  • Approval guarantee – or money back within 14 days
  • No coding needed
  • One-time payment, free updates
  • 24/7 human support
  • Made in Germany since 2014 · ISO 27001

What the ads policy covers

The policy has three parts. Placement and timing: full-screen ads must not appear unexpectedly, for example at app start, between every tap, before content has loaded, or in a way that cannot be dismissed; ads must not be confused with app content or system notifications and must stay inside the app. Declarations: the "Contains ads" answer in App content, the advertising ID in the Data safety form and the content rating must agree with what the app does. Audience: apps that include children in their target audience may only use ad SDKs certified for families and must not show inappropriate ad content.

Reviewers do not read your AdMob settings. They install the app, tap around for a minute and watch what happens. An interstitial on the second tap, before they have seen your product, is enough for a rejection.

The rules in plain words

  • Timing

    No ads before the app is usable

    Interstitials at launch, during loading, or right after the splash screen are the classic violation. Show them after a completed action, at natural breaks.

  • Control

    Ads must be dismissible

    Full-screen ads need a visible close option after a short moment; ads that trap the user or re-open themselves are prohibited.

  • Clarity

    Ads must look like ads

    No banners styled as buttons of your app, no ads that imitate system dialogs or notifications, no ads in the status bar or on the lock screen.

  • Declare

    The ads flag must match

    If AdMob is enabled in Config.java, answer yes under App content, Ads, and declare the advertising ID in Data safety. The reverse mismatch, ads declared but none shown, is harmless; the first one is not.

  • Children

    Certified networks only

    For target audiences that include children, only ad SDKs from Google's families-certified list are allowed, with child-directed treatment configured. The simplest compliant choice for a children's app is no ads.

  • Content

    Ads must fit the rating

    Ad content must be appropriate for the age rating of the app. Configure content filters and the maximum ad content rating in your AdMob account.

Set up AdMob the policy-friendly way in WebViewGold

All options are in Config.java; the IDs go into strings.xml.

  1. Enter your AdMob IDs

    Create the app in your AdMob account, then paste the app ID and the banner and interstitial unit IDs into strings.xml as described in the AdMob documentation. A missing or wrong app ID crashes the app at launch, which shows up as a broken-functionality rejection instead.

  2. Banner ads: SHOW_BANNER_AD

    Set SHOW_BANNER_AD to true for a banner that sits outside the WebView. Make sure your web app's bottom navigation or floating buttons are not hidden behind it; the custom CSS injection can add bottom padding when the page runs in the app.

  3. Interstitials: SHOW_FULL_SCREEN_AD and SHOW_AD_AFTER_X

    Keep SHOW_AD_AFTER_X high enough that a reviewer can explore the app before the first full-screen ad, and leave INCREMENT_WITH_TAPS false so typing and scrolling do not count toward the next ad. Counting page loads instead of taps makes the timing predictable.

  4. Natural breaks: AD_TRIGGER_URLS

    Add URL fragments such as "/thank-you/" or "/result" to AD_TRIGGER_URLS so interstitials appear after a completed action rather than on a counter. This is the placement Google describes as acceptable, and it converts better too.

  5. Rewarded ads: ENABLE_REWARDED_ADS

    Rewarded ads are user-initiated, which makes them the safest format. Enable ENABLE_REWARDED_ADS and trigger them from your web app when the user chooses to watch an ad for a benefit; keep USE_REWARDED_ADS_WHERE_POSSIBLE false if your website code decides when to play them.

  6. Consent: ASK_FOR_AD_CONSENT

    Leave ASK_FOR_AD_CONSENT true so Google's consent management shows the required message to users in regions that need it, and configure the message in your AdMob account. Then answer yes under App content → Ads and add the advertising ID to Data safety.

Great way of converting your web app to a native app! Fast turn-around, and a great way to get your apps into the app stores without the need to develop a full native app!

Kevin Joling · FlightConnections & TrainConnections · Trustpilot

Placement that passes vs. placement that gets flagged

PassesFlagged
First impressionSplash, content, then ads after real useInterstitial right after launch or on the first tap
FrequencyOne interstitial after a completed task or a generous page countAds every few taps, ads while the user types
BannerFixed banner that never covers navigationBanner overlapping buttons or appearing to be part of the page
RewardedOpt-in with a clear benefit, closableForced "reward" ads with no opt-out
ChildrenNo ads, or families-certified SDK with child-directed settingsDefault AdMob in an app that appeals to children

Pre-submission ad checklist

  • Real AdMob IDs in strings.xml, test IDs removed, and your own device registered as a test device while you check placement.
  • First interstitial appears only after meaningful use; INCREMENT_WITH_TAPS false.
  • Banner does not cover your web app's navigation; padding added via custom CSS if needed.
  • App content → Ads answered yes; Data safety declares the advertising ID.
  • Content rating completed after enabling ads; target audience does not include children unless you configured child-directed ads.
  • Consent message configured in AdMob; ASK_FOR_AD_CONSENT true.

Frequently asked questions

Do I have to answer "Contains ads" if I only use rewarded ads?

Yes. Any ad format, including rewarded and banners, means the app contains ads. The label appears on your listing and reviewers check it against what they see.

Can I show an interstitial when the app starts?

No. Full-screen ads before the user has done anything in the app are the most common ads-policy rejection. Show them after a completed action or at a natural break.

Why was my AdMob account limited although Play approved the app?

AdMob has separate policies, for example about invalid traffic and clicking your own ads during testing. Use test ads and a registered test device during development, and only switch to live ad units for the release build.

Three ways to get your app into the stores

Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.

Do it yourself

$109 per platform, one-time

The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.

See plans on the main page

Cloud Builder

$349 per license, one-time add-on

No Mac, no Xcode, no Android Studio: configure in the browser, we build both apps in the cloud and hand them to App Store Connect and the Play Console.

How the Cloud Builder works Try the free demo

Full Service

$698 per platform $798

Send us your URL and icon. Our team configures, builds and delivers your app within 72 hours, white-label, with source projects. Both platforms for $1,158.

Full Service details Powered by WeSetupYourWebViewApp

Winter Sale prices valid until December 31, 2026.

Ready to ship your app?

App Store & Google Play approval guarantee – or your money back within 14 days

Rather hand it over? Full Service: we configure, build and deliver within 72 hours, from $698 per platform. Questions? Chat with us 24/7.

Refunds are granted under the conditions listed in our FAQ: a non-content rejection by Apple and/or Google, claimed within 14 days after purchase.