Seatext library / BotRefund evidence
How Cross-Checking Signals Reduces False Positives in Bot Detection
Cross-checking reduces false positives by treating each signal as evidence rather than a verdict. When multiple independent signals — browser fingerprint, network behavior, device attributes, and interaction patterns — all point to the same...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Cross-checking signals reduces false positives by requiring multiple independent indicators to agree before classifying a visit as automated. A single anomaly — like an unusual CPU concurrency value or a missing mouse tremor — often comes from privacy tools, corporate networks, or uncommon devices used by real people. BotRefund treats each signal as one piece of evidence, then tests whether other browser, network, device, and behavior signals support the same story before its AI model weighs the complete pattern.
Why single signals fail
Any single check can misfire. Privacy extensions, VPNs, enterprise proxies, and unusual hardware configurations routinely produce browser fingerprints that look inconsistent. A user on a corporate laptop with a locked-down browser may fail a hardware fingerprint check. A privacy-conscious visitor using a fingerprint randomizer may show mismatched fonts and canvas output. A traveler on hotel Wi‑Fi may appear to come from a data‑center IP range. If the system blocks on that one signal, it blocks a human.
BotRefund's documentation states this directly: "A single anomaly is not a bot verdict. Privacy tools, travel, corporate networks, and unusual devices can produce unexpected behavior for genuine people. BotRefund keeps this signal as evidence—not a verdict—and cross-checks it against independent browser, network, device, and behavior data." (S1)
How cross-checking works in practice
The system collects over 100 independent checks. Each check adds one objective fact about the visit. Those facts fall into four broad categories:
- Browser & device signals — hardware concurrency, GPU fingerprint, canvas hash, font enumeration, audio stack, JS engine quirks.
- Network & location signals — IP reputation, ASN type, port anomalies, timezone/language consistency, proxy/VPN indicators.
- Behavioral & biometric signals — mouse tremor, click timing, scroll patterns, tab‑switch speed, form‑fill rhythm, honeypot interactions.
- Session & context signals — session duration distribution, page‑view sequence, referral consistency, conversion‑event timing.
No single category decides. The engine asks: do the browser signals tell the same story as the network signals? Do the behavioral signals match the device profile? When the answer is yes across categories, confidence rises. When they conflict, the visit stays in a review bucket rather than being auto‑blocked.
The three‑layer verification process
BotRefund describes a three‑step flow that turns raw signals into a decision:
- Independent evidence — each check contributes one objective fact. Example: the CPU Concurrency Lie check flags a mismatch between reported CPU cores and observed rendering performance. (S1)
- Cross‑checked context — the system tests whether other signals support the same story. If the CPU anomaly appears alongside a residential IP, normal mouse tremor, and human‑like scroll pauses, the anomaly is downgraded. If it appears with a data‑center IP, linear mouse paths, and superhuman click speed, the evidence accumulates. (S1)
- AI prediction — a model weighs the complete pattern instead of trusting a raw rule. The model evaluates how all signals fit together across browser, network, device, and behavior evidence, producing a bot/human probability. BotRefund reports 99% accuracy from this corroboration approach. (S1)
Common signal categories that get cross‑checked
The homepage lists behavioral signals that feed the cross‑check layer:
- Ghost click detection — clicks without the natural sequence of human intent (S2)
- Honeypot trap interactions — responses to hidden or deceptive page elements (S2)
- Robotic linear mouse movements — unnaturally straight pointer paths (S2)
- Absence of humanlike mouse tremor — missing micro‑jitter typical of human movement (S2)
- Superhuman input speed (<1ms) — interactions faster than a person can perform (S2)
- Grid‑aligned movement patterns — movement snapping to precise lines or blocks (S2)
- Absence of clicks or scrolling — sessions too static to match real browsing (S2)
- Unnatural session durations — visits too short, too long, or too uniform (S2)
Each of these is a single signal. A user with a motor impairment may show reduced mouse tremor. A power user navigating by keyboard may show few clicks. A slow network may stretch session duration. Cross‑checking prevents those legitimate variations from triggering a block.
Step‑by‑step: How a visit gets evaluated
- Collection — the JavaScript sensor gathers browser fingerprint, network metadata, and interaction telemetry on every page load and event.
- Signal extraction — 106 independent checks run, each producing a normalized evidence score (e.g., "CPU concurrency mismatch: 0.7").
- Category grouping — scores are grouped into browser, network, device, behavior buckets.
- Cross‑category correlation — the engine checks for agreement: does the browser bucket say "automated" while the behavior bucket says "human"? Conflict lowers confidence; agreement raises it.
- Model inference — the AI model ingests the full vector and outputs a probability. Thresholds determine: allow, challenge, or block.
- Feedback loop — verified human sessions (completed purchases, logged‑in activity) and confirmed bots (honeypot hits, credential‑stuffing patterns) retrain the model weekly.
When cross‑checking still isn't enough
Even with 100+ signals, edge cases remain:
- Sophisticated residential‑proxy bots that run real browsers on real devices with human‑like input replay can pass most checks. The system relies on subtle timing inconsistencies and session‑level statistical anomalies to catch these.
- New device/OS combinations — a brand‑new phone model may lack baseline fingerprint data, causing temporary false positives until the model sees enough clean traffic.
- Aggressive privacy tooling — tools that randomize every fingerprint surface on every request create maximal cross‑category conflict. The system may default to a challenge (CAPTCHA or proof‑of‑work) rather than a hard block.
- Low‑traffic sites — with few sessions, the model has less site‑specific calibration data, so it leans more on global baselines.
The Meta Ads Invalid Traffic guide notes a related principle: "Not every bad lead is a bot, and that matters. Treating every unresponsive contact as fraud can make a team exclude a valuable audience. Start with a structured audit that compares ad‑platform data, website sessions, and CRM outcomes before changing targeting or making a refund request." (S3) The same logic applies to detection — cross‑checking is the structured audit at the signal level.
Key facts
| Fact | Detail | Source |
|---|---|---|
| Independent checks per visit | 106 | S1 |
| Signal categories | Browser, network, device, behavior | S1 |
| Reported accuracy | 99% from corroboration, not single rules | S1 |
| False‑positive safeguards | Privacy tools, travel, corporate networks, unusual devices explicitly called out | S1 |
| Behavioral signals tracked | Ghost clicks, honeypots, mouse tremor, linear movement, input speed, grid alignment, static sessions, duration anomalies | S2 |
| Case‑study recovery | $140,000 refunded, 14% average bot click rate, +18% conversion rate increase (FinTrust) | S4 |
| Refund lookback window | Google Ads spend dating back to 2017 | S2 |
| Setup time | About one minute to add to a website | S2 |
FAQ
Does cross‑checking add latency?
The sensor runs asynchronously. Signal extraction happens in the browser; correlation and model inference run server‑side on the collected payload. Typical end‑to‑end overhead is under 50 ms for the client.
Can I see which signals fired for a specific visit?
Yes. The dashboard shows a per‑visit evidence breakdown with each check's score and the cross‑category agreement map.
What happens when signals conflict?
The visit receives a "review" score. The system may serve a lightweight challenge (proof‑of‑work or invisible CAPTCHA) instead of blocking, preserving the user experience while gathering more evidence.
How often does the model retrain?
Weekly, using verified human conversions and confirmed bot patterns from the previous week's traffic across all protected sites.
Does this work for API‑only endpoints?
The JavaScript sensor requires a browser environment. For API traffic, BotRefund offers a server‑side SDK that evaluates request headers, TLS fingerprint, IP reputation, and behavioral heuristics from prior web sessions tied to the same identity.
What's the difference between this and a WAF rule set?
WAF rules are static (IP blocklists, UA strings, rate limits). Cross‑checking evaluates dynamic, multi‑dimensional evidence per visit and updates its model continuously. It catches bots that rotate IPs, spoof headers, and mimic human pacing — patterns that static rules miss.
Can I adjust sensitivity per campaign?
Yes. The dashboard lets you set different allow/challenge/block thresholds for paid‑search, social, organic, and direct traffic segments.
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.