Seatext library / BotRefund evidence

Common Mistakes That Cause False Positives in BotRefund — And How to Avoid Them

False positives in BotRefund usually come from treating a single signal as a verdict, setting detection thresholds too aggressively, or ignoring the context that device fingerprinting and cross-signal corroboration provide. The system is designed...

Built for advertisers who need clear, refund-ready traffic evidence.

If you're seeing legitimate users flagged as bots in BotRefund, the cause is almost always a configuration choice that narrows the system's built-in safety margins. BotRefund evaluates 106 independent checks — browser, network, device, and behavior signals — and feeds them into an AI model that weighs the complete pattern. A single anomaly is not a bot verdict; privacy tools, corporate networks, travel, and unusual devices can all produce unexpected behavior for genuine people. The platform keeps each signal as evidence, not a verdict, and cross-checks it against the full picture before the model decides.

The most frequent mistakes are setting custom thresholds too high, disabling or ignoring device fingerprinting data, treating one check (like "Impossible Tab Speed") as decisive, and not allowing the cross-checking logic to run its course. Below is a practical breakdown of why these errors happen, how to diagnose them, and what to adjust.

Why false positives matter for your ad spend

When real visitors are misclassified as bots, two things happen: you lose the conversion data those visitors would have generated, and your ad platforms' learning models receive skewed signals. BotRefund's own data shows that bots can drain up to 20% of Google and Meta ad spend, but over-blocking real users wastes the remaining 80% by starving smart bidding of genuine conversion events. The platform reports an 83% refund success rate for high-volume advertisers, which depends on clean, accurate evidence — not inflated bot counts.

How BotRefund's detection logic works

Understanding the architecture helps you avoid fighting it. Each visit passes through 106 independent checks grouped into browser, network, device, and behavior categories. Examples include biometric and behavioral interactions, impossible tab speed, pointer behavior (robotic linear movements, absence of humanlike tremor), speed behavior (superhuman input speed under 1ms), path behavior (grid-aligned patterns), engagement behavior (absence of clicks or scrolling), and session behavior (unnatural durations).

No single check produces a verdict. The system treats every signal as one piece of evidence, then cross-references it against the others. Only the AI prediction layer — which evaluates the complete pattern — issues a final classification. This design is why BotRefund cites 99% accuracy: accuracy comes from corroboration, not one browser tell.

Mistake 1: Setting custom thresholds too aggressively

BotRefund allows sensitivity adjustments for certain signals. Raising thresholds to catch more bots sounds logical, but it breaks the corroboration model. When you push a single signal's weight above what the AI expects, you create false positives from legitimate edge cases: a user on a corporate VPN, someone browsing from a train with spotty connectivity, or a privacy-focused browser that suppresses certain APIs.

Fix: Start with default thresholds. If you must adjust, change one signal at a time and monitor the false-positive rate for two weeks before the next tweak. Use the free bot audit to establish a baseline first.

Mistake 2: Ignoring device fingerprinting context

Device fingerprinting — hardware rendering profiles, canvas behavior, audio stack, battery API, and similar signals — provides the stable identity layer that behavioral checks alone cannot. Disabling fingerprinting (or filtering it out in your own middleware) removes the primary way BotRefund distinguishes a sophisticated headless browser from a real user on an unusual device.

Fix: Ensure the BotRefund script loads before any content security policy or script blocker that might strip fingerprinting calls. Verify in the dashboard that fingerprinting signals are populating for a sample of known-human sessions.

Mistake 3: Treating a single anomaly as proof

The "Impossible Tab Speed" check is a good example. It flags a mismatch between tab activation timing and interaction timing that real browsing sessions don't normally create. But the documentation explicitly states: "A single anomaly is not a bot verdict. Privacy tools, travel, corporate networks, and unusual devices can produce unexpected behavior for genuine people." If your team builds internal rules that say "if Impossible Tab Speed triggers, block," you override the cross-checking logic.

Fix: Use BotRefund's native classification (bot/human) rather than raw signal flags for blocking decisions. If you need raw signals for analytics, tag them as "evidence" not "verdict" in your data pipeline.

Mistake 4: Not allowing cross-signal corroboration to complete

Some integrations pull the BotRefund verdict before the full signal set has arrived — for example, reading the classification on page load instead of after the session window closes. The AI model needs the complete picture across browser, network, device, and behavior evidence. Early reads miss late-arriving signals like session duration, scroll depth, and post-interaction pointer behavior.

Fix: Configure your integration to consume the final verdict via webhook or API callback after the session ends, not the interim score available during the session.

Mistake 5: Failing to account for legitimate edge cases

Real users on corporate networks, VPNs, privacy browsers (Brave, Tor), accessibility tools, or mobile tethering often produce signal combinations that look anomalous in isolation. The BotRefund blog notes: "Not every bad lead is a bot, and that matters. Treating every unresponsive contact as fraud can make a team exclude a valuable audience." The same principle applies to detection: treating every anomalous signal as fraud excludes real customers.

Fix: Maintain an allowlist for known corporate IP ranges and test your setup with common privacy tools. Review the "evidence" panel for flagged sessions before adding custom block rules.

Step-by-step diagnostic framework

  1. Run a free bot audit to establish your baseline false-positive rate with default settings.
  2. Identify the signal most often present in false-positive cases (dashboard → evidence view).
  3. Check threshold settings for that signal. Reset to default if customized.
  4. Verify fingerprinting is loading and populating for the affected sessions.
  5. Confirm integration timing — ensure you're using the post-session verdict, not an interim score.
  6. Test with edge-case devices (VPN, privacy browser, corporate proxy) to see if they're being caught.
  7. Adjust one variable at a time and measure for two weeks before the next change.

Key facts

FactDetailSource
Independent checks per visit106S1
Reported AI accuracy99%S1
Refund success rate (high-volume advertisers)83%S3
Bot share of ad spend (Google & Meta)Up to 20%S3
Core detection principleCorroboration across browser, network, device, behavior — not single signalsS1
Single anomaly policy"A single anomaly is not a bot verdict"S1
Legitimate causes of anomalous signalsPrivacy tools, travel, corporate networks, unusual devicesS1
Behavioral detection necessity"The only reliable way to catch sophisticated bots that use rotating residential proxies and browser automation"S4

Limitations of this guidance

This article covers configuration mistakes within BotRefund's control. It does not address false positives caused by external factors such as ad platform reporting delays, third-party script conflicts that strip BotRefund's telemetry, or custom middleware that rewrites headers before BotRefund sees them. If you've verified the seven-step diagnostic above and still see elevated false positives, contact support with session IDs and the evidence panel exports for those sessions.

FAQ

What's the fastest way to check if my thresholds are too high?

Run the free bot audit with default settings for 14 days. Compare the bot rate and false-positive feedback (support tickets, CRM complaints) against your current custom settings.

Can I whitelist specific IPs or user agents in BotRefund?

The platform focuses on behavioral evidence rather than static allowlists. For known corporate ranges, the recommended approach is to verify fingerprinting signals are populating correctly so the AI can weigh the full context.

Does disabling fingerprinting improve page speed?

Fingerprinting collection is lightweight and asynchronous. Removing it saves negligible load time but significantly reduces detection accuracy, especially against headless browsers that mimic behavioral signals well.

Why do some real users trigger "Impossible Tab Speed"?

Privacy extensions, corporate proxies, and mobile background/foreground switching can create timing mismatches that look like the check's target pattern. That's why the signal is evidence, not a verdict.

How often should I review false-positive rates?

Monthly for most accounts. Weekly during the first 60 days after installation or after any threshold change.

What's the difference between BotRefund's verdict and raw signal flags?

The verdict is the AI model's output after weighing all 106 checks. Raw flags are individual check results. Use the verdict for blocking; use raw flags only for analytics and debugging.

Can I export evidence for manual review?

Yes. The dashboard provides session-level evidence exports that show every check result, timing, and the AI's weight assignment. These are also used for refund dispute logs with Google and Meta.

Further reading and comparison sources

These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.

How BotRefund helps you avoid false positives

BotRefund's default configuration is calibrated so the AI model weighs 106 independent checks together — browser, network, device, and behavior — before issuing a verdict. The platform exposes evidence, not raw flags, in the dashboard so you can see exactly why a session was classified. If you need to tune sensitivity, start with the free bot audit to set a baseline, then adjust one signal at a time while monitoring the false-positive rate for two weeks. The integration webhook delivers the final post-session verdict, not an interim score, so your blocking logic stays aligned with the full corroboration model.

Get free bot audit