
Learn how to track QR code scans apart from clicks, then use location, device, and UTM data to improve client campaigns.
Most scan dashboards sell a headcount. They don't have one. When you track QR code scans, you are logging a redirect request, not naming a person, proving they finished the file, or proving they wanted the offer. Treat a low number as a failed handoff until print, access, and privacy checks say otherwise.
Put the client file on one stable browser link, point a code at that link, tag the placement, and compare the redirect log with later opens and a conversion you defined before anyone scanned.
A defensible setup keeps four records apart: the scan, the ordinary click, the destination session, and the conversion. The QR Code Handbook describes that split clearly. Log the redirect, then forward the browser, then reconcile those logs with sessions and conversions. A redirect can be counted when the page fails, cookies are refused, consent is withheld, or tags are blocked.
utm_source=meeting_card, utm_medium=qr, and utm_content=rate_card name the piece and the creative. The handbook's examples, including utm_source=poster, utm_medium=qr, and utm_content=window_a, work the same way. Those values show up in your own site's analytics, not in the LinkShip dashboard, so for a PDF give each placement its own project and name it, for example meeting-card. Leave out names, email addresses, and customer IDs. Those strings land in browser history, server logs, screenshots, and analytics tools.Practical rule: If you can't name the placement from the project name or the UTM values, the code isn't ready to print.
People mix these numbers because the phone makes them feel like one action. They aren't. The server can record the redirect and still lose the visit when the file is slow, the password stops the viewer, or the browser blocks the tag. Reporting at least raw scans, estimated repeat scans, destination sessions, and conversions keeps that gap visible. Deduplicate cautiously. A second request that looks like the same browser is not proof a named client came back.
Say a composer hands out a printed one-sheet. One code opens a demo page on the composer's own site. A second opens a PDF rate card, a separate project with its own code. If you used one code for both, a producer who only wanted the fee sheet would look like interest in the track. Teams that want broader campaign ideas can review how others boost engagement with QR codes, then come back to this split before they add more creatives.
"Unique scanners" is an estimate, not a person count. Server-side logs can't reliably identify distinct people on a first visit. Shared phones, private browsing, changing addresses, VPNs, and accidental camera opens all move the total. Automated requests can too.
| Metric | What it counts | What it does not prove |
|---|---|---|
| Raw scans | Redirect requests logged when the code is scanned | Unique people or finished reading or listening |
| Estimated repeat scans | Later requests that resemble the same browser or device pattern | A named client coming back |
| Link clicks | Opens of the URL from email, a website, or chat | Performance of the printed or displayed code |
| Destination sessions | Browsers that actually loaded the file or page | Everyone who pointed a camera at the code |
| Conversions | A defined follow-up such as a download or a reply you record separately | An outcome stored inside every scan row |
Keep the log small on purpose. Coarsen geography, set a retention limit, restrict who can open the report, and give clear notice where addresses, device identifiers, or location are processed. A clean table beats a vanity total you can't defend in a client file.
Typical QR analytics describe patterns, not identities. A privacy study of QR-code services found that these reports commonly include scan location at city or country level, operating system, browser, device information, and total scans. The same study noted a theoretical risk of surreptitious tracking, and it found no evidence that QR codes create a uniquely large privacy threat compared with other ways of sharing links. Those fields still don't establish who scanned.

Picture a sales team with a PDF spec sheet. The lobby poster prints the code of its own project, named lobby-poster. Evening requests cluster on phones in one reported area. The same file, emailed, shows desktop opens during work hours and a referral that isn't the code. The useful comparison is channel mix. A combined total would hide a poster that only works after hours and an email that only works at a desk.
Only read fields the dashboard shows for that link and plan. If a report stops at country, don't narrate a city. If it has no browser split, don't invent one. Our own reports cover visits and downloads, with countries, devices, and referral sources on paid plans, and they still don't name every visitor.
| Field | Question it answers | Decision it supports |
|---|---|---|
| Total scans | Did the printed or displayed code get requested? | Compare placements only after the code was tested |
| Location | Where did requests cluster, at the geography the report actually shows? | Shift stock or staff toward the active site |
| Device and browser | Are phones, tablets, or desktops doing the scanning? | Simplify the landing file for the dominant screen |
| Operating system | Do iOS and Android both reach the file? | Retest a platform that scans but rarely loads |
| UTM source and content | Which poster, card, or creative sent the scan? | Keep, rewrite, or retire that placement |
| Referral or click source | Did traffic come from the code or from a pasted link? | Judge print separately from email and social |
A spike right after an event can be staff scanning the same poster. A VPN or a shared tablet can clump many people into one location or one device pattern. Cookie loss makes "unique visitors" even softer, which is why cookie loss and unique visitor tracking is worth reading before you brief a client on reach. For a fuller read on what a campaign report should separate, see our notes on QR code analytics.
This short walkthrough shows how a scan record is built from location, device, and campaign tags, which is the same split you should demand from a live dashboard.
Before you reprint, compare scans, destination sessions, and the action you defined for each utm_content value. Keep the creative whose requests become visits. Don't promote a poster that only produces redirects.
A code can scan on screen and fail on paper. Treat print as an end-to-end test, not a resolution setting in the generator. For a design that places a code over an image, see these transparent-background QR code design tips, then test the printed result.
Leave a quiet zone of at least four modules on every side. Keep logos, borders, text, and patterns out of this margin, and check that it remains blank after resizing. As a starting point, plan about 1 unit of code width for every 10 units of scanning distance, then test the actual print. Camera, lighting, lens, and ink affect the result. High contrast on matte stock helps; glossy surfaces can reflect glare into the lens.
Error correction describes how much damage a code can tolerate under ideal conditions. Level L is about 7%, M about 15%, Q about 25%, and H about 30%. Blur, glare, skew, low contrast, or a missed autofocus can still prevent a scan. L suits a clean, protected print; M is a general balance; Q or H may suit wear, outdoor exposure, or partial coverage. A logo uses code space, so test the branded version rather than relying on a higher correction level.

Export the final SVG or PNG and print it at production size. Scan with the native camera on newer and older iOS and Android phones. Try indoor, outdoor, and dim lighting, as well as near, far, and angled views. Record successful scans, time to open, and failure reasons.
Then check the destination: confirm the redirect works, password or expiry settings behave as intended, UTMs remain attached, and scan records are distinguishable from link clicks. A scan is a logged redirect, not proof of a unique person or completed file view. Check these basics before approving a large print run.
| Check | Target | If it fails |
|---|---|---|
| Quiet zone | Blank margin of at least four modules on all four sides | The scanner may not separate the code from surrounding design |
| Size and distance | About 1 unit of width per 10 units of distance, followed by a real test | The code may be too small or too far away |
| Contrast and stock | High contrast on matte stock | Glare or weak contrast can hide modules |
| Error correction | L about 7%, M 15%, Q 25%, H 30% under ideal conditions | Damage, logos, or blur can still prevent a scan |
| Live device test | iOS and Android, newer and older phones, varied light, distance, and angles | A screen preview does not reveal print failures |
| Tracking preflight | Redirect works, access settings behave, UTMs remain, and scans are separate from clicks | You may not be able to compare the printed placement accurately |
Treat generator output as unproven until the production piece is scanned.
A low scan count does not automatically mean the offer missed. A scan is a logged redirect, not a person's intent: it records a digital handoff, while access problems and privacy concerns can keep people from completing it.
Check the handoff before changing the creative. First, review the password, expiry, or view limit. A redirect can be logged even if one of these settings then blocks access. Fix the setting and scan again. Next, check the connection: a visitor in a low-signal room may start the redirect but fail to open the file. A short printed URL gives them another route.
The file itself can also be the obstacle. Open it on an older phone and check whether the text is readable. In a Malaysian primary-care study of 323 patients, 67.0% were familiar with QR codes, but familiarity was substantially less likely among people aged 65 and older. The study identified age, limited smartphone ability, and lower education as risk factors, as reported in the paper on PubMed Central. If those barriers may apply to your audience, offer a printed URL or have staff share the link directly.
| Cause | Check | Fix |
|---|---|---|
| Access rule blocks the page | Review the password, expiry, or view limit | Correct the rule, then scan again |
| Slow or no connection | Test the code in a low-signal room | Add a short visible URL beside the code |
| Hard-to-read landing file | Open the link on an older phone | Use a readable file with larger type |
| Code not noticed or unfamiliar | Ask staff what visitors did | Add a printed URL or staff handoff |
| Repeat staff scans or accidental opens | Review scan times and devices | Exclude internal tests from the review |
| Print failure | Scan the printed piece at real size | Run the print preflight and retest |
Separate likely interest from noise. Staff testing a poster or accidental camera opens can raise the scan count without showing audience demand. Protect privacy while reviewing the log: keep location reporting coarse, avoid putting identifiers in query strings, and set a retention limit. A scan log is not proof of anonymous behavior; destination URLs and cookies may still contribute to a behavioral trail.
A scan count measures successful digital handoffs, not total interest or unmet demand.
Once the handoff works, compare the remaining activity by placement, device, time, and repeat behavior. Change the offer only if people can reach the file and visits still do not follow.
Pick one client asset, publish it as a browser link, attach one QR placement, and compare scans with clicks after it has been handed out. If people are meant to listen, start with MP3 to Link. Use PDF to Link for a menu, proposal, or rate card. Use the image tool only for a picture. Build the code in the QR Code Generator, with one UTM content value for that piece.
Before you promise a client saved QR designs, downloads, or a detailed report, read the current plan on the product pages. Saving designs and downloading codes are paid actions on Tiny, Solo, Pro, and Pro Max. Basic view and download counts are the baseline. Detailed analytics are on those paid plans, and what you see depends on the content type and how analytics are set up. Don't promise completed listens, a named recipient, per-page dwell, city-level pins, or an export unless that report is available on the link you're sharing. Password protection, where the plan includes it, controls access to the link. It doesn't pull back a copy someone already saved.
Run one placement for a week. Keep the creative whose scans become destination visits. Retire a placement that produces redirects and nothing after them. That comparison is the whole point of separating the code from email and chat, which is the same discipline behind offline marketing analytics. One honest week beats a blended total you can't explain in the client file.
LinkShip turns a client PDF into a browser link with a QR code of its own, and keeps scans apart from ordinary clicks. Publish one project per placement, print its code, and read scans against the visits you can see. Start with PDF to Link, or point a code at your own page in the QR Code Generator.
Join the community
Subscribe to our newsletter for the latest news and updates