\n\n\n\n Dodgy Ads Are an Architecture Problem Wearing a Morality Costume - AI7Bot \n

Dodgy Ads Are an Architecture Problem Wearing a Morality Costume

📖 5 min read•891 words•Updated Sep 16, 2026

Google’s bad-ad problem is not a moderation failure. It is a classifier tuned exactly the way any of us would tune it if we were being paid per impression and judged on false positives. That is a less satisfying story than corporate villainy, and I think it is closer to the truth.

I build bots for a living. Classification pipelines, review queues, escalation logic, the whole unglamorous stack. So when the usual complaint surfaces again about scam ads slipping past the largest ad system on earth, my first instinct is not outrage. It is recognition. I have shipped systems that failed in the same shape, just with four fewer zeros on the traffic count.

Two ways a review system fails, and only one of them is interesting

The atomic14 writeup on this frames it with an old line worth keeping on a sticky note near your monitor: never attribute to malice that which is adequately explained by stupidity. The same piece then asks the uncharitable follow-up, whether it is actually in Google’s interest to remove ads that generate revenue.

Both readings can be true at once, and that is the part builders should sit with. A misaligned incentive does not need a conspiracy to express itself. It just needs a threshold. Every classifier has a knob that trades false positives against false negatives. Slide it one way and you block legitimate advertisers, generate support tickets, and lose money today. Slide it the other way and some scams get through, the harm lands on users rather than on your revenue line, and the cost arrives later as reputation damage that is hard to attribute to any single decision.

Nobody has to be evil. You just have to let the pain asymmetry pick the threshold for you.

What the 2026 changes actually tell us

Google’s stated position is that oversight gaps plus automated review mean some violations get missed. Fine. What is more revealing is the fix they reached for. In 2026, user complaints became a trigger for throttling ads.

That is a specific engineering move, and I like it more than I expected to. Limited ad serving is not new. It has lived on Display and YouTube for years as a throttle applied to advertisers Google does not fully trust yet, typically new accounts or accounts it cannot verify. What changed is the signal feeding it.

Read it as a design pattern rather than a policy update:

  • Instead of a binary allow or ban, there is a middle state that reduces exposure while evidence accumulates.
  • Instead of relying only on pre-serve review, downstream human signals feed back into serving decisions.
  • Instead of treating trust as a one-time check at signup, trust becomes a running score.

If you are building any kind of moderation bot, steal all three. The throttle state in particular is the one most people skip. Binary decisions force you to be confident, and confidence is expensive. A throttle lets you act on suspicion, which is cheap and available immediately.

Complaints as a signal come with their own bill

Any system that lets users influence serving is a system that can be gamed. Complaint volume is not a clean measure of harm. It correlates with audience size, with topic sensitivity, with how motivated a competitor happens to be that week. Feeding it into an automated throttle means you have handed a lever to whoever bothers to pull it. Google presumably weights and filters this heavily. Whatever you build, assume your version will be brigaded and design accordingly.

Automation keeps widening the surface it has to police

The tension gets sharper when you look at where Google Ads is heading. Their own rule for 2026 is that exact-match and phrase-match keywords can still trigger ads above or below an AI Overview, but only broad match and keywordless targeting are eligible for some placements. Meanwhile the July 2026 terms of service changes authorize more automated behavior, including Final URL Expansion sending traffic to landing pages the advertiser did not designate for that campaign.

Follow the logic. The system is being pushed toward less explicit advertiser specification and more machine inference about intent, matching, and destination. Every step in that direction adds combinations that no one reviewed in advance because no one wrote them down in advance. You cannot pre-approve a keywordless match against a page the advertiser did not select.

Which explains why the enforcement model had to move toward runtime signals like complaints. When you cannot enumerate the inputs, you stop trying to validate before execution and start monitoring after. That is a reasonable response to an unbounded input space. It also guarantees that some harm happens first and gets caught second.

What I take back to my own code

The lesson is not that Google is uniquely careless. It is that automation quality is a function of who absorbs the cost of each error type, and that no amount of model improvement fixes a threshold set by the wrong scoreboard.

So before tuning the model, write down who eats a false positive and who eats a false negative. If those are different parties, your system will drift toward whichever mistake hurts you least. Add a throttle state so you can act on partial evidence. Treat trust as continuous. And accept that the accuracy number you report is a policy choice dressed as a metric.

🕒 Published:

💬
Written by Jake Chen

Bot developer who has built 50+ chatbots across Discord, Telegram, Slack, and WhatsApp. Specializes in conversational AI and NLP.

Learn more →
Browse Topics: Best Practices | Bot Building | Bot Development | Business | Operations
Scroll to Top