Publisher Perspectives: How Bad Ads Circumvent Ad Quality Blocking

On April 20, 2026, Google Play suspended dataDex, a Pokémon reference app by talZz, over a casino interstitial served through AdMob. The app had been live for ten years with ~5 million downloads, 600,000+ monthly active users, a 4.5+ rating, and a clean policy record. It was part of Google Play Pass since the program launched in 2019. 

dataDex, a Pokémon reference app with ~5 million downloads, a 4.5+ rating, and a clean policy record across ten years on Google Play. Source: Google Play

The issue was not that dataDex intended to run gambling content. Prior to the suspension, the developer had configured AdMob’s gambling-specific protections: Gambling & Betting (18+) blocked, and Social Casino Games blocked. It wasn’t enough.

The Suspension

Google Play cited its App Promotion policy, which makes developers responsible for the ads shown inside their apps, including ads delivered through third-party networks.

“We don’t allow apps that directly or indirectly engage in, or benefit from promotion practices (such as ads) that are deceptive or harmful to users or the developer ecosystem… It is your responsibility to ensure that any ad networks or affiliates associated with your app comply with these policies.”

Accountability sits with the app owner, even when the ad decisioning, classification, and delivery happen upstream.

What followed was an 18-day suspension that resulted in the removal of dataDex from Google Play. New users couldn’t find it and existing users couldn’t update it. The revenue impact was meaningful. talZz worked through three parallel support channels without resolution: a standard Play appeal that cycled four identical template responses without engaging with any of the evidence, an AdMob support thread that deflected three times without addressing the classifier failure, and a Developer Support ticket that was the only channel to acknowledge the situation on the merits, before the agent confirmed he’d done everything available to him and closed the case.

The irony is hard to miss. The tool Google Play expects publishers to use to meet that responsibility, AdMob’s category blocking controls, is also Google’s. The same company that issued the strike provided the compliance layer that failed to prevent it.

dataDex was reinstated on May 8, shortly after the story gained significant traction on X and Reddit. How the ads got there in the first place is the more important story.

Every Block Was On. It Didn’t Matter.

Before the suspension, dataDex had the relevant gambling-specific blocks active in AdMob: Gambling & Betting (18+) blocked, and Social Casino Games blocked. These are the controls AdMob provides specifically to prevent casino content from reaching an app’s users.

Following the suspension, the account was locked down further, blocking all remaining sensitive categories, setting the maximum content rating to Teen, and disabling the ad unit entirely. Those steps are documented below. But they address the symptom, not the cause.

dataDex’s AdMob Blocking Controls dashboard following the suspension, showing the full remediation configuration. The gambling-specific blocks (Gambling & Betting (18+) and Social Casino Games) were already active before the suspension occurred.

AdMob’s category blocking controls depend entirely on AdMob’s own classifier being correct. When a casino creative is submitted under a fake game-themed shell app and labeled “Games” or “Toys & Games,” the Gambling & Betting block never fires. Neither does Social Casino Games. The publisher’s configuration is intact, and irrelevant.

The Scheme: 11 Variants, One Demand Source

A single demand source ran at least 11 distinct variants of the same casino campaign through dataDex, all sharing the same structure: real casino creative dressed in fake game-themed metadata. Epic Tower Block Quest. Town Planner. Gold Gatherer. Duck Devourer. Each submitted as a mobile game, each classified by AdMob under non-sensitive categories. Each routed past the gambling-specific blocks, because at AdMob’s classification layer, they weren’t casino ads. They were games.

Two of the 11 documented variants served through dataDex via AdMob. Different creatives, different shell app names, different markets. However: same demand source, same classification “Toys & Games.”

The campaign ran across EU markets (Spain, Italy, Portugal, France, Belgium), all geos where casino advertising carries real compliance exposure for publishers. The 11 documented variants are a confirmed floor. The developer noted dozens more of the same pattern still in active circulation at the time of his AdMob support submission.

The classifier failure that allowed those variants through was never formally confirmed or addressed.

What This Means for Every Publisher Using Mediation

Category blocking is the control most AdMob publishers rely on. Block the right categories, set the content rating, consider it handled. That’s a reasonable assumption, until the classifier it depends on labels a casino creative as a game.

The developer had the relevant blocks in place, but the gap wasn’t in the configuration. It was structural, sitting one layer below any control he had access to. As he put it: “Prior to the incident, I genuinely believed that this type of content could not be served in my app given the AdMob configuration I had in place.

The gambling category is where this case played out, but the mechanism is not category-specific. Any creative submitted under falsified metadata bypasses any category block that depends on that metadata being accurate. Gambling today, adult content tomorrow. The structural gap is the same.

The Fix: Enforcement That Doesn’t Depend on the Classifier

AppHarbr operates on the app-developer side before any creative renders. The technology analyzes and validates against actual creative content:  the code, content, behavior and where the landing page leads, independent of how the demand source declared it upstream. A casino interstitial submitted under a fake game-themed shell app name is still a casino interstitial. AppHarbr’s detection doesn’t need AdMob’s classifier to label it correctly first.

AppHarbr’s incident view flags a gambling creative correctly classified as “Related to Vertical – Gambling”: the same campaign AdMob’s classifier labeled as “Games.” Detection is based on actual creative content, independent of how the demand source declared it upstream.

For publishers running ads in apps where gambling content has no place, that independence is the difference between a blocking configuration and a blocking guarantee.

 

The full technical documentation of the dataDex incident, including creative screenshots and support correspondence, is publicly available at datadex.app/technical-summary.

 

 

Sigal is a Content Writer at AppHarbr, covering mobile ad security, in-app ad quality, and the threats facing app developers and publishers in the programmatic ecosystem. You can find Sigal on LinkedIn to connect on all things AdTech.

EXPERIENCE APPHARBR’S INAPP ARMOUR

Ensure egaging experiences for engaged audiences.