Docs · How to

Make a static code and add page analytics

A static code carries its content directly, so it costs nothing to make and nothing to scan. What you can add is analytics on the page it opens · cookie-free, no consent banner. There is one rule that decides whether any of it works: turn the analytics on before you print, because switching it on changes the symbol.

Turn analytics on before you print, not after

Enabling page analytics adds a tag to the address the code encodes. That means the printed pattern changes. A code you printed last week and enabled analytics on today is carrying the old address, and it will never report a single scan · not because anything is broken, but because the thing in the world does not have the tag on it.

The app tells you this once it has happened: "Enabling analytics added a tag to the code. Re-download and reprint if it is already in the wild, so scans are attributed." Reprinting is the expensive half, so decide about analytics while the code is still on screen.

The safe order is: design, save, enable analytics, then download and print. If your code is already printed and cannot be reprinted, analytics is not your fix · rescue the printed code instead.

First, which screen is which

These two get mixed up constantly, and they do different jobs:

  • Static QR studio · where you make one. Type what the code should carry, design it, export it. Nothing is saved unless you ask.
  • Static codes · the library of the ones you saved. This is the only one in the sidebar. Its New code button takes you back to the studio, because there is deliberately no way to mint a saved code without designing it first.

Make the code and save it

  1. Open the Static QR studio and enter what the code should carry. For analytics it has to be a web address · more on that below.
  2. Design it. Colours, shape and a logo are all here, and the studio checks contrast as you go so you do not export something that will not scan.
  3. Press Save to my codes. The helper text beside it says what saving is for: "Keep this code to reprint later and add analytics." You land in the library with the new code selected.

Making, designing, exporting and saving a static code are all free, with no watermark and no credits spent. Analytics is the only billed step, and it is optional.

Add page analytics

  1. In Static codes, click the code. A panel opens with its preview and settings.
  2. Find Page analytics and turn on Enable. It costs 200 credits, once, and the panel states that before you touch the switch, along with the useful half: every hit after that is free.
  3. A snippet appears under Paste this into your page. Copy it and put it in the page the code opens · a page you control. Without this step nothing is recorded, because the beacon is what reports.
  4. Download the code image again, now that its address carries the tag. This is the file to send to print.
  5. Scan your own printed proof once and check the panel shows the hit. That is the whole loop confirmed before a print run.

What this does and does not measure

Worth being exact, because the name invites a wrong assumption. A static code's scan never reaches us · the phone reads the address off the paper and goes straight there. So this is not scan tracking. It is analytics on the destination page, triggered when that page loads.

  • What you get · page views over time, rough country and device breakdown, and referrers, plus the share of visits that arrived carrying the code's tag.
  • What you do not get · a true scan count. Someone who scans and closes the page before it loads is not counted, and someone who reaches the same page from a link in an email is counted but not attributed to the code.
  • How exact it is · the app puts it plainly: counts are cookie-free estimates, "a trend line, not a ledger". Blockers and shared networks both move the number.
  • No consent banner · the snippet sets no cookie and writes nothing to the browser. It fires one beacon and fails silently if anything goes wrong, so it can never delay or break your page.

If you need real scan counts, the ability to change the destination later, or routing by country or device, you want a dynamic code instead · static vs dynamic is the honest comparison of the two.

Things that catch people

  • Web addresses only · analytics needs somewhere a snippet can live. Try it on a WiFi code or a contact card and you get told why: "Analytics needs a web address (http or https) that you control. This code encodes something else."
  • A page you control · you have to be able to add a snippet to it. A social profile or a marketplace listing you cannot edit will not work.
  • Deleting a saved code does not kill the printed one · the confirmation is clear: "Codes already printed keep working · they just stop reporting." A static code in the world is independent of us, which is the whole point of static.
  • Charged once per code · 200 credits, once, and every hit after that is free. There is no per-visit charge and no monthly anything.
  • A rescued code is left alone on purpose · if a code is already printed and you have claimed it as a rescue, we deliberately do not tag its payload, because its address is already in the world and a tagged download would not match it. Those scans appear in the dynamic code's own analytics instead, in more detail than a beacon gives.