Seatext library / BotRefund evidence
What Are the Signs of Headless Browser Automation That BotRefund Looks For?
BotRefund identifies headless browser automation by checking for missing browser UI features, inconsistent user-agent strings, WebGL rendering differences, and automation-related JavaScript properties like navigator.webdriver. It evaluates over 100 independent signals across browser, network, device,...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
BotRefund looks for technical mismatches that appear when automation tools like Playwright, Puppeteer, or Selenium drive a browser. These tools often patch or hide standard browser APIs, but those changes create inconsistencies when the browser is examined from multiple angles. A single anomaly is never treated as a verdict; instead, each signal becomes one piece of evidence that is weighed against dozens of others.
What Headless Browser Automation Means for Ad Traffic
Headless browsers run without a visible interface. They are useful for testing and scraping, but they also power click farms, competitor click fraud, and pixel-poisoning scripts that drain ad budgets. When a paid click arrives from a headless session, the advertiser pays for a visit that cannot convert. BotRefund's job is to spot the technical fingerprints these sessions leave behind.
The detection challenge is that sophisticated automation tries to mimic a real browser. It may spoof the user-agent, fake a screen resolution, or inject mouse movements. BotRefund addresses this by checking the same property through different code paths. If the results disagree, the session gets flagged for deeper review.
Core Browser-Level Signals BotRefund Evaluates
BotRefund runs 106 independent browser checks. Several target the inconsistencies that automation frameworks introduce when they modify built-in objects.
Automation-Related JavaScript Properties
Tools like Selenium set navigator.webdriver to true. Playwright and Puppeteer attempt to hide this, but they often leave traces in other properties such as window.chrome, navigator.plugins, or the behavior of Function.toString(). BotRefund checks these properties against each other and against the expectations for a genuine browser build.
Playwright Init Scripts and Injected Code
Playwright injects initialization scripts before any page code runs. These scripts patch APIs to hide automation. The Playwright Init Scripts check looks for the mismatch that a real browsing session does not normally create. As the source explains, "Automation tools often patch or hide browser APIs, but those changes can break when the browser is checked from another angle." [S1]
Clean Context Iframe Discrepancies
A clean iframe provides a fresh JavaScript context that has not been touched by page scripts. Automation patches applied to the main window often do not propagate into that clean context. The Clean Context Iframe check compares API behavior between the main window and the iframe. A divergence signals that something altered the main context after load. [S5]
User-Agent and Client Hint Consistency
The user-agent string and the newer Client Hints headers must agree. A headless browser may send a Chrome user-agent while its Client Hints report a different platform or version. BotRefund compares these values along with navigator.platform, navigator.hardwareConcurrency, and navigator.deviceMemory for internal consistency.
WebGL and Canvas Rendering Fingerprints
Headless modes often use a software renderer (like SwiftShader) instead of the GPU. This changes the WebGL vendor string, renderer string, and the output of canvas fingerprinting. BotRefund captures these rendering details and checks them against the expected values for the claimed device and browser version.
Missing Browser UI Features
A real browser exposes certain UI-related objects and behaviors: window.chrome, the permissions API, the presence of browser extensions, and the behavior of window.open() with specific features. Headless instances frequently lack these or return placeholder values.
Behavioral and Interaction Patterns That Reveal Automation
Browser configuration is only half the picture. BotRefund also records how the visitor interacts with the page. The homepage lists several behavioral signals that are difficult for scripts to fake convincingly. [S2]
Pointer and Motion Behavior
- Robotic linear mouse movements: Real hands produce micro-curves and corrections. Scripts often move in straight lines between coordinates.
- Absence of humanlike mouse tremor: Even a steady hand shows tiny jitter. Automation typically produces perfectly smooth paths.
- Grid-aligned movement patterns: Movements that snap to exact pixel rows or columns suggest programmatic control.
- Superhuman input speed (<1ms): Clicks, scrolls, or keystrokes that occur faster than human neuromuscular limits.
Click and Engagement Behavior
- Ghost click detection: Click events that fire without the natural sequence of human intent — no preceding hover, no focus change, no pressure curve.
- Honeypot trap interactions: Bots often click or fill hidden elements that real users never see.
- Absence of clicks or scrolling: Sessions that load a page and immediately trigger a conversion event without any exploration.
Session-Level Patterns
- Unnatural session durations: Visits that are too short, too long, or too uniform across many sessions.
- Scrollbar width leak: The Scrollbar Width Leak check looks for mismatches in scrollbar metrics that scripts struggle to reproduce because they depend on OS-level rendering quirks. [S3]
How BotRefund Combines Signals Instead of Relying on Single Tells
Each of the 106 checks produces an independent piece of evidence. BotRefund does not block or flag based on one signal. The process follows three steps:
- Independent evidence: Each signal 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.
This corroboration approach is why BotRefund states its accuracy comes from "corroboration, not one browser tell" and reaches 99% confidence when the session evidence supports it. [S1] [S7]
Privacy tools, corporate proxies, unusual devices, and travel can all produce anomalous browser behavior for genuine people. By requiring multiple independent signals to align, the system reduces false positives that would otherwise penalize legitimate visitors.
Common Evasion Techniques and Why They Often Fail
Automation developers use several strategies to avoid detection. Understanding these helps explain why BotRefund checks the same property from multiple angles.
User-Agent Spoofing
Changing the user-agent string is trivial, but it does not update the underlying browser engine. Client Hints, WebGL renderer, and JavaScript engine quirks remain unchanged. BotRefund compares the declared identity against the observed behavior.
Stealth Plugins and Patches
Projects like puppeteer-extra-plugin-stealth or Playwright's stealth mode patch navigator.webdriver, mock chrome.runtime, and override permissions. These patches work in the main context but often miss the clean iframe, the service worker context, or the WebWorker context. The Clean Context Iframe check is designed specifically for this gap.
Behavioral Replay Libraries
Some tools record human sessions and replay the mouse coordinates, timings, and scroll positions. Replay can fool simple heuristic checks, but it struggles with dynamic page elements (ads that load late, lazy-loaded images, A/B test variants). The replayed path may click empty space or miss a button that shifted. BotRefund's ghost click and honeypot checks catch these mismatches.
Residential Proxy Networks
Routing through residential IPs hides the data-center origin. However, the browser fingerprint still belongs to the automation host. Network context is one signal among many; it does not override browser and behavioral evidence.
Limitations and False-Positive Considerations
No detection system is perfect. BotRefund acknowledges several scenarios where legitimate traffic can look suspicious:
- Privacy-hardened browsers: Tools like Brave, Tor Browser, or hardened Firefox configurations deliberately strip or randomize fingerprints.
- Corporate security stacks: Enterprise proxies, SSL inspection, and endpoint agents modify headers and inject scripts.
- Assistive technologies: Screen readers, voice control, and switch devices produce interaction patterns that differ from mouse-and-keyboard norms.
- Unusual hardware: Single-board computers, thin clients, or rare GPU/OS combinations may have atypical WebGL or canvas output.
Because each signal is kept as evidence rather than a verdict, these edge cases are evaluated in the full context. A visitor using a privacy browser on a corporate network might trigger several browser-configuration signals, but their behavioral signals (natural mouse tremor, realistic scroll timing, varied click paths) will usually align with a human pattern. The AI model weighs the complete picture.
Key Facts
| Fact | Detail | Source |
|---|---|---|
| Total independent browser checks | 106 | S1, S3, S5 |
| Detection confidence when evidence aligns | 99% | S1, S2, S7 |
| Core signal categories | Browser, network, device, behavior | S1, S2, S7 |
| Decision method | AI model weighing complete pattern, not single rules | S1, S3, S5 |
| False-positive mitigation | Cross-checking across independent signals; privacy tools and corporate networks acknowledged as sources of anomalies | S1, S3, S5 |
| Report output | Refund-ready reports with click IDs, campaign details, timestamps, session recordings, signal-by-signal reasoning | S2 |
| Client refund success rate | 83% of 2,500+ audited brands recover funds from Google and Meta | S2 |
Terminology
- Headless browser
- A browser that runs without a graphical user interface, typically controlled programmatically.
- Automation framework
- Software libraries (Playwright, Puppeteer, Selenium) that drive browsers via standard protocols like CDP or WebDriver.
- Fingerprinting
- Collecting browser and device attributes (user-agent, WebGL, canvas, fonts, etc.) to identify or classify a client.
- Clean context iframe
- An iframe created with a fresh JavaScript environment that has not been modified by page-level scripts.
- Ghost click
- A click event that fires without the preceding human intent signals (hover, focus, pressure).
- Honeypot
- A hidden page element designed to be invisible to humans but detectable by automated scripts.
- Pixel poisoning
- Corruption of conversion tracking data by non-human traffic, causing ad platforms to optimize for bot-like behavior.
FAQ
Does BotRefund block traffic automatically?
No. BotRefund detects and documents invalid traffic. The evidence is packaged into refund-ready reports that advertisers submit to Google and Meta. Blocking is a separate decision the advertiser makes.
Can a sophisticated stealth plugin bypass all 106 checks?
Stealth plugins patch many known detection vectors, but they must patch every context (main window, iframes, workers, service workers) consistently. BotRefund's cross-context checks (like Clean Context Iframe) are designed to catch inconsistencies between contexts. The AI model also weighs behavioral signals that stealth plugins do not address.
What happens if a real user triggers several browser-configuration signals?
The system treats each signal as evidence, not a verdict. A privacy-hardened browser may look anomalous in fingerprint checks, but the behavioral layer (mouse tremor, scroll variance, click timing) typically aligns with human patterns. The AI model evaluates the full pattern.
How does BotRefund differ from server-side log analysis?
Server-side analysis sees IP, headers, and request timing. It misses client-side behavior: mouse movement, scroll depth, rendering quirks, and JavaScript execution. BotRefund runs in the browser, capturing the layer where automation tools actually operate. [S4]
What evidence do Google and Meta require for a refund?
Both platforms expect click IDs (GCLID, FBCLID), timestamps, campaign identifiers, and a clear explanation of why the traffic is invalid. BotRefund structures its reports in the format their review teams use, including session recordings and signal-by-signal reasoning. [S2] [S6]
Is there a cost to try BotRefund?
The homepage offers a free bot audit and free bot protection installation. Pricing for ongoing protection scales with traffic volume. [S2]
Can BotRefund help with Meta lead-form spam?
Yes. The Meta invalid traffic guide notes that bot traffic and form spam leave repeatable technical and behavioral patterns: unusually fast form completion, identical field structures, sudden placement-level spikes, or conversions with no meaningful page engagement. BotRefund's behavioral signals capture these patterns. [S8]
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.