Seatext library / BotRefund evidence
What patterns should I look for in user logs to spot bot activity?
Bot traffic leaves distinct fingerprints in server and client logs. Look for uniform request timing, missing or mismatched referrers, high-frequency actions from single IPs, superhuman input speeds, linear mouse paths, absent micro-tremors, and network...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Bot traffic leaves distinct fingerprints in server and client logs. The most reliable indicators combine network-level anomalies — such as WebRTC leaks, DNS routing mismatches, and IP/TTL inconsistencies — with behavioral deviations like superhuman click speeds (<1ms), perfectly linear mouse movements, missing micro-tremors, grid-aligned paths, and sessions that are too short, too long, or too uniform. Server-side logs alone catch basic scrapers through rapid-fire requests from the same IP, duplicate click signatures, and known data-center ranges, but they miss sophisticated bots that rotate residential proxies and automate real browsers. Client-side signals fill that gap by exposing automation artifacts (CDP debugger leaks, native patching, engine mismatches) and human-imperfection absences (no tremor, no scroll, no click variance).
Why log patterns matter for bot detection
Logs are the first place bot activity shows up, but raw logs are noisy. A single signal — an odd user-agent or a fast request — can be a legitimate user on a slow connection or a privacy tool. The signal becomes meaningful only when multiple anomalies appear together in the same session. BotRefund's prediction AI evaluates 106 browser, network, hardware, and behavior signals together before deciding whether a visit is human or automated, because "signals become a decision only when they are seen together." This pattern-based approach catches sophisticated bots that evade single-indicator filters.
Network and infrastructure signals in logs
Start with the connection layer. Bots that hide behind VPNs, proxies, or spoofed geolocations often leak inconsistencies:
- WebRTC network leaks — the browser's real network path reveals a location that conflicts with the claimed IP geolocation.
- DNS tunnel leaks — DNS and web traffic take different routes, indicating a proxy or tunnel.
- DNS challenge blocked — the client fails a DNS-based challenge that a normal resolver would pass.
- Timezone evasion — the reported timezone disagrees with the IP's geographic region.
- Latency mismatch — round-trip times don't match the claimed distance between client and server.
- Suspicious ports — connections originate from ports commonly used by proxy software or data-center infrastructure.
- UTC timezone bias — the client's clock is locked to UTC regardless of claimed locale.
- Language mismatch — Accept-Language headers don't align with the IP's country.
- Netprobe telemetry missing — expected network handshake data is absent.
- IP address inconsistency — the same session presents multiple IPs that don't belong to the same network block.
- OS/TCP TTL mismatch — the TCP packet TTL implies an operating system different from the user-agent.
- HTTP protocol mismatch — the protocol version (HTTP/1.1, h2, h3) doesn't match the claimed browser capabilities.
- DNS routing mismatch — the DNS resolution path diverges from the HTTP connection path.
These vectors appear in server logs as header anomalies, connection timing outliers, and failed challenge responses. They are especially valuable because they are hard for bot operators to fake consistently across all 106 signals.
Browser and client-side fingerprints
Automation frameworks and anti-detection tools leave traces in the browser environment that show up in client-side telemetry:
- CDP debugger leak — Chrome DevTools Protocol endpoints exposed, indicating automation or inspection.
- Native patching — built-in browser APIs have been monkey-patched or replaced.
- Engine mismatch — the JavaScript engine behavior doesn't match the claimed browser version.
- Rebrowser leaks — artifacts from tools that rewrite browser fingerprints.
- JS engine mismatch — V8, SpiderMonkey, or JavaScriptCore quirks don't align with the user-agent.
- Automation properties — navigator.webdriver, callPhantom, or other automation flags present.
These signals require client-side JavaScript to collect; they won't appear in pure server access logs. That's why server-side audits alone "struggle to detect advanced botnets" while client-side audits analyze the visitor's browser environment directly.
Behavioral and interaction anomalies
Human behavior is imperfect. Bots reveal themselves through precision and uniformity that people never achieve:
- Superhuman input speed (<1ms) — clicks, keystrokes, or taps occurring faster than human neuromuscular limits.
- Robotic linear mouse movements — pointer paths that are perfectly straight between points, lacking natural curves.
- Absence of humanlike mouse tremor — missing the micro-jitter (typically 1-3px) present in every human hand.
- Grid-aligned movement patterns — movements that snap to pixel-perfect horizontal or vertical lines.
- Absence of clicks or scrolling — sessions that load pages but never interact, or interact only with hidden elements.
- Unnatural session durations — visits that are too short (milliseconds), too long (hours with no idle), or too uniform (every session 42.3 seconds).
- Ghost click detection — click events that fire without the preceding human intent sequence (hover, approach, deceleration).
- Honeypot trap interactions — clicks on elements hidden via CSS or positioned off-screen that only a script would find.
These patterns appear in behavioral logs, heatmaps, and event streams. They are the strongest indicators because they reflect the fundamental difference between scripted execution and biological motor control.
Server-side request patterns
Traditional log analysis still catches the basics. Google's invalid activity detection looks for:
- Rapid clicking — multiple clicks from the same IP in a short time window.
- Duplicate clicks — identical click signatures suggesting automated repetition.
- Known bad IPs — traffic from data centers, VPN exit nodes, or previously flagged ranges.
- Abnormal click patterns — deviations from typical user behavior at the server level.
These patterns show up in access logs as high request velocity, repeated identical query parameters, missing referrers on sequential requests, and user-agents that don't match the TLS fingerprint. They are necessary but not sufficient — modern residential proxy botnets rotate clean IPs and mimic headers well enough to pass these checks.
Common log analysis mistakes
- Relying on IP blocking alone — residential proxies and mobile gateways make IP reputation unreliable.
- Trusting user-agent strings — trivial to spoof; the real browser engine behavior matters more.
- Ignoring client-side signals — server logs miss automation artifacts and behavioral micro-patterns.
- Treating each signal in isolation — a single anomaly is noise; the pattern across signals is the signal.
- Assuming CAPTCHA solves it — CAPTCHA farms and ML solvers bypass challenges at scale.
- Not capturing click IDs — without GCLIDs/FBCLIDs linked to behavioral evidence, refund claims lack proof.
Key facts
| Signal category | Example vectors | Detection layer | Source |
|---|---|---|---|
| Network/VPN/Geolocation | WebRTC leak, DNS tunnel, timezone evasion, latency mismatch, IP inconsistency, OS/TCP TTL mismatch | Server + client | S1 |
| Browser automation artifacts | CDP debugger leak, native patching, engine mismatch, rebrowser leaks, JS engine mismatch, automation properties | Client-side | S1 |
| Behavioral micro-patterns | Superhuman speed (<1ms), linear mouse, no tremor, grid-aligned, no scroll/click, uniform session duration | Client-side | S2 |
| Server-side request patterns | Rapid clicking, duplicate clicks, known bad IPs, abnormal patterns | Server logs | S6 |
| Refund evidence requirement | GCLID/FBCLID capture linked to behavioral proof | Client-side | S2, S5 |
| BotRefund accuracy claim | 99% accuracy via 106-signal pattern evaluation | Combined | S1 |
| Refund success rate | 83% for high-volume advertisers | Platform disputes | S2 |
Limitations of log-only analysis
Server logs cannot see browser automation artifacts, mouse dynamics, or client-side timing. They also cannot distinguish a fast human on a fiber connection from a slow bot on a throttled proxy. Client-side collection requires JavaScript execution, which some privacy tools block. Sophisticated bots running in real browser environments (Puppeteer, Playwright, Selenium with stealth plugins) can pass many individual checks — the defense is correlating all 106 signals simultaneously. No single log source gives complete coverage; the most reliable detection combines server headers, TLS fingerprints, client behavioral telemetry, and challenge responses.
FAQ
Can I detect bots using only server access logs?
You can catch basic scrapers and data-center bots through IP velocity, header anomalies, and known bad ranges. But residential proxy botnets and browser automation frameworks will evade server-only analysis because they present clean IPs, valid headers, and real TLS fingerprints. Client-side signals are required for advanced detection.
What's the single most reliable bot indicator in logs?
There isn't one. The most reliable approach is pattern correlation: a session that shows a WebRTC leak, superhuman click speed, linear mouse movement, and a CDP debugger leak simultaneously is almost certainly automated. Any single indicator has false positives.
How do I capture behavioral signals like mouse tremor?
You need client-side JavaScript that records pointermove events at high frequency, then analyzes the path for micro-jitter, curvature, and acceleration profiles. This data is sent to your analytics endpoint alongside the click ID (GCLID/FBCLID) for refund evidence.
Do Google and Meta automatically refund bot clicks?
Google issues automatic invalid activity credits for some patterns (rapid clicks, known bad IPs), but misses sophisticated fraud. Meta's system is similar. Most advertisers recover additional spend only by filing manual disputes with behavioral evidence linked to click IDs.
What's the difference between click fraud tools and bot detection?
Click fraud tools (e.g., CHEQ) focus on filtering suspicious traffic at the network level. BotRefund adds client-side behavioral verification, captures click IDs with forensic evidence, and manages the refund dispute process with Google and Meta directly.
How much ad spend do bots typically waste?
BotRefund reports bots can drain up to 20% of Google Ads and Meta budgets. The exact percentage varies by industry, targeting, and placement (Audience Network placements historically show higher bot rates).
When should I start analyzing logs for bots?
When you see unusual traffic spikes, high bounce rates with low engagement, conversion pixel firing without CRM leads, or when you run paid campaigns on Google or Meta. The earlier you establish a baseline, the easier anomalies are to spot.
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.