Seatext library / BotRefund evidence
Which Bot Detection Signals Are Independent Enough for Corroboration?
Independent bot detection signals come from separate layers — browser rendering, network behavior, user interaction, device APIs, and server-side analytics — so no single spoofing technique can fake all of them at once. BotRefund...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Independent signals come from different layers, such as browser rendering, network behavior, user interaction, device APIs, and server-side analytics, so an attacker cannot fake all of them with one script. BotRefund uses 106 independent checks spread across these layers and treats each signal as evidence — not a verdict — until multiple independent signals tell the same story.
Why Independence Matters for Corroboration
Corroboration only works when signals fail independently. If two checks both rely on the same JavaScript execution environment, a single spoofing tool can defeat both at once. True independence means each signal observes a different physical or logical constraint: the GPU driver, the TCP stack, the mouse hardware, the display refresh rate, the server-side session log. When a bot tries to spoof one layer, the other layers still report the truth.
BotRefund's documentation states this principle 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). The same language appears on the Suspicious Ports and Monitor Sync Anomaly pages (S3, S8).
The Five Signal Layers That Stay Independent
Practitioners group independent signals into five layers. Each layer draws on a different substrate, so a single automation framework cannot control all of them simultaneously.
- Browser rendering and execution environment — WebGL texture constraints, canvas fingerprinting, JavaScript engine quirks, console.debug behavior.
- Network and routing evidence — Suspicious ports, TLS fingerprint, IP reputation, geolocation consistency, proxy/VPN exit-node signatures.
- User interaction and behavioral biometrics — Mouse tremor, click latency, scroll rhythm, gesture entropy, session duration distribution.
- Device and hardware constraints — Battery API, memory layout, CPU core count, sensor noise, monitor refresh synchronization.
- Server-side and application-layer telemetry — Request sequencing, header ordering, cookie handling, form-submission timing, CRM outcome correlation.
BotRefund's 106 checks map onto these layers. The WebGL Texture Constraint check (S1) belongs to layer one. The Suspicious Ports check (S3) belongs to layer two. Ghost click detection, honeypot traps, robotic linear mouse movements, absence of humanlike mouse tremor, superhuman input speed, grid-aligned movement patterns, absence of clicks or scrolling, and unnatural session durations (S2, S4, S6, S9) belong to layer three. Monitor Sync Anomaly (S8) bridges layers three and four.
Browser-Level Signals: Rendering and Execution Environment
Browser-level signals exploit the fact that real browsers render pixels through a complex pipeline — GPU driver, compositor, font rasterizer, WebGL implementation — that headless or automated browsers struggle to replicate perfectly.
WebGL Texture Constraint
The WebGL Texture Constraint check "looks for a mismatch that a real browsing session does not normally create. Virtual machines and spoofed profiles can claim one device while their graphics, fonts, audio, or processor behavior tells another story" (S1). A bot running in a virtualized GPU may report a high-end discrete card but produce texture compression artifacts or framebuffer behaviors that only appear on integrated graphics.
JavaScript Engine and Console Signals
Automated browsers often expose internal engine properties — console.debug evaluator behavior, Error stack formatting, Date timezone consistency, Intl locale data — that differ from the claimed user-agent. These signals are independent of WebGL because they stem from the JS VM, not the graphics stack.
Network-Level Signals: Connection and Routing Evidence
Network signals observe the path packets take and the protocol state machines they traverse. A bot using residential proxies still terminates TLS at the proxy edge, producing a JA3 fingerprint that may not match the claimed browser version.
Suspicious Ports
"The Suspicious Ports check looks for a mismatch that a real browsing session does not normally create. Proxy rotation, location masking, or browser spoofing can make separate network facts disagree" (S3). For example, a connection claiming to originate from a mobile carrier in Chicago but exiting a data-center IP on port 3128 creates a network-layer contradiction that no browser-side script can fix.
TLS and HTTP/2 Fingerprints
Client Hello cipher-suite ordering, ALPN negotiation, HTTP/2 SETTINGS frames, and header compression dictionaries vary by browser build. These are negotiated before any JavaScript runs, so they remain independent of browser-level spoofing.
Behavioral Signals: Interaction Patterns That Resist Scripting
Human input has micro-variability that deterministic scripts cannot reproduce without access to physical input devices. BotRefund catalogs eight behavioral signal families (S2, S4, S6, S9):
- Ghost click detection — clicks without the preceding hover, focus, or intent sequence.
- Honeypot trap interactions — responses to hidden or deceptive page elements.
- Robotic linear mouse movements — straight-line paths lacking the curvature of human motion.
- Absence of humanlike mouse tremor — missing the 8–12 Hz physiological jitter.
- Superhuman input speed (<1 ms) — events faster than neuromuscular limits.
- Grid-aligned movement patterns — snapping to pixel-perfect coordinates.
- Absence of clicks or scrolling — sessions that never engage.
- Unnatural session durations — too short, too long, or statistically uniform.
These signals are independent of browser and network layers because they measure the output of the human motor system, not the browser's rendering or the network's routing. A bot can spoof a user-agent and route through a residential proxy, but it still must generate mouse events. If it uses a recorded human session, the timing distribution will lack the entropy of a live person.
Monitor Sync Anomaly
"Scripts can send clicks and scrolls, but they struggle to reproduce the varied timing, movement, and hesitation of real people" (S8). This check correlates input timestamps with display refresh cycles (vsync). A real mouse event arrives at a random phase relative to the monitor's refresh; a scripted event often aligns unnaturally.
Device and Hardware Signals: Physical Constraints
Device signals query APIs that expose hardware reality: navigator.deviceMemory, navigator.hardwareConcurrency, Battery Status API, WebGL UNMASKED_RENDERER_WEBGL, AudioContext sample-rate stability, accelerometer/gyroscope noise floor. A virtual machine can lie about core count, but the cache-miss latency profile and thermal throttling behavior will betray the emulation.
These signals are independent because they depend on silicon physics, not browser code. A bot running in a container shares the host's hardware but inherits the host's thermal and power state, which rarely matches the claimed mobile device profile.
How BotRefund Combines Independent Signals
BotRefund does not threshold any single signal. Instead, it follows a three-step process described on each signal page (S1, S3, S8):
- Independent evidence — each check adds one objective fact about the visit.
- Cross-checked context — the system tests whether other signals support the same story.
- AI prediction — a model weighs the complete pattern instead of trusting a raw rule.
"Accuracy comes from corroboration, not one browser tell. BotRefund sends this signal into our prediction AI, which evaluates the complete picture across browser, network, device, and behavior evidence. By seeing how all signals fit together, it identifies a visit as bot or human with 99% accuracy" (S1, S3, S8).
The FinTrust case study illustrates the outcome: suppressing conversion events for automated browser emulation signals ensured Meta and Google AI trained only on verified accounts, recovering $140,000 in ad spend and increasing conversion rate by 18% (S5).
Key Facts
| Signal Layer | Example Checks (from BotRefund's 106) | Independence Basis | Spoofing Difficulty |
|---|---|---|---|
| Browser rendering | WebGL Texture Constraint, Canvas fingerprint, JS engine quirks | GPU driver, compositor, font rasterizer | High — requires matching physical GPU behavior |
| Network routing | Suspicious Ports, TLS JA3, HTTP/2 SETTINGS, IP reputation | TCP/TLS stack, BGP path, proxy exit nodes | High — requires clean residential exit with matching TLS |
| User interaction | Ghost clicks, honeypots, mouse tremor, linear motion, speed, grid alignment, session duration | Human motor system, neuromuscular latency, physiological tremor | Very high — requires physical input device or perfect replay with entropy |
| Device hardware | Battery API, hardware concurrency, device memory, sensor noise, vsync alignment | Silicon physics, thermal state, power management | High — requires matching hardware profile end-to-end |
| Server-side telemetry | Request sequencing, header ordering, form timing, CRM outcome correlation | Application logic, business outcomes | Medium — observable only after request reaches server |
Limitations and When This Approach Doesn't Apply
Independent-signal corroboration has practical limits:
- Privacy tools and corporate proxies — VPNs, Tor, enterprise ZTNA, and anti-fingerprinting browsers (Brave, Tor Browser) intentionally homogenize or mask signals, creating false positives. BotRefund acknowledges this: "Privacy tools, travel, corporate networks, and unusual devices can produce unexpected behavior for genuine people" (S1, S3, S8).
- Sophisticated adversaries — attackers with access to real device farms (residential proxy networks with physical phones) can produce authentic signals across multiple layers simultaneously. The SERP research notes bots now "leverage anti-detect automation frameworks, residential proxies and CAPTCHA farms" (SERP result 3).
- Single-page apps with minimal interaction — if a user loads a page and converts without scrolling or clicking, behavioral signals have no data. Network and browser signals must carry the weight.
- Model drift — the AI prediction step (step 3) requires continuous retraining as browsers, devices, and bot frameworks evolve. A static rule set decays quickly.
Terminology
- Independent signal
- A detection check whose outcome cannot be controlled by the same spoofing technique that defeats another check. Independence is defined by the underlying substrate (GPU, TCP stack, motor system, silicon, server log).
- Corroboration
- The process of requiring multiple independent signals to agree before classifying a visit as automated. A single anomaly is evidence, not a verdict.
- WebGL Texture Constraint
- A browser-level check that compares reported GPU capabilities against observed texture rendering behavior to detect virtualized or spoofed graphics stacks.
- Suspicious Ports
- A network-level check that flags connections originating from ports commonly used by proxy/VPN software (e.g., 3128, 8080, 1080) when the claimed network type (mobile, residential) does not use such ports.
- Monitor Sync Anomaly
- A behavioral/hardware check that measures the phase relationship between input events and display refresh cycles (vsync) to detect scripted input.
- Ghost click
- A click event that lacks the preceding human intent sequence: hover, focus, dwell time, or natural approach trajectory.
- Honeypot trap
- A hidden page element (form field, link, button) that real users cannot see but automated scrapers or form-fillers interact with.
FAQ
How many independent signals do I need before I can trust a bot verdict?
There is no fixed number. BotRefund's AI weighs the complete pattern across all 106 checks. In practice, a verdict typically requires concordance from at least two different layers (e.g., browser + behavioral, or network + device). A single-layer cluster — even many checks — is insufficient because one spoofing tool can control an entire layer.
Can a sophisticated bot farm defeat independent-signal corroboration?
Yes, if the farm uses real physical devices (phones, laptops) on residential networks with human operators or high-fidelity replay systems. The SERP research confirms modern bots "leverage anti-detect automation frameworks, residential proxies and CAPTCHA farms" (SERP result 3). Independent signals raise the cost and complexity of the attack; they do not make detection impossible.
What happens when a legitimate user triggers multiple anomaly signals?
BotRefund treats each signal as evidence, not a verdict. The AI model incorporates context — known VPN exit nodes, corporate IP ranges, device rarity — to avoid false positives. The documentation repeats this guardrail on every signal page (S1, S3, S8).
Are behavioral signals more reliable than browser signals?
They are independent of browser signals, which makes them valuable for corroboration. However, behavioral signals require sufficient interaction volume. A bounce session with one pageview yields no mouse or scroll data. Browser and network signals work on the first request.
How often should the signal set be updated?
Continuously. Browser releases change WebGL behavior, TLS libraries change cipher ordering, new proxy protocols appear, and bot frameworks improve replay fidelity. BotRefund's 106-check count implies active maintenance; a static list becomes stale within months.
Can I build independent-signal corroboration in-house?
You can, but it requires instrumenting all five layers, maintaining a labeled dataset for model training, and operating a feedback loop with ad-platform refund processes. BotRefund's case study shows the refund-recovery workflow (negotiating with Google and Meta) is a distinct operational capability (S2, S5, S6).
What is the difference between a signal and a rule?
A signal is an observable fact (e.g., "mouse tremor absent"). A rule is a threshold decision (e.g., "if tremor absent → bot"). BotRefund avoids raw rules; its AI weighs signals probabilistically. This distinction matters because rules create sharp boundaries that attackers can probe; probabilistic weighting degrades gracefully.
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.