QR codes that tell you who scanned them
Most QR generators hand you a static image and forget you exist. Here's how to make one you can re-point after printing, with scan analytics attached — plus the print rules that stop it failing in the wild.
A QR code is a picture of a URL. That's the whole idea, and it's also the whole problem: once the URL is encoded into the pattern and the pattern is printed on five thousand flyers, it is permanent. Wrong link? Reprint. Campaign moved to a new landing page? Reprint. Want to know how many people scanned it? You can't — the code is a picture, and pictures don't report back.
Both problems have the same fix: don't encode the destination. Encode a link you control, and let the link do the work.
Static versus dynamic, briefly
Static QR encodes the final URL directly. Free everywhere, works forever, tells you nothing, can never be changed.
Dynamic QR encodes a short link that redirects. The pattern never changes; where it points can. And because every scan is a request to that link, every scan is measurable.
Everything below is about the second kind.
Making one
The free QR generator needs no account. Paste a URL, style it, download the PNG.
You get:
- Six dot styles — square, circle, rounded, gapped, vertical bars, horizontal bars.
- Custom foreground and background colours, with presets that are already contrast-safe.
- A logo in the middle — ours by default, or upload your own.
- A live preview, so you can see what you're about to commit to print.
For a QR you can re-point later and get analytics from, generate it against a
link in your dashboard instead. Every link has a QR code — the pattern encodes
slim.to/<slug> (or your own domain), so changing the link's destination
changes where the code goes, with no reprint.
From the API, that's:
curl -s https://slim.to/api/v1/links/<link_id>/qr \
-H "X-API-Key: $SLIMTO_API_KEY" -o qr.png
What a scan tells you
A scan is an open, so it carries everything a normal link open does: time, country and city, device and browser, and referrer. Practically that means you can answer:
- Did the poster work? Scans over time, against the day you put it up.
- Which venue pulled? Different link per location, same design — the scan counts tell you where to spend next time.
- Phone or tablet? Device breakdown, which tells you what the landing page needs to be good at.
- Did they do anything after scanning? If the code points at a document, you get the full read profile, not just the scan.
One caveat worth knowing: some camera apps and scanning tools pre-fetch a URL to show a preview before the user taps through. Those show up as opens with no dwell time. As always, time on page is the honest metric.
Printing rules that stop it failing
Most QR failures in the wild are print problems, not encoding problems.
- Contrast, and the right way round. Dark pattern on light background. Inverted codes — light on dark — fail on a meaningful number of scanners.
- Leave the quiet zone. The empty margin around the pattern is functionally part of the code. Don't crop it, don't run text into it, don't place the code flush against a coloured block.
- Size for distance. A rough working rule: the code's width should be about a tenth of the intended scanning distance. A poster read from three metres wants roughly 30 cm.
- Don't scale the logo up. Error correction covers a small centre overlay. A big logo eats real data modules and the code stops working.
- Test the actual print. Not the PNG on your screen — the printed piece, in the light it will live in, with two different phones. Matte survives; high gloss under a spotlight can wash out entirely.
- Say what it is. "Scan for the menu" measurably outperforms a bare code. People need a reason before they raise a phone.
Where to go next
- Free QR code generator — no account needed
- Put your own domain on every link you share — so the code resolves through your brand
- How to know when someone opens your PDF
Keep reading
-
How to know when someone opens your PDF
Email attachments tell you nothing. Here's how to send a PDF as a tracked link...
-
Did they actually read your proposal?
An open is not a read. Here's what page-level analytics measure, how to tell a genuine...
-
You sent the proposal Tuesday. Here's what you know by Thursday.
A walkthrough of one job — sending a proposal as a tracked link, reading what comes...