Seatext library / BotRefund evidence
How to Tell If Your Website Traffic Is From Real Users: A Practical Verification Guide
Real user traffic shows natural behavioral patterns — variable session durations, mouse movements with micro-tremors, scrolling, and conversion paths that match human intent. Bots leave technical fingerprints: WebRTC leaks, DNS mismatches, superhuman click speeds,...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
If your analytics show traffic but your CRM stays empty, you're likely paying for bot visits. Real users hesitate, scroll, correct typos, and move mice in imperfect curves. Bots don't. The fastest way to tell the difference is to layer behavioral evidence (what visitors do on the page) over network evidence (where they come from and how their browser identifies itself).
Why verifying traffic authenticity matters
Bot traffic inflates click counts, poisons conversion pixels, and skews the machine-learning models that optimize your ad delivery. When Meta's or Google's algorithms see bot conversions, they optimize for more bots. You pay for clicks that never convert, and your cost-per-acquisition rises while real prospects get crowded out. The financial hit is measurable: automated clicks can drain up to 20% of Google and Meta ad budgets, and high-volume advertisers who pursue refunds with proper evidence see an 83% success rate.
How bot traffic distorts your data
Bots don't just waste budget — they corrupt the signals you rely on for decisions. A campaign may show a healthy cost-per-lead while the sales team receives disconnected numbers, invalid emails, or enquiries that never progress. Pixel poisoning occurs when bots trigger conversion events (page views, form submits, purchases) without human intent. The ad platform then learns to target similar "converting" profiles, amplifying the problem. Common distortion patterns include:
- Sudden placement-level spikes in clicks with near-zero time on site
- Forms submitted in under two seconds with no field corrections
- Conversion events concentrated at unusual hours (3–5 AM local time)
- Identical user-agent strings across diverse geographic regions
- High click-through rates from Meta Audience Network placements paired with instant bounces
Key behavioral signals that separate humans from bots
No single signal is definitive. BotRefund's prediction AI evaluates 106 browser, network, hardware, and behavior signals together before classifying a visit. Signals become a decision only when they are seen together. The main categories:
Pointer and motion behavior
- Robotic linear mouse movements: Unnaturally straight pointer paths that rarely appear in real sessions
- Absence of humanlike mouse tremor: Missing the tiny imperfections and jitter typical of human movement
- Grid-aligned movement patterns: Movement that snaps to precise lines or blocks instead of natural curves
- Superhuman input speed (<1ms): Interactions faster than a person could realistically perform
Engagement and session behavior
- Absence of clicks or scrolling: Sessions that stay too static to match a real browsing journey
- Unnatural session durations: Visit lengths that are too short, too long, or too uniform to be human
- Ghost click detection: Click activity without the natural sequence of human intent
- Honeypot trap interactions: Bots responding to hidden or intentionally deceptive page elements
Network, VPN, and geolocation evasion vectors
- WebRTC Network Leak: Checks whether browser network paths reveal conflicting locations
- DNS Tunnel Leak / DNS Challenge Blocked: Checks whether DNS and web traffic follow the same route
- Timezone Evasion / UTC Timezone Bias: Checks whether location and language settings agree
- Languages Mismatch / Accept-Language Mismatch: Checks whether location and language settings agree
- IP Address Inconsistency / OS / TCP TTL Mismatch: Checks whether the visitor's network identity is coherent
- HTTP User-Agent Mismatch / HTTP Protocol Mismatch: Checks whether connection and browser request details stay consistent
- DNS Routing Mismatch: Checks whether DNS and web traffic follow the same route
- Suspicious Ports / Netprobe Telemetry Missing: Checks whether the visitor's network identity is coherent
- Latency Mismatch: Checks whether connection and browser request details stay consistent
Evasion, debugger, and anti-stealth traps
- CDP Debugger Leak: Checks for traces left by browser automation or masking tools
- Native Patching / Engine Mismatch / JS Engine Mismatch: Checks whether the browser profile behaves like a real device
- Rebrowser Leaks / Automation Properties: Checks for traces left by browser automation or masking tools
Step-by-step process to audit your traffic
- Preserve attribution before changing anything. Keep campaign, ad set, creative, placement, click identifier (GCLID/FBCLID), landing-page URL, and timestamp intact. Changing targeting or filters destroys the evidence trail.
- Pull three data layers. Export ad-platform click data (Google Ads/Meta Ads Manager), website session data (GA4 or server logs with client-side enrichment), and CRM outcomes (lead status, call connectivity, deal progression).
- Join on click ID. Match each paid click to its website session and eventual CRM outcome. Look for clicks with no session, sessions with no engagement, and leads with no follow-through.
- Flag behavioral anomalies. Filter for sessions with: zero scroll events, form submit <2s after load, mouse paths with zero curvature variance, session duration <5s or >30min with no intermediate events, identical click coordinates across sessions.
- Cross-reference network signals. Check flagged sessions for VPN/proxy indicators, timezone-language mismatches, WebRTC leaks, and data-center IP ranges. Residential proxy botnets route through real consumer IPs, so IP reputation alone isn't enough.
- Segment by placement, creative, audience, device. A sharp lead-quality difference by placement (especially Audience Network) or device type often reveals the source.
- Build the refund packet. Compile click IDs, behavioral logs, network fingerprints, and CRM outcomes into a platform-compliant dispute. Google and Meta require specific evidence formats; generic analytics screenshots get rejected.
- Submit and track. File through each platform's invalid activity / billing dispute flow. Track approval rates and iterate evidence collection for future claims.
Client-side vs server-side detection: what each catches
Server-side audits examine server log files — IP addresses, request headers, user-agent strings. They catch basic scraper bots and known data-center ranges. They struggle with advanced botnets that use residential proxies, real mobile hardware (click farms), and browser automation frameworks that mimic legitimate headers.
Client-side audits run in the visitor's browser. They capture canvas fingerprints, WebRTC behavior, mouse dynamics, scroll events, focus/blur cycles, and JavaScript execution timing. This catches bots that look clean on the wire but betray themselves in the browser environment. The trade-off: client-side requires a lightweight script on your pages; server-side works passively but misses the browser layer where sophisticated evasion happens.
Common mistakes when investigating traffic quality
| Mistake | Why it fails | Better approach |
|---|---|---|
| Relying only on GA4 bot filtering | GA4's built-in filter catches known crawlers, not sophisticated bots that execute JavaScript | Layer client-side behavioral signals on top of GA4 data |
| Blocking by IP range alone | Residential proxy botnets and click farms use real consumer IPs | Combine IP reputation with browser fingerprint and behavioral analysis |
| Treating every bad lead as fraud | Weak campaigns attract real but unqualified visitors; over-blocking excludes valid audiences | Audit contactability, timing, session behavior, and CRM outcomes together before labeling fraud |
| Changing campaign settings before preserving click IDs | Modifying targeting, URLs, or UTM parameters breaks the evidence chain for refunds | Export and archive click-level data first; then optimize |
| Submitting generic analytics screenshots for refunds | Google and Meta require click-level evidence with behavioral logs | Auto-capture GCLIDs/FBCLIDs with behavioral evidence; generate compliance-ready reports |
Key facts
| Metric | Value | Source |
|---|---|---|
| BotRefund detection accuracy | 99% (106 combined signals) | S1 |
| Ad spend potentially drained by bots | Up to 20% on Google Ads and Meta | S2 |
| Refund success rate for high-volume advertisers | 83% | S2 |
| Google Ads invalid activity credit eligibility | Clicks from bots, accidental taps, competitor fraud, data-center IPs, impression fraud | S7 |
| Meta Audience Network risk | High CTR, near-instant bounce rates from third-party app publishers | S3 |
| Click farm hardware | Real smartphones — bypass standard IP-range filters | S5 |
| Residential proxy botnets | Malware on household devices routes clicks through normal consumer IPs | S5 |
| Refund lookback window (Google Ads) | Dating back to 2017 | S2 |
Limitations and when this advice doesn't apply
- Low-traffic sites (<1,000 sessions/month): Statistical patterns need volume. Manual review of individual sessions works better than automated scoring.
- Purely organic traffic with no paid campaigns: Refund mechanisms only exist for paid platforms. Focus on analytics filtering and server-side blocking instead.
- Sites without client-side script capability: If you cannot add JavaScript (some CMS restrictions, strict CSP), you're limited to server-side signals.
- Single-page applications with heavy client-side routing: Standard scroll/click listeners may miss virtual pageviews; custom instrumentation needed.
- GDPR/CCPA environments with strict consent: Behavioral fingerprinting may require explicit consent. Check legal guidance before deploying.
FAQ
How much bot traffic is normal?
Some bot traffic is inevitable — search crawlers, uptime monitors, security scanners. The problem is paid bot traffic. If you're buying clicks, assume 5–20% may be invalid depending on platform, placement, and geography. Meta Audience Network and display networks run higher.
Can I just block data-center IPs and call it done?
No. Residential proxy botnets and click farms use real consumer devices and IPs. IP blocking catches only the least sophisticated bots.
What's the difference between click fraud and invalid traffic?
Click fraud implies intent (competitors, publishers). Invalid traffic is broader: accidental taps, crawlers, scrapers, and any non-human interaction. Platforms refund both but require different evidence.
How long does a refund claim take?
Google's automatic credits appear in 30–60 days. Manual disputes take 2–8 weeks. Meta's process is similar. Evidence quality determines speed — incomplete packets get rejected or delayed.
Do I need a developer to install detection?
BotRefund adds to a website in about one minute with a single script tag. No credit card required for the free audit tier.
What if my traffic looks human but doesn't convert?
That's a lead-quality or offer problem, not a bot problem. Real users with low intent still show human behavioral variance: scroll depth variance, mouse hesitation, form corrections. Bots show uniformity.
Can I get refunds for past spend without current detection installed?
Yes, if you have historical click IDs (GCLID/FBCLID) and server logs. But behavioral evidence (mouse paths, scroll, timing) requires client-side capture at the time of visit. Without it, you rely on platform-side detection only, which misses most sophisticated bots.
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.