Seatext library / BotRefund evidence
What Is Empty Font Canvas Bot Detection and How Does It Work?
Empty font canvas bot detection draws text using a font that does not exist on the visitor's system, then examines how the browser renders the missing glyphs. Real browsers and automated tools handle this...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Empty font canvas bot detection is a fingerprinting technique that instructs the browser to render text with a deliberately nonexistent font name. A genuine browser substitutes a default font and produces a predictable pixel pattern, while many automated browsers, headless environments, or spoofed profiles either fail to render, render differently, or expose inconsistencies in their reported font stack. The resulting pixel data becomes one independent signal among many that a detection system can weigh.
BotRefund uses this check as one of 106 independent signals. The company emphasizes that a single anomaly is not a bot verdict; privacy tools, corporate networks, travel, and unusual devices can all create unexpected rendering for legitimate visitors. The empty font canvas result is kept as evidence and cross‑checked against browser, network, device, and behavior data before an AI model issues a final classification.
What Empty Font Canvas Detection Actually Does
The test creates an HTML canvas element, sets a font family that does not exist on any operating system (for example, "__botrefund_empty_font__"), and draws a short string. The browser must fall back to its default font. The script then reads the pixel buffer of the canvas and measures characteristics such as glyph width, height, anti‑aliasing pattern, and baseline position.
In a normal Chrome, Firefox, Safari, or Edge session the fallback path is consistent for a given OS and browser version. Headless Chrome, PhantomJS, older Selenium drivers, or custom automation frameworks often use a different rendering pipeline (Skia vs. DirectWrite vs. Core Text) or disable font fallback entirely. The resulting pixel hash diverges from the expected baseline, flagging the session for further scrutiny.
How the Check Works Step by Step
- Canvas creation: A hidden or off‑screen
<canvas>element is added to the DOM. - Font assignment: The drawing context receives a
fontproperty set to a random, non‑existent family name at a specific size (e.g., "16px __botrefund_empty_font__"). - Text rendering: A short, fixed string such as "detection" is drawn with
fillText. - Pixel extraction:
getImageDatareads the raw RGBA values of the drawn region. - Feature hashing: The pixel array is reduced to a compact hash (often a perceptual hash or simple checksum) that represents the visual output.
- Comparison: The hash is compared against a reference set collected from known‑good browsers on real devices.
- Signal emission: A match, near‑match, or mismatch is recorded as a boolean or confidence score and passed to the correlation engine.
Because the test runs entirely in the browser, it requires no server round‑trip and adds only a few milliseconds to page load. The signal is stateless and repeatable, making it suitable for real‑time scoring.
Why a Single Signal Isn't a Verdict
BotRefund's documentation states clearly: "A single anomaly is not a bot verdict. Privacy tools, travel, corporate networks, and unusual devices can produce unexpected behavior for genuine people." The empty font canvas check can be triggered by legitimate scenarios:
- Browser extensions that block canvas fingerprinting (e.g., CanvasBlocker, Privacy Badger) may return a blank or noise‑filled canvas.
- Corporate virtual desktop infrastructure (VDI) often uses GPU virtualization that changes font rasterization.
- Users on rare Linux distributions or custom fontconfig setups may fall back to a different default font.
- Mobile browsers in power‑save mode sometimes disable sub‑pixel anti‑aliasing.
Because of these false‑positive sources, the signal is stored as independent evidence. The correlation engine then asks: do the network, device, and behavior signals tell the same story? Only when multiple independent vectors align does the AI model assign a high bot probability.
How BotRefund Uses This Signal in Practice
According to the source page, the empty font canvas check follows a three‑step workflow inside BotRefund's pipeline:
- Independent evidence: The canvas hash adds one objective fact about the visit.
- Cross‑checked context: BotRefund tests whether other signals (hardware fingerprint, GPU fingerprint, suspicious ports, behavioral cadence) support the same conclusion.
- AI prediction: A prediction model weighs the complete pattern instead of trusting a raw rule, achieving a reported 99% accuracy across the full signal set.
The same page notes that BotRefund sends this signal into its prediction AI, which evaluates the complete picture across browser, network, device, and behavior evidence. The company's homepage adds that the system detects ghost clicks, honeypot interactions, robotic mouse movements, missing human tremor, superhuman input speed, grid‑aligned paths, static sessions, and unnatural session durations — all of which are correlated with the canvas signal before a refund claim is filed with Google or Meta.
Common Scenarios Where This Check Helps
| Scenario | What the Canvas Signal Shows | Why It Matters |
|---|---|---|
| Headless Chrome scraping product pages | Missing or altered glyph rendering due to disabled font fallback | Flags automated inventory checks that inflate ad clicks |
| Puppeteer scripts clicking ads | Consistent hash mismatch across sessions | Provides evidence for refund claims |
| Spoofed user‑agent claiming mobile Safari | Desktop rendering pipeline produces desktop‑style anti‑aliasing | Reveals device‑profile inconsistency |
| Legitimate user with canvas‑blocking extension | Blank or noisy canvas | Cross‑check prevents false positive; other signals confirm human |
These scenarios are illustrative; the actual detection outcome always depends on the full 106‑signal correlation.
Limitations and When the Advice Does Not Apply
- Canvas‑blocking extensions: Privacy‑focused users intentionally spoof or block canvas reads. The signal alone cannot distinguish them from bots.
- VDI and remote desktop: Virtualized GPUs may render fonts identically to headless environments.
- Browser updates: A new Chrome version can change the default fallback font or rasterizer, shifting the reference hash until the detection library is updated.
- Mobile diversity: Hundreds of Android OEM skins each have slightly different font stacks; maintaining a reference set is ongoing work.
- Not a standalone blocker: The check is designed for evidence collection, not real‑time blocking. Blocking on this signal alone would increase false positives.
Key Facts
| Fact | Detail | Source |
|---|---|---|
| Signal type | Canvas fingerprinting with nonexistent font | S1 |
| Position in stack | One of 106 independent checks | S1 |
| Primary purpose | Detect mismatch between claimed and actual rendering pipeline | S1 |
| Verdict policy | Single anomaly is not a bot verdict; kept as evidence | S1 |
| Cross‑check vectors | Browser, network, device, behavior data | S1 |
| Final classification | AI prediction model weighing complete pattern | S1 |
| Reported accuracy | 99% across full signal set | S1 |
| Common false‑positive sources | Privacy tools, travel, corporate networks, unusual devices | S1 |
Frequently Asked Questions
Does empty font canvas detection work on all browsers?
It works on any browser that supports the Canvas 2D API and font fallback, which includes all modern desktop and mobile browsers. The reference hashes must be maintained per browser version and OS.
Can a sophisticated bot fake the correct canvas hash?
Yes. A bot running in a real browser environment (e.g., Puppeteer driving full Chrome with a genuine profile) will produce the same hash as a human. That is why BotRefund treats the signal as evidence, not a verdict, and correlates it with behavioral signals like mouse tremor and click cadence.
Will this check break if the user has a font‑blocking extension?
The canvas will return a blank or noisy image, causing a mismatch. The correlation engine expects this and looks for confirming human signals (natural mouse movement, realistic session duration) before scoring the visit as a bot.
How often does the reference hash need updating?
Whenever a major browser release changes its default font stack or rasterization backend (e.g., Chrome switching from Skia to DirectWrite on Windows). BotRefund maintains this as part of its detection library updates.
Is empty font canvas detection the same as canvas fingerprinting for tracking?
No. Traditional canvas fingerprinting draws complex shapes, emoji, or gradients to create a stable, high‑entropy identifier for tracking. Empty font canvas detection draws a single string with a missing font to test rendering consistency — a binary signal, not a persistent ID.
What happens after a bot is detected?
BotRefund captures video proof of the bot click, compiles a report, and submits a refund claim to Google Ads or Meta on the advertiser's behalf. The homepage states that 83% of customers successfully recover spend, with refunds possible back to 2017.
How BotRefund Can Help
BotRefund adds the empty font canvas check alongside 105 other independent signals — hardware and GPU fingerprinting, suspicious port analysis, behavioral cadence, and more — into a single AI model that classifies each visit. The system installs in about one minute with no credit card required, runs a free audit, and produces the evidence needed to file refund claims with Google and Meta. Because the model relies on corroboration across vectors, it avoids the false positives that single‑signal blockers create.
Limitations to know: the canvas signal alone cannot distinguish a privacy‑conscious human from a sophisticated bot; the correlation engine requires sufficient traffic volume to build reliable baselines; and refund success depends on ad‑platform policy, not solely on detection accuracy.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
How BotRefund can help
BotRefund combines the empty font canvas check with 105 other independent signals — hardware fingerprinting, GPU fingerprinting, suspicious port analysis, and behavioral vectors like mouse tremor and click cadence — into a single AI model that classifies each visit. The script installs in about one minute, requires no credit card, and starts a free audit immediately. When the model flags bot traffic, BotRefund captures video proof, compiles a report, and submits refund claims to Google Ads and Meta on your behalf. The company reports an 83% refund approval rate across clients and can recover spend dating back to 2017.
Keep in mind: the canvas signal alone cannot separate a privacy‑conscious human from a sophisticated bot; the correlation engine needs enough traffic to build reliable baselines; and refund outcomes ultimately depend on ad‑platform policy, not just detection accuracy.