AnalyticsDynamic QR codesPrint marketing

How to Track QR Code Scans (and What the Numbers Mean)

Tracking scans is the easy part. Structuring your codes so the numbers answer a real question — and knowing what a scan does not prove — is where most campaigns go wrong.

The Qrelux Team5 min read

Print has always had a measurement problem. You know what you spent and roughly how many people walked past, and everything between those two numbers is inference. QR codes are the first practical fix — but only if you set them up so the data answers something.

Plenty of people add a tracked code, watch a single number go up, and learn nothing. Here is how to avoid that.

How scan tracking actually works

A static QR code has your destination encoded directly in the pattern. The phone goes straight there. Nothing sits in the middle, so there is nothing to count — this is not a limitation of any particular tool, it is what static means.

A dynamic code encodes a short redirect link instead. The phone requests that link, a server records the request and forwards the visitor on. That recorded request is the scan. Everything you can measure follows from it, and everything you cannot measure is a consequence of it being just one web request.

If you are still deciding which to use, static vs dynamic QR codes covers the trade-offs in full.

What you can measure

SignalHow reliableWhat it is good for
Total scansExactComparing placements against each other
Time and dateExact, to the secondFinding when your audience actually engages
City / regionGood at city levelWhich areas responded to a distribution
Device and OSGoodChecking the landing page suits the audience
Repeat vs first scanApproximateSpotting a code being re-scanned by the same few people

The time dimension is the one people underuse. A flyer drop produces a sharp spike and a fast decay; a table tent produces a flat daily rhythm; an event banner produces a curve that maps onto the programme. The shape of the curve often tells you more than the total.

What scan data cannot tell you

Being precise about this is worth more than any dashboard, because most disappointment with QR tracking comes from expecting things it structurally cannot do.

  • Who scanned. A scan is an anonymous request. There is no name, number or email attached, and any tool claiming otherwise is describing something else.
  • Exact location. Location is derived from the network address. City level is usually right; street level is not, and mobile networks can place a scan in a different city entirely.
  • Whether the scan became a customer. The redirect sees the request and hands off. What happens on the page is the page's job to measure.
  • How many unique people. One person scanning three times looks similar to three people scanning once. Treat unique counts as an estimate.
  • Where the reader physically was. A code photographed in a magazine at home and scanned on the train produces one scan, at the wrong place and time.

Use one code per placement, not one per campaign

This is the decision that determines whether your data is useful, and it is made before anything is printed.

A single code across every poster, flyer and insert gives you one number. You will know the campaign got 800 scans and have no idea which half of the spend produced them. Every question you want to answer later has to be a separate code today.

Split by whatever variable you would actually change next time:

  • Placement — window, counter, table, till receipt.
  • Location — each branch, each neighbourhood, each city.
  • Medium — flyer, poster, packaging insert, magazine ad.
  • Creative — design A against design B, if you are testing wording or layout.
  • Print run — so a reprint can be told apart from the original drop.

The cost of an extra code is nothing. The cost of not having one is a whole campaign you cannot explain.

Name codes so they still make sense in six months

Twenty codes called "Poster", "Poster 2" and "Poster final" are worse than no tracking, because you will not trust them enough to act on them. Adopt a consistent pattern from the start — something like medium-location-campaign-date:

  • flyer-ikeja-spring-menu-apr
  • window-lekki-spring-menu-apr
  • tabletent-all-branches-spring-menu-apr

It looks fussy for three codes and saves you when there are sixty. Group them by campaign or client so a whole print run can be read as one number and broken apart when you need to.

Connecting scans to Google Analytics

Scan counts tell you the code worked. They do not tell you whether the visit was any good. For that you need the scan traffic identifiable inside your own analytics.

The problem: a camera scan arrives with no referrer, so by default GA4 files it as direct — mixed in with people typing your address. Your print campaign disappears into the least useful bucket in the report.

The fix is UTM parameters on the destination, for example:

  • utm_source=qr
  • utm_medium=print
  • utm_campaign=spring-menu
  • utm_content=flyer-ikeja

Put them on the redirect destination, not in the encoded code. Encoding a long tracked URL directly makes the printed pattern dense and hard to scan — one of the causes covered in why QR codes fail. With a dynamic code, the pattern stays a short link and the parameters are added when the visitor is forwarded. You get a simple code and full attribution.

Once that is in place you can see bounce rate, time on page and conversions for scan traffic specifically, and finally answer whether the poster produced customers or just curiosity.

Reading the numbers without fooling yourself

Get a baseline before you judge anything

A first campaign has nothing to be compared against, so almost any number can be read as good or bad. Run one, record it, and treat it as the line everything else is measured from. The second campaign is where the data starts being useful.

Expect a decay curve

Most print scans arrive in the first two weeks and then taper. A code that is still producing scans two months later is usually in a permanent placement — a menu, a window, a piece of packaging — and should be judged over a longer window than a one-off flyer drop.

Compare rates, not totals

Five thousand flyers producing 150 scans is a 3% response. Two hundred table tents producing 90 scans is 45%. The flyers won on volume and lost badly on efficiency, and only one of those facts should influence next quarter's budget.

Watch for the boring explanations first

A code with near-zero scans is more often badly placed, too small, or above eye level than evidence that the audience is not interested. Before concluding the campaign failed, go and look at where the code actually is.

Dynamic codes on Qrelux record every scan with time, city and device, and let you group codes by campaign or client. Free for 14 days, no card.

Start a free trial

Frequently asked questions

How do I track QR code scans?

You need a dynamic QR code. It encodes a short redirect link rather than your destination, so each scan is a request a server can record before forwarding the visitor. Static codes send the phone straight to the destination with nothing in between, so there is nothing to count — no tool can add tracking to a static code after it is printed.

Can I track a QR code in Google Analytics?

Yes, but not by default. Camera scans arrive with no referrer, so GA4 records them as direct traffic. Add UTM parameters to the destination — such as utm_source=qr and utm_medium=print — and scan traffic becomes identifiable. Apply them at the redirect rather than encoding them in the code, or the printed pattern becomes needlessly dense.

Does QR code tracking identify who scanned?

No. A scan is an anonymous web request. Tracking can record when it happened, roughly where by city, and what kind of device was used, but there is no name, phone number or email attached to a scan.

How accurate is QR code location tracking?

Reliable at city level and not below it. Location is inferred from the network address, so mobile networks can place a scan in a nearby city, and VPNs can place it in another country. It is good for comparing which neighbourhoods or branches responded, not for pinpointing individuals.

How many QR codes should one campaign use?

One per question you want answered. If you want to know whether the window or the counter performed better, those need separate codes. A single code across every placement gives you one number and no way to attribute it. Extra codes cost nothing; missing ones cost you the whole analysis.

Stop guessing what your printed marketing does

Dynamic QR codes let you change the destination after printing and show you every scan—when, where, and on what device.

Start a 14-day free trial

No credit card required

Keep reading