MakeQR

QR Code Tracking

Know which print works, without watching who scans

  • Free, and no account to create
  • Never expires, unlimited scans
  • Checked to scan before you print it

Change where it points after printing, and see how often it is scanned. First two free and permanent.

What a dynamic code gives you

  • Change where it points any time, without reprinting anything
  • See how often it has been scanned, and when the last scan was
  • Unlimited scans on every plan, including the free one
  • If you ever stop paying, codes keep working for 30 days with three warnings first
Create a free account2 codes free. Paid plans from $7/month.

Scan to test

Y
yoursite.com
Create this dynamic code

Free for your first 2 codes. We only need an email, and nothing is charged.

To track QR code scans, the code has to be dynamic: it holds a short MakeQR link, and each scan passes through it before reaching your page. That is where the count comes from. You see the scan count and last scan, and on paid plans scans per day, unique scanners per day, countries and devices for the last 30 days. The IP address is used only to find the country and is never stored.

QR code tracking answers a simple question: did anyone scan the thing you printed, and how often. It lets you compare a poster with a flyer, one shop window with another, or this month's mailing with last month's, using a number instead of a guess.

Tracking needs a trackable QR code, which means a dynamic one. The printed pattern holds a short link, each scan passes through it, and the count goes up before the phone is forwarded. MakeQR records when each scan happened and what kind of phone made it, and deliberately nothing about who the person is.

Setting up a tracked code

  1. Sign in and stay in dynamic mode

    Tracking only exists on dynamic codes, so the generator on this page starts in dynamic mode. You need a free account with a verified email.

  2. Make one code per placement

    To compare the window sign with the flyer, each needs its own code. One code on both gives you one number for both.

  3. Name each code after where it goes

    A name like Flyer, spring, door-to-door keeps the count meaningful later. Folders, from Starter, help once you have many.

  4. Check the numbers once it is live

    Scan once yourself to confirm it counts, then leave it. The free plan shows the total count; Starter and up show the time and device type of each scan.

What a trackable QR code records, and what it does not

Scan statistics are deliberately narrow. They answer how much and when, not who.

  • Recorded

    That a scan happened, the time it happened, and the device type: iPhone, Android or other.

  • Not recorded

    IP addresses, location, names, phone numbers or anything else that identifies the person holding the phone.

  • Out of reach

    Whether the person bought something or filled in a form. That happens on your own site, after the redirect, and belongs in your own analytics.

How to track QR code scans on a static code, and its limits

A static code sends the phone straight to the address in the pattern, so nothing in between can count. The workaround is UTM parameters on the link, such as ?utm_source=flyer&utm_medium=print, read in your own web analytics.

That only works for web addresses, counts page loads rather than scans, and misses browsers that block analytics. The parameters also make the code denser. A dynamic code counts at the redirect, and UTM parameters on the destination reach your analytics without adding a module to the print.

Reading scan numbers without fooling yourself

A scan count counts scans, not people: the same person can scan twice, and staff testing the sign count too. Compare codes that were out over the same dates, and look at timing as well as totals. Device type shows whether people scanning a sign use iPhone or Android, which matters if the page promotes an app.

What a tracked code contains

The short link and nothing else. Your destination address, UTM parameters included, stays in your account. When a phone opens the short link, the scan is counted and the phone is sent on to your page.

Inside the code
https://makeqr.ai/r/p4Tn8c

Placing tracked codes for a fair comparison

Tracking only helps if the codes you compare had an equal chance: similar heights and sizes, the same call to action, the same dates. Size follows the usual rule of about ten times the code width for scanning distance: 25 mm on a flyer, 20 cm on a poster read from two meters.

Print it at least 20 mm (2.0 cm) wide

Tracking mistakes that make the numbers useless

  • One code across every channel

    A single code on the poster, the flyer and the website gives you one total. Make one code per placement.

  • Trying to track a WiFi or contact code

    Those payloads are read by the phone directly and cannot pass through a redirect. Track a link to the contact page on your own site instead.

  • Expecting to learn who scanned

    Scan statistics show when and on what kind of phone, never who. If you need names, ask for them on the landing page with a form.

Why tracking means dynamic

Counting needs something between the scan and your page, and a static code has nothing there, so this page opens the generator in dynamic mode.

The same redirect that counts also lets you change the destination later. Two tracked codes are free forever with an account and show the scan count; Starter at $7 a month adds per-scan time and device type for up to 10 codes.

How dynamic QR codes work

What people track with QR codes

  • A real estate agent compares scans on yard signs across four listings to see which street gets attention.
  • A café uses different codes on its window poster and its receipts to learn where loyalty sign-ups begin.
  • A band gives each tour stop its own poster code and checks the timing of scans against ticket sales.

A QR code that still works next year

Most of what goes wrong with a QR code happens after it is printed. These six things are why ours does not.

  • Checked before you print

    We decode every code you make and read it back. If a logo covers too much or a colour is too faint for paper, you find out here — not after the print run.

  • Unlimited scans, every plan

    Including the free one. A scan cap kills a printed code at the moment it starts working, which is why we do not have one.

  • We do not switch off your codes

    Two dynamic codes stay yours permanently, whatever you pay us. Cancel a paid plan and you keep them — the rest pause after 30 days, with three warnings first, and a paused code shows a neutral page, never a sales page.

  • Made on your device

    Static codes never reach our servers. Your WiFi password, your contact details and your logo stay in the browser — which is also why there is no limit.

  • Ready for the printer

    SVG for anything that gets scaled, and PNG at 1024px so the edges stay hard. Both free, no account.

  • Available in English, Norwegian Bokmål, Danish, Swedish, German, French, Dutch, Italian, Spanish, Finnish, Portuguese, and Polish

    The generator and every page speak English, Norwegian Bokmål, Danish, Swedish, German, French, Dutch, Italian, Spanish, Finnish, Portuguese, and Polish. More languages follow as each one is reviewed by a native speaker.

See what happens after you print

A dynamic code points at a short link you own. Change where it goes without reprinting anything, and see how often each code has been scanned and when the last scan was.

  • Change the destination any time, as often as you like
  • A scan count and the last scan for every code
  • No scan limit, on any plan
  • Cancel and you keep two codes permanently — the rest pause after 30 days
Start free

2 codes free. Paid from $7/month. Compare plans

MakeQRCNCafe Nord

Analytics

Aug 14 – Sep 12

7D30D90D1Y

Total scans

11,875

18%

Unique scanners

8,431

14%

Active codes

24

3

Scans per day

396

18%

Scans over time

0
200
400
600
800
Aug 14Aug 21Aug 28Sep 4Sep 11

Devices

62%

of scans came from an iPhone

  • iPhone62%
  • Android34%
  • Other4%

QR Code Tracking: questions and answers

Short answers to what people ask before they print. Anything else, write to us.

Ask us something else

Can you track a static QR code?

Not the scan itself. A static code sends the phone straight to the address inside it. You can add UTM parameters to the link and see visits in your own analytics, but only for web pages and only when the page actually loads.

What makes a QR code trackable?

A redirect. The code holds a short link, the phone opens it, and the scan is counted as the phone is forwarded to your page. The same mechanism is what lets you change the destination after printing.

What does MakeQR record about each scan?

The time, the device type (iPhone, Android or other) and the country. The IP address is used only to find the country and is never stored — no city, nothing about the person. Unique scanners are counted per day, so nobody is recognised from one day to the next. The free plan shows the total count; Starter and higher plans show scans per day, unique scanners, countries and devices.

Is QR code tracking free?

Yes, for two dynamic codes, forever, with a free account. They show the scan count. For the time and device type of each scan, and for more codes, Starter costs $7 a month.

Can I see where my code was scanned?

By country, on Starter and higher plans. MakeQR looks up the country from the IP address during the scan and stores only the country code — never the IP address, city or a point on a map. To compare places in the same country, give each place its own code and compare the counts.

Make a code that still works next year

Free static codes with no account, two permanent dynamic codes, unlimited scans on every plan, and a check that tells you it scans before you print it.

Make a QR code

No account for static codes. Nothing to cancel.