Seatext library / BotRefund evidence
Why Bots Fail Empty Font Canvas Fingerprinting Checks
Bots fail empty font canvas checks because headless browsers and automation frameworks render fonts differently than real browsers. This creates pixel data mismatches that reveal automated traffic. By analyzing how a browser handles missing...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Bots fail empty font canvas fingerprinting checks because headless browsers and automation frameworks often render fonts differently than real browsers. This produces canvas pixel data that does not match expected human browser output. When a script claims to run on a standard desktop Chrome installation but its canvas rendering shows missing system fonts, inconsistent glyph metrics, or GPU fallback paths that do not align with the declared device, the check flags the discrepancy.
The Empty Font Canvas check is one of 106 independent signals BotRefund uses to build a reliable picture of whether a visit is human or automated. It 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.
What empty font canvas fingerprinting actually measures
Canvas fingerprinting draws text or shapes onto an HTML canvas element, then reads back the pixel data. The resulting bitmap depends on the operating system, installed fonts, GPU driver, browser rendering engine, and even sub-pixel anti-aliasing settings. An "empty font" variant deliberately requests a font family that should not exist on the system, then measures how the browser falls back.
A genuine browser follows a predictable fallback chain defined by the OS and user preferences. An automated browser often takes a different path because its font enumeration is incomplete, its rendering engine runs in a headless mode without GPU acceleration, or its spoofing layer fails to mimic the fallback behavior correctly.
How the check works in practice
The test renders a short string using a font name that does not exist on any mainstream system. It then captures the canvas pixels and compares them against a reference set collected from real browsers on real devices. The comparison looks at glyph spacing, baseline alignment, anti-aliasing patterns, and whether the fallback font matches what the OS would normally substitute.
Because the reference set covers thousands of legitimate device-browser combinations, the check can spot when the fallback behavior is statistically improbable for the claimed environment. This provides a high-fidelity signal that is difficult for bot operators to replicate without significant performance overhead.
Why bots specifically fail this check
- Headless rendering paths differ: Chrome headless, Firefox headless, and PhantomJS each use a software rasterizer instead of the GPU. That changes anti-aliasing, hinting, and sub-pixel positioning in ways that are hard to fake perfectly.
- Font enumeration is incomplete: Automation frameworks often run in stripped-down containers that lack the full system font library. When the test requests a missing font, the fallback font differs from what a real user on the same OS would see.
- Spoofing layers miss edge cases: Tools that fake navigator.userAgent, navigator.platform, or WebGL vendor strings rarely also patch the canvas fallback behavior. The declared OS says Windows, but the canvas fallback looks like Linux DejaVu Sans.
- Virtual machines expose hypervisor artifacts: GPU virtualization often presents a generic framebuffer with a limited font set. The rendering pipeline then produces pixel patterns that never appear on physical hardware.
Diagnostic sequence: from signal to verdict
BotRefund does not treat a single anomaly as a bot verdict. Instead, the Empty Font Canvas signal enters a three-step diagnostic sequence to ensure accuracy:
- Independent evidence: The check adds one objective fact about the visit. It records whether the canvas fallback matched the expected pattern for the claimed device.
- Cross-checked context: BotRefund tests whether other signals support the same story. If the canvas says Linux but the TCP/IP stack, timezone, screen resolution, and behavioral timing all say Windows, the weight of evidence grows.
- AI prediction: The model weighs the complete pattern across browser, network, device, and behavior evidence instead of trusting a raw rule. By seeing how all signals fit together, it identifies a visit as bot or human with 99% accuracy.
Limitations and false positives
Privacy tools, travel, corporate networks, and unusual devices can produce unexpected behavior for genuine people. A user on a hardened browser with font fingerprinting protection may deliberately return a generic canvas. A traveler on a hotel Wi-Fi proxy may show network signals that disagree with their device. BotRefund keeps the Empty Font Canvas signal as evidence—not a verdict—and cross-checks it against independent browser, network, device, and behavior data. This design reduces false blocks while still catching automation that cannot perfectly replicate every rendering quirk.
How this check compares to other fingerprinting vectors
Canvas fingerprinting is only one of 106 checks. Others include hardware and GPU fingerprinting, suspicious ports detection, monitor sync anomaly, silent audio trap, and behavioral signals like ghost click detection, honeypot trap interactions, 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.
Each check targets a different layer: rendering, network, audio, input timing, or session structure. The Empty Font Canvas check is valuable because it probes the graphics stack directly, which is expensive for bot operators to fake consistently across all target environments.
Practical implications for site owners
If you run paid ads on Google or Meta, bot clicks can steal up to 20% of your budget. BotRefund proves bot clicks, negotiates with Google and Meta, and gets your money back. The Empty Font Canvas check is part of the detection suite that captures video proof for each bot click. You can add BotRefund to your website in about one minute with no credit card required, start a free AI audit, export the report, and send it to your Google or Meta rep to claim a refund. Recovery is possible for ad spend dating back to 2017.
Frequently asked questions
Can a sophisticated bot pass the empty font canvas check?
Yes, if the bot operator runs the automation on real hardware with a full font library, enables GPU acceleration, and patches the canvas fallback to match the target OS. That raises the cost and complexity significantly, which is the point of the check.
Does this check block legitimate users who use privacy extensions?
No. BotRefund treats the signal as evidence, not a verdict. A privacy extension that normalizes canvas output will create a mismatch, but the cross-check against network, device, and behavior data usually resolves the visit as human.
How often does the reference set update?
The reference set grows continuously as BotRefund observes new legitimate device-browser combinations across its customer base. This keeps the statistical model current without manual maintenance.
What happens if only the canvas check flags a visit?
If all other signals align with a human profile, the visit is classified as human. A single anomaly is not a bot verdict.
Can I run this check myself without BotRefund?
You can implement a basic canvas fingerprint, but maintaining a reference set of thousands of real-device renders, correlating it with 105 other signals, and feeding it into a calibrated AI model is impractical for most teams.
Does the check work on mobile browsers?
Yes. Mobile browsers have their own font fallback chains and GPU paths. The reference set includes iOS Safari, Chrome Android, and other common mobile configurations.
What is the typical false positive rate for this specific check?
BotRefund does not publish per-check false positive rates because the system evaluates the full pattern. The overall model achieves 99% accuracy through corroboration, not by thresholding any single signal.
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.