Photo by Andrey Matveev on Pexels
A QR code is a picture of a URL. When someone scans it, a phone decodes the pattern, reads the address, and opens it in a browser. Everything you can learn about that scan depends on what the address does next. If the code points straight at a final page, the scan leaves no trail you can collect. If it points at a short link that redirects, the request can be recorded before the visitor lands. That difference is the foundation of qr code scan tracking, and it shapes what your numbers can and cannot tell you.
How QR code scan tracking works in practice
QR code tracking is the process of capturing and analysing engagement data generated when people scan a code. The definition sounds abstract until you follow the request. A camera app decodes the pattern, finds a URL, and asks a server for it. The server that answers that request is the only point where a scan becomes a data point. Nothing else in the chain is guaranteed to report back to you.
This is why only dynamic QR codes are trackable. A static code carries the destination inside the pattern itself, so the request goes directly to the page you chose and no intermediary counts it. A dynamic code carries a short redirect address instead. That address belongs to a service that logs the request, then forwards the visitor to the real destination. Because the redirect sits between the scan and the page, you can record the event, and you can change where the code points later without reprinting the artwork.
URL shorteners provide exactly this layer. You paste a long destination, get back a short link, and turn that short link into the QR image. The code encodes the short address. The scanner hits the short address. The shortener records the click and forwards the visitor. Every scan passes through the same logging point, which is why scan tracking and link click tracking are usually the same job described from two angles.
What a scan record can contain
Analytics for QR campaigns typically cover the number of scans, scan locations, device types, and engagement rates. A link shortener exposes a similar set of signals, gathered from the request itself rather than from the person holding the phone. In URLBit, each recorded click can contribute the following.
| Signal | What it reflects | What to keep in mind |
|---|---|---|
| Total clicks | Every recorded click event on the link | Counts events, not people |
| Daily counts | How clicks are distributed across days | Useful for spotting a poster going up or a campaign ending |
| Device and browser | The hardware and software behind the request | Shows how scans split between phones, tablets, and desktops |
| Referrer | The page or source that sent the request | Offline scans often arrive with no referrer at all |
| Country | A location estimate derived from the request | Frequently shows as Unknown when the lookup cannot resolve |
URLBit keeps 7, 30, and 90 day views plus an all time view, and it lets you export the raw click records as a CSV. Export matters more than it first appears. A chart answers quick questions, but a spreadsheet lets you sort by timestamp, group by device, and compare one placement against another without trusting a summary line.

Photo by Leeloo The First on Pexels
The destination link decides the quality of your data
Because the short link is the thing being measured, the address you shorten determines how much context each scan carries. One practical approach is to build the trackable link in a UTM builder first, then use that full tagged link as the destination behind the QR code. The campaign parameters travel with the visitor to your landing page, while the short link records the click on your side. You end up with measurements in two places instead of one.
UTM tags do specific work for print and signage. A referrer header tells you which web page sent a visitor, and that header is usually missing when someone scans a code on a poster, a menu, or a product box. Campaign parameters fill that gap by naming the source in the URL itself. A code on a shop window and a code on a flyer can point to the same page while carrying different source names, which keeps the two placements separable in your reports.
Setting up a tracked QR code step by step
- Choose the final destination page and confirm it works on a phone.
- Add UTM parameters to that address if you want campaign context in your landing page analytics.
- Shorten the full tagged link and give it a clear title so you can recognise it later.
- Scan the code yourself from at least two devices before you print anything.
- Download the QR image as a PNG or SVG, depending on whether you need a raster file or a scalable one.
- Place the code with enough quiet space around it and a short line of text explaining what the scan leads to.
- Review the 7 day view during the first week, then widen to 30 and 90 days as data accumulates.
- Export the CSV when you need to compare placements or report results outside the dashboard.
Link management matters here too. If a destination changes, edit the destination behind the existing short link rather than creating a new code, and the printed artwork keeps working. If a campaign pauses, pause the link instead of deleting it, then restore it when the campaign resumes. Renaming a link has no effect on scans, so titles can stay descriptive as your collection grows.
Reading the numbers without overclaiming
Click analytics record click events, not unique visitors. That single sentence prevents most reporting errors. One person scanning a code twice produces two clicks. A refresh produces another. A messaging app that previews a link can produce a click nobody made with a camera. If a colleague in the same office tests the code, that test is in the total as well.
Location deserves the same caution. Country data depends on a lookup that does not always resolve, so a large Unknown bucket is normal rather than a sign that something is broken. Treat location as directional, and lean on device and browser splits when you need to know whether a code is being scanned by phones in the way you expected.
These limits do not make the data weak. They make it specific. A recorded click tells you that a redirect request happened at a particular time from a particular device. Aggregate that across a week, and you can see which placement drew attention, whether the audience arrived on mobile, and how the volume tracked against the moment you put the code up. Pair the numbers with what you already know about where the code sits, and the picture becomes useful without pretending to be a census of individuals.

Photo by Yara Solis Fuentes on Pexels
Mistakes that flatten scan data
- Encoding a final page directly instead of a short link, which leaves nothing to record.
- Printing one code for several placements, then wondering why the totals cannot be split.
- Creating a new link for each reprint when an edit to the existing destination would have been enough.
- Comparing an offline code against an email campaign without UTM parameters to separate them.
- Reporting click totals as a headcount, which inflates reach in front of anyone who checks.
Frequently Asked Questions
Can I track scans on a QR code I already printed?
Only if that code points to a short link or another redirect address you control. A static code that carries the final page inside the pattern cannot be tracked after the fact, because nothing stands between the scan and the page. Reprinting with a short link as the encoded address is the usual fix.
Do QR code scans and clicks count the same thing?
In most link-based setups they do. A scan produces a request to the short address, and that request is recorded as a click. The two terms describe the same event from different sides, which is why a scan total and a click total on the same link should match.
Why does my scan data show an unknown country?
Country values come from a lookup on the request, and that lookup does not always resolve, so a portion of records land in an Unknown bucket. This is expected behaviour rather than a fault. Device, browser, timestamp, and referrer fields usually remain available for the same clicks.
Can I change where a printed QR code sends people?
Yes, if the code encodes a short link. Edit the destination behind that link and the printed code follows the new address on the next scan, with no reprint needed. This is the main practical reason to route QR codes through a shortener in the first place.
What should I check first in the analytics?
Start with the daily click count against the date you placed the code, then look at the device split to confirm people are arriving on phones. After that, check the referrer field and any UTM tags. Export the CSV if you need to compare two placements in detail.
