Seatext library / BotRefund evidence
How to Combine Tab Speed with Other Signals for Better Bot Detection
Combine tab speed with mouse movement, keystrokes, network data, and device fingerprints using a weighted scoring model. Cross-check each signal against others before labeling a visit as a bot.
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Tab speed alone is not enough to catch sophisticated bots. A real browser tab might change quickly because of a fast reader, a browser extension, or a slow network. The trick is to treat tab speed as one vote, not a verdict. Combine it with other behavioral, network, and device signals in a scoring system. Then cross-check everything before deciding.
Prerequisites Before You Start
You need client-side JavaScript that can measure tab visibility (using the Page Visibility API), mouse movement (pointer events), keystroke timing, and scroll behavior. You also need server-side logs for IP reputation, user-agent consistency, and request timing. A backend that can run a simple scoring model (or a machine learning predictor) is required.
Step 1: Collect Tab Speed Data Accurately
Use the visibilitychange event to log when a tab becomes hidden or visible. Record the time between switches. A normal human switches tabs every few seconds to minutes – rarely in under 100ms unless they are copy-pasting or using shortcuts. But a bot might cycle through dozens of tabs in under a second.
Store each interval, and note the duration the tab was visible before switching. This gives you a raw tab speed value.
Step 2: Pair Tab Speed with Mouse Movement
If a tab switch is very fast (under 200ms) and the mouse movement during that session shows perfectly straight lines, no human tremor, and no pauses – that is a strong bot signal. Real humans have tiny jitter and hesitation. BotRefund uses this cross-check: “The Impossible Tab Speed check looks for a mismatch that a real browsing session does not normally create.” (Source S1)
Record the mouse coordinates over time. Look for unnatural linear paths or moves that snap to grid coordinates. If both tab speed and mouse movement are unnatural, increase the bot score.
Step 3: Add Keystroke and Scroll Patterns
Keystroke timing is another human signature. People type with gaps, backspaces, and pauses between field changes. A bot fills forms in milliseconds with no focus changes. Combine this with tab speed: if the user switches tabs extremely fast and then completes a form with superhuman speed (less than 1ms per key), the session is very likely automated. Source S4 notes that “superhuman input speed” is a forensic indicator of bots.
Scroll behavior also helps. A real user scrolls unevenly, sometimes stops to read. A bot may scroll at a constant speed or not at all. If tab speed is suspicious and the scroll pattern is robotic, add more weight.
Step 4: Weigh Network and Device Signals
Tab speed anomalies alone could be caused by VPNs or corporate networks. Always check network data: IP reputation, user-agent rotation, and high request rates from the same IP. Source S1 explains that privacy tools, travel, and corporate networks can produce unexpected behavior for genuine people. So cross-check device fingerprints: screen resolution, operating system, browser version, installed fonts, and WebGL renderer. Bots often use headless browsers that miss these details or show identical fingerprints across sessions.
Step 5: Build a Weighted Scoring Model
Give each signal a score from 0 (human-like) to 10 (bot-like). Assign weights based on how reliable the signal is for your audience. For example:
- Tab speed: weight 0.3
- Mouse movement: weight 0.4
- Keystroke timing: weight 0.2
- Network/device: weight 0.1
Set a threshold. If total score exceeds, say, 7.0, flag the session for review or blocking. BotRefund uses “AI prediction” that weighs the complete pattern instead of trusting a raw rule (Source S1).
Step 6: Verify with a Second Independent Check
Do not block on the first alarm. Run the flagged session through one more independent test – for example, a honeypot field or a canvas fingerprint mismatch. If the second test confirms, then act. BotRefund keeps each signal as evidence, not a verdict, and cross-checks it against independent browser, network, device, and behavior data (Source S1).
Key Facts About Tab Speed and Signal Combination
| Signal | What It Measures | Why It Helps Bot Detection | Cross-Check With |
|---|---|---|---|
| Tab speed | Time between tab visibility changes | Flags unnaturally fast tab cycling | Mouse movement, network latency |
| Mouse movement | Pointer path, speed, jitter | Human movement has imperfection; bots are robotic | Tab speed, scroll behavior |
| Keystroke timing | Time between keypresses | Superhuman speed (<1ms) indicates automation | Field focus, scroll events |
| Network signals | IP, user-agent, request rate | Identifies proxy rotation and headless browsers | Device fingerprint, tab speed |
| Device fingerprint | Screen, OS, browser, fonts | Bots often have missing or uniform fingerprints | Network signals, user-agent |
Limitations: When This Combination Does Not Work
These signals are not foolproof. A real user on a powerful machine with a fast internet connection might switch tabs very quickly. A reader using keyboard shortcuts (Ctrl+Tab) could trigger fast tab switches. VPNs, corporate proxies, and browser extensions (e.g., tab managers) can create false positives.
Also, sophisticated bots now mimic human delays and jitter. They can randomize mouse movement and inject fake pauses. No single combination catches everything. You must update your models regularly and use multiple independent checks.
Terminology You Should Know
- Tab speed: The measured time interval between when a tab becomes hidden or visible in the browser.
- Human jitter: The tiny, unconscious wobble in mouse movement or typing that distinguishes real people from machines.
- Headless browser: A browser without a graphical interface used by bots to automate actions; often lacks normal device fingerprints.
- Scoring model: A weighted sum of multiple signals that produces a likelihood score for a visit being automated.
- Cross-checking: Comparing two or more independent signals to confirm or reject a bot verdict.
Frequently Asked Questions
How many signals should I combine?
At least three independent categories: behavior (tab speed, mouse, keystrokes), network, and device. More signals reduce false positives, but each adds latency and complexity.
Is tab speed a reliable signal on its own?
No. Tab speed alone has many false positives. It becomes useful only when cross-checked with other behavioral data, as BotRefund does: “A single anomaly is not a bot verdict.” (Source S1)
Can bots fake human-like tab speed?
They can fake it, but they still struggle to reproduce the varied timing, movement, and hesitation of real people (Source S1).
What is the best way to weigh signals?
Start with equal weights, then adjust based on your real traffic data. Run A/B tests between weighted and unweighted models to see which catches more bots without blocking real users.
Do I need machine learning to combine signals?
No. A simple weighted sum can work well for most sites. Advanced ML like BotRefund’s AI prediction can improve accuracy but is not required to start.
How often should I update my signal combination?
At least monthly. Bots evolve quickly. Review false negative and false positive logs regularly and adjust thresholds or add new signals.
What is the cost of combining multiple signals?
Client-side measurement adds minimal performance cost (a few kilobytes of JavaScript and milliseconds of processing). Server-side checks add CPU time but are manageable. The main cost is setup and ongoing tuning.
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.