Mr.AndroidShin / Dev Tools

Debugging log · Monetization

AdMob suspended my account for "invalid traffic"

One day the ads stopped and a message said my account was flagged for invalid traffic — ad serving limited or suspended. The instinct is to suspect a competitor or a bot attack, and occasionally that's real. But far more often, for a solo developer, the invalid traffic came from us: testing an ad-supported app the wrong way. This one is worth understanding before it happens, because prevention is far easier than appeal.

The short version: "invalid traffic" means clicks or impressions Google's systems don't trust. The most common self-inflicted causes are testing with your real ad unit IDs, tapping your own ads, and asking users to click. Use test ads during development, never touch your own live ads, and never encourage clicks.

What "invalid traffic" means

AdMob pays advertisers' money for clicks and impressions, so it aggressively filters anything that looks inflated or non-genuine: a developer clicking their own ads, repetitive clicks from one device, bots, or users nudged to tap. When the filters decide a meaningful share of your traffic isn't trustworthy, they limit or suspend serving to protect advertisers. It isn't a judgment that you're malicious — it's the system refusing to bill advertisers for traffic it can't trust, and a new or low-volume account trips it more easily because there's little history to weigh against a burst of odd activity.

The self-inflicted causes (most common)

How to never cause it

If you're already flagged

The honest framing: treat your own live ad units as untouchable. If you never load or tap them outside of real users, the most common path to this suspension simply can't happen. Test ads exist precisely so you can develop freely — use them from day one.

AdMob's policy wording and appeal flow change over time; the principle — only genuine, un-encouraged user traffic on live units — is the stable part. This is general developer guidance, not account-specific advice.