How do you track QR code scans?

You can track a QR code's scans only if the code points through a redirect you control: a dynamic (editable) code logs every scan as it passes through, giving you counts, times, and rough locations. A static code encodes the destination directly, so scans never touch a server you can see and can't be tracked.

Scan tracking is a property of where the code points, not of the QR image. A dynamic code points at a short redirect URL; each scan hits that redirect before landing on your page, and that hop is what gets counted. A static code bakes the final URL straight into the pattern, so there is no hop and nothing to count. The full difference is covered in static vs dynamic QR codes.

That also means you can't retrofit tracking onto a static code you've already printed. If you're not sure which kind a code is, paste it into the QR code analytics checker; it decodes the code and tells you whether it routes through a trackable redirect. Every TangoQR code is dynamic, so scan analytics (count, time, city, device) come built in, and the destination stays editable without reprinting.

Step by step

  1. Make the code dynamic

    Create the code with a service that routes through a redirect you control, such as TangoQR; that redirect is what makes each scan countable.

  2. Print and share it

    Use the code anywhere: packaging, posters, menus, listings. Tracking works the same everywhere because it happens at the redirect, not the image.

  3. Read the scan analytics

    Open the code's dashboard to see how many times it was scanned, when, from roughly where, and on what device.

  4. Already printed a code?

    Check it with the QR code analytics checker. If it's static, the honest answer is that its scans can't be tracked; print a dynamic replacement when you next reprint.

See also

Never reprint a code again

A TangoQR code is an editable redirect: change where it points anytime, no reprint. Free to start.

Make your first code, free

← All answers