Seatext library / BotRefund evidence
How to Set Up Filters That Block Fake Traffic From Your Ads
Start with the built-in invalid-traffic filters in Google Ads and Meta Ads, then layer IP exclusion lists, geographic and device filters, and client-side behavioral detection to catch the bots platform filters miss. Connect detection...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Fake traffic inflates click counts, poisons conversion pixels, and wastes budget on clicks that never convert. The fastest way to stop it is to stack platform filters, your own IP exclusions, geographic and device rules, and a client-side behavioral detector that feeds suppression signals back to the ad platforms in real time.
Why Default Platform Filters Aren't Enough
Google and Meta run automated systems that look for rapid clicking, duplicate click signatures, known bad IP ranges, and abnormal server-level patterns. Those systems catch basic scrapers and data-center bots, but they struggle with advanced botnets that mimic human behavior, rotate residential proxies, and operate inside real browser sessions. Server-side audits look at server log files. They monitor IP addresses, request headers, and user-agent data. While this catches basic scraper bots, it struggles to detect advanced botnets. (S3) Client-side behavioral auditing closes that gap by measuring what the visitor actually does in the browser: mouse tremor, scroll depth, input timing, and interaction sequences that scripts struggle to fake.
Step 1: Enable Built-In Platform Protections
- In Google Ads, turn on Invalid click protection (Settings → Account settings → Invalid activity). Google will automatically credit some invalid clicks it detects.
- In Meta Ads Manager, enable Traffic quality filters at the account level and review the Invalid traffic column in reporting.
- Keep these on permanently—they are free and require no maintenance—but do not rely on them alone. Google’s detection is sophisticated but far from perfect, and Meta’s filters miss proxy-heavy fraud that looks like legitimate residential traffic. (S5)
Step 2: Build IP Exclusion Lists from Your Own Data
Platform filters only see traffic that reaches their networks. You see every request that hits your landing page. Export server logs or analytics sessions that show:
- Repeated clicks from the same IP within minutes
- Sessions under one second with zero scroll events
- High bounce rates from specific CIDR blocks
Add those IPs or CIDR ranges to Google Ads (Settings → IP exclusions) and Meta (Ad Account Settings → Traffic filters → IP block list). Update the lists weekly; botnets rotate addresses fast.
Step 3: Add Geographic and Device Filters
If your product only serves North America, exclude traffic from regions where you don’t operate. In Google Ads, use Location options → Exclude. In Meta, use Detailed targeting → Exclude locations. Pair geography with device filters: if you see a spike of clicks from headless-browser user agents or outdated OS versions, exclude those device categories. These broad filters catch low-effort bots before they reach your behavioral detector.
Step 4: Deploy Client-Side Behavioral Detection
Add a lightweight script that runs in the visitor’s browser and scores each session against 100+ independent checks. BotRefund’s detector measures:
- Ghost click detection — catches click activity that happens without the natural sequence of human intent. (S2)
- Honeypot trap interactions — watches for bots that respond to hidden or intentionally deceptive page elements. (S2)
- Robotic linear mouse movements — flags unnaturally straight pointer paths that rarely appear in real user sessions. (S2)
- Absence of humanlike mouse tremor — looks for the tiny imperfections and jitter typical of human movement. (S2)
- Superhuman input speed (<1ms) — identifies interactions that happen faster than a person could realistically perform. (S2)
- Grid-aligned movement patterns — detects movement that snaps to precise lines or blocks instead of natural curves. (S2)
- Absence of clicks or scrolling — highlights sessions that stay too static to match a real browsing journey. (S2)
- Unnatural session durations — catches visit lengths that are too short, too long, or too uniform to be human. (S2)
Each signal is independent evidence, not a verdict. The system cross-checks every signal against browser, network, device, and behavior context, then weighs the complete pattern with an AI model that identifies a visit as bot or human with 99% accuracy. (S6, S8)
Step 5: Connect Detection to Automated Suppression
Detection alone doesn’t stop the waste. Feed the bot verdict back to the ad platforms in real time so conversion pixels only fire for verified humans. In practice:
- When the detector scores a session as bot, suppress the conversion event (purchase, lead, add-to-cart) before it reaches Google’s or Meta’s pixel.
- Pass the click ID (GCLID, FBCLID) and the behavioral evidence to a suppression log.
- Use that log to build a refund claim: Generate audit-ready refund dispute reports that ad reps accept. (S5)
FinTrust, a neobank, used this workflow to suppress conversion events for automated browser emulation signals, ensuring Facebook and Google AI trained only on verified bank accounts. They recovered $140,000 in ad spend and cut their bot click rate to 14%. (S7)
Step 6: Verify and Refine with Refund-Grade Evidence
Run a weekly review:
- Pull the suppression log and compare bot rates by campaign, placement, and creative.
- Identify placements or audiences with bot rates above your threshold (many teams start at 10%).
- Exclude those placements or audiences in the ad platform.
- File refund claims for the invalid clicks you’ve documented. BotRefund customers see an 83% approval rate across client refund claims submitted to ad platforms. (S2)
This loop turns detection into cleaner pixels, better bidding, and recovered budget.
Key Facts
| Metric | Value | Source |
|---|---|---|
| Bot clicks as share of Google/Meta budget | Up to 20% | S2 |
| Detection accuracy (AI-weighted multi-signal) | 99% | S6, S8 |
| Refund claim approval rate | 83% | S2 |
| Independent behavioral checks per session | 106 | S6, S8 |
| Setup time for free bot audit | About 1 minute | S2 |
| Refund lookback window (Google Ads) | Dating back to 2017 | S2 |
Limitations and When This Advice Doesn’t Apply
- Low-volume campaigns (under a few thousand clicks/month) may not generate enough data for statistical suppression; manual IP exclusions and platform filters are usually sufficient.
- Privacy regulations (GDPR, CCPA) require consent for client-side tracking. Ensure your cookie banner and privacy policy cover behavioral detection.
- Single-page apps or heavy CSP can block third-party scripts. Test the detector in staging before deploying to production.
- Legitimate automation (monitoring tools, accessibility scanners) can trigger false positives. Whitelist known good user agents and IP ranges.
Terminology
- Invalid traffic (IVT) — Clicks or impressions Google determines are not the result of genuine user interest, including accidental clicks, automated tools, and competitor click fraud. (S5)
- Pixel poisoning — When bot conversions train the ad platform’s optimization algorithm on fake outcomes, degrading future targeting.
- GCLID / FBCLID — Click identifiers Google and Meta append to landing-page URLs; required to tie a session to a specific paid click for refund claims.
- Honeypot — A hidden page element (link, form field) that real users never see; interaction signals a bot.
- Suppression — Preventing a conversion event from firing to the ad platform’s pixel based on a real-time bot verdict.
FAQ
How long does it take to see results after adding behavioral detection?
Most sites see bot-rate data within hours of installing the script. Suppression and pixel cleanup take effect immediately; refund claims depend on the ad platform’s review cycle (typically 2–4 weeks).
Will behavioral detection slow down my page?
The script loads asynchronously and adds well under 50 ms to page load in typical conditions. Test in your staging environment if you have strict Core Web Vitals targets.
Can I use this with Google Tag Manager or Meta’s Conversions API?
Yes. Fire the suppression signal from the detector into GTM as a custom event, then condition your GA4/Ads tags on the event’s absence. For CAPI, filter server-side using the same bot verdict stored in your data layer.
What if the ad platform rejects my refund claim?
Platforms require forensic evidence: click IDs, timestamps, behavioral logs, and video proof of the bot session. The detector captures video proof for each bot click. (S2) Resubmit with the full evidence package; the 83% approval rate reflects claims backed by that level of documentation.
Does this work for YouTube, Display, and Performance Max campaigns?
Yes. Any campaign that sends traffic to a landing page you control can be protected. For YouTube in-stream, the detector runs on the destination page after the click.
How often should I update IP exclusion lists?
Weekly is a good baseline. High-spend accounts (over $50k/mo) often automate daily updates via the Ads API using the suppression log as the source.
What’s the difference between this and Cloudflare bot management?
Edge WAFs like Cloudflare block known bad IPs and challenge suspicious requests at the network layer. They don’t see browser-level behavior (mouse tremor, scroll depth, input timing) and they don’t produce the click-level evidence ad platforms require for refunds. Use both: edge filtering for volume, client-side detection for precision and refund-grade logs. (S9)
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Learn more
Visit the website for more information.