Seatext library / BotRefund evidence
How BotRefund Uses WebGL Texture Constraints to Identify Bots
BotRefund uses WebGL Texture Constraint as one of 106 independent checks to spot mismatches between a browser's claimed device properties and its actual GPU rendering behavior. The signal flags anomalies that real browsing sessions...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
What WebGL Texture Constraint Actually Checks
WebGL (Web Graphics Library) lets browsers render 3D graphics using the device's GPU. When a page runs WebGL code, the browser reports details about the graphics hardware: GPU vendor, renderer string, supported extensions, and texture limits. These values are tied to the physical hardware and driver stack.
BotRefund's WebGL Texture Constraint check examines whether the reported texture limits—maximum texture size, maximum cube map texture size, maximum renderbuffer size, and similar GPU caps—are consistent with the device the browser claims to be. A real Chrome on a MacBook Pro reports limits that match that GPU. A headless Chrome running in a container may report a desktop GPU string but return texture limits from a software renderer or a different GPU entirely.
How the Detection Process Works
- Collect the WebGL fingerprint. The script initializes a WebGL context and reads the
getParameter()values for texture-related constants:MAX_TEXTURE_SIZE,MAX_CUBE_MAP_TEXTURE_SIZE,MAX_RENDERBUFFER_SIZE,MAX_VERTEX_TEXTURE_IMAGE_UNITS, and others. - Compare against the claimed device profile. The browser's user agent, client hints, and navigator properties imply a device class (e.g., "iPhone 15, iOS 17, Safari"). BotRefund maintains a reference database of expected texture limits for each device class.
- Flag mismatches. If the observed limits fall outside the expected range for the claimed device—or if they match a known headless/VM signature—the check emits an anomaly signal.
- Store as independent evidence. Per BotRefund's documentation, "This signal adds one objective fact about the visit" (S1). It is not a block decision.
- Cross-check with 105 other signals. The anomaly is weighed alongside browser consistency checks, network reputation, behavioral biometrics (mouse tremor, click timing, scroll patterns), and device fingerprinting.
- Feed into the AI prediction model. The model evaluates the complete pattern across all signals and outputs a bot/human probability. BotRefund states this corroboration approach yields "99% accuracy" (S1).
Why Single Signals Aren't Verdicts
Privacy tools, corporate proxies, unusual hardware, and legitimate edge cases can produce unexpected WebGL readings. A developer testing on a rare GPU, a user on a corporate VDI, or someone running a privacy-hardened browser may trigger the texture constraint check without being a bot. BotRefund explicitly notes: "Privacy tools, travel, corporate networks, and unusual devices can produce unexpected behavior for genuine people. BotRefund keeps this signal as evidence—not a verdict" (S1).
This design prevents false positives that would block real customers. The signal only gains weight when multiple independent checks point to the same conclusion.
Cross-Checking Against Other Evidence
The WebGL Texture Constraint signal enters a correlation engine that looks for corroboration across four evidence categories:
- Browser evidence: Canvas fingerprint, AudioContext fingerprint, font enumeration, navigator properties consistency.
- Network evidence: IP reputation, ASN type (datacenter vs. residential), proxy/VPN detection, geolocation mismatch.
- Device evidence: Battery API, hardware concurrency, device memory, screen resolution vs. viewport consistency.
- Behavioral evidence: Mouse movement tremor, click interval distribution, scroll velocity, form interaction timing, honeypot field interaction.
BotRefund's documentation describes this as: "BotRefund tests whether other signals support the same story" and "Our model weighs the complete pattern instead of trusting a raw rule" (S1).
The AI Prediction Layer
After cross-checking, the aggregated signal vector feeds a machine learning model trained on labeled bot and human traffic. The model learns which combinations of anomalies reliably indicate automation versus which appear in legitimate edge cases. BotRefund claims the result is "99% accuracy" derived from "corroboration, not one browser tell" (S1).
The model outputs a probability score. Customers can set thresholds for blocking, challenging, or simply logging suspicious visits. The system also generates audit-ready reports with video proof of each flagged session for ad platform refund disputes (S3, S4).
Limitations and False Positives
- New or rare hardware: A newly released GPU may not be in the reference database, causing a temporary mismatch.
- Software renderers: Some legitimate environments (CI pipelines, remote desktop, certain VMs) use software WebGL implementations with different limits.
- Privacy browsers: Hardened Firefox or Brave configurations may spoof or restrict WebGL, creating intentional anomalies.
- Driver updates: GPU driver changes can alter reported limits without changing the hardware.
- Evasion: Sophisticated bot operators can instrument headless browsers to return plausible texture limits for a target device profile.
BotRefund mitigates these by requiring corroboration. A WebGL anomaly alone rarely crosses the action threshold.
How This Fits Into BotRefund's 106-Check System
WebGL Texture Constraint is one of 106 independent checks grouped into categories:
- Hardware & GPU Fingerprinting (includes WebGL Texture Constraint, canvas fingerprint, WebGL vendor/renderer)
- Biometric & Behavioral Interactions (mouse tremor, click timing, scroll patterns, impossible tab speed, window.open tamper)
- Network & Infrastructure (IP reputation, proxy detection, datacenter ASN)
- Browser Consistency (navigator properties, client hints, feature detection)
Each check follows the same pattern: collect an objective fact, cross-check against other signals, feed into the AI model. This modular design lets BotRefund add new checks as evasion techniques evolve without rewriting the core logic.
Key Facts
| Aspect | Detail |
|---|---|
| Check name | WebGL Texture Constraint |
| Category | Hardware & GPU Fingerprinting |
| Total independent checks in BotRefund | 106 |
| What it measures | GPU texture limits (MAX_TEXTURE_SIZE, MAX_CUBE_MAP_TEXTURE_SIZE, MAX_RENDERBUFFER_SIZE, etc.) |
| Anomaly trigger | Mismatch between reported texture limits and claimed device profile |
| Common causes of mismatch | Virtual machines, headless browsers, spoofed user agents, software renderers, privacy tools |
| Decision weight | Single signal = evidence only, not a verdict |
| Corroboration method | Cross-checked against browser, network, device, and behavioral signals |
| Final classification | AI prediction model weighing complete pattern |
| Claimed accuracy | 99% (from corroboration across all signals) |
| Setup time | About one minute to add to website |
| Refund coverage | Google Ads spend dating back to 2017 |
Frequently Asked Questions
Does WebGL Texture Constraint block bots by itself?
No. BotRefund treats it as one piece of evidence. A single anomaly never triggers a block; the AI model requires corroboration from multiple independent signals before classifying a visit as bot traffic.
Can a sophisticated bot fake WebGL texture limits?
Yes. Advanced bot operators can instrument headless browsers to return plausible texture values for a target device. That's why BotRefund doesn't rely on any single check—the evasion must simultaneously fool dozens of independent signals across different categories.
Will this check flag legitimate users on unusual devices?
It can flag them as an anomaly, but the cross-checking layer prevents false blocks. A user on a rare GPU with consistent browser, network, and behavioral signals will still be classified as human.
How often is the reference database updated?
BotRefund doesn't publish a specific cadence, but the system adds new device profiles as they appear in verified human traffic. The modular 106-check architecture allows new signatures to be deployed without full model retraining.
What happens when a visit is flagged?
Depending on the customer's threshold settings, the visit may be logged, challenged with a CAPTCHA, blocked from conversion pixels, or all of the above. BotRefund captures video proof of each flagged session for ad platform refund disputes.
Can I see the WebGL Texture Constraint signal for my own traffic?
Yes. BotRefund's dashboard shows signal-level breakdowns for each session, including which of the 106 checks fired and the final AI probability score.
Does this work on mobile browsers?
Yes. Mobile GPUs have distinct texture limits (typically lower than desktop). The check compares observed mobile limits against the expected profile for the claimed device (e.g., iPhone 15, Samsung Galaxy S24).
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.