Seatext library / BotRefund evidence
Correlating WebGL Fingerprints with Behavioral Signals to Reduce False Positives
Join WebGL fingerprint hashes with session-level behavioral features — mouse entropy, scroll velocity, click timing, navigation depth — in a scoring engine that only flags visits when both the fingerprint anomaly and the behavioral...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Join WebGL fingerprint hashes with session-level features (mouse entropy, scroll velocity, click timing, navigation depth) in a scoring engine; flag only when both fingerprint anomaly and behavioral deviation exceed thresholds.
What WebGL fingerprinting reveals about device consistency
WebGL exposes the GPU renderer, vendor, shading language version, and texture constraints that a browser reports to the page. A genuine device produces a coherent set of values: the renderer string matches the GPU, the texture limits align with the hardware, and the shading language version fits the driver. Automated browsers, virtual machines, and spoofed profiles often claim one device while their graphics, fonts, audio, or processor behavior tells another story. The WebGL Texture Constraint check looks for exactly this mismatch — a single objective fact about the visit that can be stored as a hash for later correlation.
BotRefund treats this signal as independent evidence, not a bot verdict. Privacy tools, travel, corporate networks, and unusual devices can produce unexpected WebGL values for real people. Keeping the signal as evidence allows downstream correlation instead of immediate blocking.
Behavioral signals that complement WebGL data
Behavioral signals capture how a visitor interacts with the page over time. BotRefund tracks several families of interaction:
- Click behavior: Ghost click detection catches clicks without the natural sequence of human intent. Honeypot trap interactions watch for bots that respond to hidden or deceptive page elements.
- Pointer behavior: Robotic linear mouse movements flag unnaturally straight pointer paths. Absence of humanlike mouse tremor looks for the tiny imperfections and jitter typical of human movement.
- Speed behavior: Superhuman input speed (<1ms) identifies interactions faster than a person could realistically perform.
- Path behavior: Grid-aligned movement patterns detect movement that snaps to precise lines or blocks instead of natural curves.
- Engagement behavior: Absence of clicks or scrolling highlights sessions that stay too static to match a real browsing journey.
- Session behavior: Unnatural session durations catch visit lengths that are too short, too long, or too uniform to be human.
Additional signals from Meta traffic analysis include no scrolling, no field corrections, uniform click paths, and no meaningful time on the offer page. Affiliate fraud detection adds superhuman input speeds (sub-millisecond form autofill) and lack of physical pointer movement — sessions where inputs are populated without mouse movement, screen scrolls, or focus states.
Building a multi-signal feature store
Step 1: Collect WebGL fingerprint hashes on every page load. Capture the renderer, vendor, texture constraints, and shading language version. Hash them into a compact fingerprint ID that can be joined with session data.
Step 2: Stream behavioral events to a session-level aggregator. Compute per-session features: mouse entropy (variance in movement angles and velocities), scroll velocity distribution, click timing intervals, navigation depth (pages visited, time per page), form interaction latency, and pointer tremor metrics.
Step 3: Enrich each session with network and browser context — IP reputation, user-agent consistency, cookie behavior, and canvas fingerprint. Store all features in a feature store keyed by session ID and fingerprint hash.
Step 4: Label a training set. Use confirmed bot sessions (honeypot triggers, known proxy IPs, superhuman speed) and confirmed human sessions (completed purchases, verified logins, long organic sessions). Keep labels separate from the scoring engine so retraining stays clean.
Scoring engine design: thresholds and weighting
Define two independent anomaly scores per session:
- Fingerprint anomaly score: Distance between the observed WebGL hash and the expected hash for the claimed device profile. Use a reference database of legitimate device fingerprints. Score 0–100.
- Behavioral deviation score: Mahalanobis distance of the session's behavioral feature vector from the human baseline distribution. Score 0–100.
Set thresholds empirically. Start with fingerprint anomaly > 70 AND behavioral deviation > 60 as the flag condition. This AND logic ensures a single weird WebGL value on a corporate laptop doesn't trigger a false positive, and a human-like behavioral session on a spoofed fingerprint doesn't pass. Tune thresholds weekly using the labeled set.
Weight the scores in the final decision: final_score = 0.4 * fingerprint_anomaly + 0.6 * behavioral_deviation. The heavier weight on behavior reflects BotRefund's principle that accuracy comes from corroboration, not one browser tell.
Cross-checking for corroboration
BotRefund's pipeline cross-checks each signal against independent browser, network, device, and behavior data. Implement this as a rule layer before the AI model:
- If fingerprint anomaly is high, check whether network signals (IP type, geo consistency) support the same story.
- If behavioral deviation is high, check whether browser signals (canvas, audio, font fingerprints) align with the WebGL claim.
- Only when multiple independent signal families point to automation does the session escalate to the AI prediction stage.
This mirrors the three-step logic: independent evidence, cross-checked context, AI prediction. Each signal adds one objective fact; the system tests whether other signals support the same story; the model weighs the complete pattern instead of trusting a raw rule.
AI model integration and retraining loop
Feed the corroborated feature vector into a gradient-boosted tree or neural network trained on the labeled set. The model outputs a bot probability. BotRefund reports 99% accuracy by evaluating the complete picture across browser, network, device, and behavior evidence.
Retraining loop:
- Collect model predictions and human feedback (chargeback disputes, sales team lead quality, refund approvals).
- Add new labeled sessions to the training set monthly.
- Retrain the model, validate on a holdout set, and deploy if AUC improves.
- Log feature importance shifts — if WebGL fingerprint importance drops, investigate new spoofing techniques.
Common pitfalls and limitations
- Single-signal blocking: Treating a WebGL mismatch as a verdict creates false positives on privacy tools, corporate networks, and unusual devices. Always cross-check.
- Static thresholds: Attackers adapt. Thresholds and model weights must retrain regularly.
- Incomplete behavioral coverage: If you only track clicks but not scroll or pointer tremor, sophisticated bots that mimic click timing will evade detection.
- Feature store latency: Real-time scoring requires sub-100ms feature lookup. Batch pipelines introduce decision lag.
- Label noise: Confirmed bot labels from honeypots are clean; confirmed human labels from purchases may miss bots that convert. Audit labels quarterly.
Key facts
| Signal family | Example checks | Role in pipeline |
|---|---|---|
| WebGL fingerprint | Texture constraint, renderer, vendor, shading language | Independent evidence — hash stored for correlation |
| Click behavior | Ghost click detection, honeypot trap interactions | Behavioral deviation input |
| Pointer behavior | Robotic linear movements, absence of mouse tremor | Behavioral deviation input |
| Speed behavior | Superhuman input speed (<1ms) | Behavioral deviation input |
| Path behavior | Grid-aligned movement patterns | Behavioral deviation input |
| Engagement behavior | Absence of clicks or scrolling | Behavioral deviation input |
| Session behavior | Unnatural session durations | Behavioral deviation input |
| Cross-check principle | Independent evidence → cross-checked context → AI prediction | Reduces false positives; 99% reported accuracy |
FAQ
Why not block on WebGL anomaly alone?
Privacy tools, travel, corporate networks, and unusual devices can produce unexpected WebGL values for genuine people. A single anomaly is not a bot verdict. BotRefund keeps the signal as evidence and cross-checks it against independent browser, network, device, and behavior data.
What behavioral features matter most for correlation?
Mouse entropy (movement variance), scroll velocity distribution, click timing intervals, navigation depth, form interaction latency, and pointer tremor metrics. Superhuman input speed (<1ms) and lack of physical pointer movement are strong automation indicators.
How often should thresholds and models be retrained?
Weekly threshold tuning using the labeled set. Monthly model retraining with new labeled sessions from chargeback disputes, sales team feedback, and refund approvals. Validate on a holdout set before deploy.
What is the minimum viable signal set for a pilot?
WebGL fingerprint hash + three behavioral families (pointer, speed, engagement) + IP reputation. This covers independent evidence, cross-checked context, and a lightweight model.
How do I handle sessions with missing behavioral data?
Short sessions (bounces) have sparse behavioral features. Score them on fingerprint anomaly + network signals only, and apply a higher fingerprint threshold. Do not feed sparse vectors into the behavioral deviation model.
What infrastructure supports real-time scoring?
A feature store with sub-100ms lookup (Redis, DynamoDB, or a dedicated feature platform), stream processing for behavioral aggregation (Kafka Streams, Flink), and a model serving layer (TensorFlow Serving, Triton, or ONNX Runtime) behind an API gateway.
How does this approach compare to single-vendor bot detection?
Single-vendor solutions often rely on a rules engine or a single model. The multi-signal correlation pipeline described here is architecture you own — you control thresholds, feature selection, retraining cadence, and the evidence chain used for ad-platform refund claims.
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.