Log in / Create free account🌐 ES☀️

Advanced training · Module 5 — Ad fraud — farms, apps, bots and IPs, and how an account defends itself

Spotting farms and networks: the signals of a rubbish domain and how to group domains by their fingerprint

⏱️ 11 min read · 🛡️ Fraud 🖼️ Display · updated on 2026-08-22

🎧 Listen to the lesson · ≈ 4 min🔒 Subscribers only

Excluding domains one by one is losing the war: the farm just creates another one. Defending yourself properly takes the two things this lesson teaches: scoring a site with objective signals (so you can decide without visiting thousands of sites) and grouping domains by their fingerprint (so you can exclude the whole network when one of them falls).

Scoring a site: the farm signals

An automated analyser visits the domain and measures:

Signal What it indicates
Ad density (ad blocks per screen, ad network scripts) Sites made for advertising: 5-10+ blocks per page
Content that is copied (duplicated on other sites), generated (templates, meaningless text) or minimal No editorial value
No author, no contact details, no "about us", no legal notice Nobody stands behind it
Domain age (recently registered) and a hidden registrant Disposable domains
ads.txt with dozens of sellers, or with IDs shared with other suspicious domains Resold inventory; the same operator
Technology: the same cheap template again and again A site factory
Redirects and pop-ups Forced traffic

Each signal adds points; the total (0-100) is the farm score. With thresholds:

70 exclude, 40-70 watch, < 40 legitimate.

The trust signals that clear a site

So that serious publishers (which also carry plenty of ads) are not condemned, the analyser subtracts points for signals of legitimacy:

With a cap on the discount (a site with every trust signal but extreme ad density is still suspicious), and with vetoes that no discount can cancel: illegal content, deceptive redirects, a language that does not match the market.

Grouping by fingerprint: network clustering

This is the decisive advantage. The domains of a single farm share infrastructure:

Fingerprint How you get it What it links
Server IP DNS resolution Same hosting (with care: shared hosting exists)
Name servers (NS) DNS Same provider/operator
RDAP record (registrant, dates, registrar) Public lookup Same owner (if not hidden) or the same pattern of dates
Publisher ID in ads.txt (AdSense / Ad Manager pub-ID) The domain's public file The same payment account: the strongest signal of all
Template and technology Page analysis The same factory

When an excluded domain shares its pub-ID, NS and IP with twenty others that have not yet spent a euro of yours, all twenty are excluded before they ever show up. That is the move from reactive to proactive: exclude the network, not the domain. (Querying sellers.json, the companion to ads.txt, is not viable from Apps Script because of its size; from your own server it is.)

The complete process

  1. Placement report (Display, video, PMax) every night → list of new domains.
  2. For each domain: analyse (farm signals − trust signals − vetoes) → score.
  3. Domains with a high score → account-level exclusion list.
  4. For each excluded domain: fingerprint (IP, NS, RDAP, pub-ID) → look for siblings in the census → exclude the family.
  5. Human review of the possible false positives (legitimate sites with a high score): an "to review" tab with a checkbox to reinstate them.
  6. A shared census: what one account learns protects the rest.

False positives: the other side of it

An aggressive analyser excludes regional press with lots of ads, or legitimate blogs on cheap templates. Hence: weighted trust signals, thresholds by sector, a whitelist of Safe Sites (and a "harvest campaign" to discover them), and human review of anything doubtful. The cost of a false positive is losing a bit of reach; the cost of a false negative is paying a farm. Calibrate knowing which one you prefer.

💡 Ninja trick: Ninja Shield is exactly this process: the Site Analyzer (now on our own server, because many farms block Google's IPs) scores every domain with farm and trust signals, the farm detector groups by IP, NS, RDAP and pub-ID, the exclusions go to the account list, the false positives tab lets you reinstate with a checkbox, and the census is shared across accounts. What this lesson describes in six steps happens every night.

What you should remember

📎 Sources and further reading

⚠️ Free training with no support. Ninja Scripts support channels (email and Telegram) are only for the use of the scripts, not for Google Ads questions or questions about this training.

Pick up here

← BeforeThe ad fraud ecosystem: who gets paid for your impressions, and why Google does not stop it entirelyAd fraud — farms, apps, bots and IPs, and how an account defends itselfAfter →Apps, IPs and non-human traffic: the other three doors into fraudAd fraud — farms, apps, bots and IPs, and how an account defends itselfRelacionadaMistakes with Display, PMax and automated campaigns: the money that leaks out unseenBeginner mistakes — real anonymised casesRelacionadaPlacements and exclusions: where Display money goes and how to shut the doorDisplay and remarketing in depth — audiences, exclusions and where the money goesRelacionadaSafe Sites, aggressiveness and calibration: protecting without losing reachAd fraud — farms, apps, bots and IPs, and how an account defends itselfRelacionadaThe campaign settings that can ruin you without you knowingInside the account — structure, campaigns, ad groups and MCC

Ver el temario completo

🎓
You're reading, in the open, a lesson from the subscribers' training

This page is read-only. With the Suite subscription you get the full academy — all three levels with audio, quizzes, favorites, highlights and certificates — plus the scripts working in your Google Ads account.

See the full Suite → Create my free account →
🥷

Subscriber feature

This option is part of the Ninja Scripts Suite subscription.

See the subscription →