QRCodeForge

How to track QR code scans

A QR code cannot report anything on its own. It is ink. When a phone reads it, no message goes back to whoever printed it, which is also why static codes are so private. To know how many people scanned, something on the way from the code to the destination has to count them, and that something is a redirect.

How tracking actually works

A tracked code does not contain your destination. It contains a short address on the tracking service, for example qrcodeforge.com/r/menu7k. When a phone scans it:

  1. The phone opens the short address.
  2. The service records that a visit happened, and forwards the phone to your real destination.
  3. The phone lands where you wanted, a fraction of a second later.

This is what a dynamic code is. The counting and the ability to change the destination later are the same mechanism seen from two sides: because the code points at the service rather than at you, the service can both count and redirect.

The consequence is that tracking is impossible to add to a code that is already printed as a static code. If the poster is up and the code holds your web address directly, nothing can count it except analytics on the destination page itself. Decide before printing.

What you can learn

A redirect sees an ordinary web request, so it can record what any website sees:

That last point is the useful one. Make one code per placement, not one code for the campaign, and the redirect tells you which placement earns its space. A café with a code on each table learns which tables order from the menu online. A brand with a code on each of three product sizes learns which size gets scanned. The data is only as interesting as the way you split the codes.

What you cannot learn

Honest limits, because tracking is often oversold:

Setting it up on QRCodeForge

  1. Make the code as usual and switch it to dynamic before downloading. You get the short address and a management link. Keep the management link; it is your key to the code.
  2. Print the code. Its content never changes again, whatever you do to the destination.
  3. Open the management page to see scans as they arrive, change where the code points, pause it, or schedule a switch, for example sending scans to a different page after a date or to a different language version by the visitor’s country.

Each code is free, and the count is kept as long as the code exists. For a campaign with many placements, bulk generation from a spreadsheet makes a distinct code per row, each tracked separately.

Reading the numbers

Some patterns that come up repeatedly:

Privacy, briefly

Tracking a code means running a redirect that logs visits. That is a modest amount of data, and it is the same data the destination website was going to receive anyway. Do not add more than you need, say plainly on the destination that the visit came through a tracked code if your audience would care, and do not use tracking for anything you would be uncomfortable printing beside the code. Counting how many people scanned a poster is fine. Working out which individual did is neither possible from a redirect nor a good idea to attempt.

Make a free QR code with QRCodeForge — every format free, no signup, and every code checked before you download it.