Trackable QR Codes: What You Can Measure From a Scan
Learn what a trackable QR code generator can measure, what it cannot prove, and how to set up QR campaigns so scan data is useful after launch.
A trackable QR code is useful when the question is bigger than "does this open?" You want to know whether a flyer was scanned, which store display is pulling attention, whether a table card is still being used, or whether a direct mail piece produced activity after it landed.
The important distinction is that QR tracking measures the scan event. It does not automatically measure every action after the visitor reaches your website. A good setup connects both sides: the QR platform records the physical-world scan, and your website analytics records what happened after the redirect.
Use this guide when you need to create trackable QR code campaigns that can be evaluated after launch, not just exported as a nice-looking square.
The short answer
A trackable QR code generator usually creates a dynamic QR code. The printed QR pattern points to a managed short URL first. When someone scans it, the QR platform records the scan event, then redirects the scanner to the current destination.
In DuoQR, that short URL uses the r.duoqr.com redirect domain. Each scan can be tied to the QR code, the destination version, the time of scan, coarse location from request headers, referrer origin when available, device, browser, operating system, and bot classification. The dashboard then uses scan events and daily rollups to show scan volume, trends, top codes, locations, devices, browsers, operating systems, and recent scans.
That is enough to answer practical campaign questions:
- Which physical code was scanned?
- When did scan activity happen?
- Which placement, region, or device group appears active?
- Did scan volume change after distribution, replacement, or a destination update?
- Is the code still getting scans after the campaign should have ended?
It is not enough to prove every downstream conversion by itself. For that, add clean UTM parameters to the destination URL and review the destination site analytics too.
What makes a QR code trackable
A static QR code stores the final destination directly in the pattern. If the pattern contains https://example.com/summer-offer, the phone opens that URL. There is no tracking step in the middle unless your website records the visit.
A trackable dynamic QR code stores a short redirect URL instead. The scanner opens the short URL, the QR system looks up the active destination, records the scan, and sends the scanner onward.
That redirect step is what makes scan tracking possible. It also gives you operational controls that a static QR image cannot provide:
- You can edit the destination after the code is printed.
- You can pause, expire, or recover a code without changing the printed square.
- You can separate scan analytics by physical placement.
- You can keep a destination history when the campaign changes.
- You can compare scan activity before and after an update.
If you are still deciding between static and dynamic, start with the QR code expiration guide. Tracking almost always points toward dynamic, because the scan has to pass through a system that can record it.
What you can measure from a scan
Scan analytics are best for questions about the QR code itself and the physical surface where it appears.
At the code level, you can measure total scans, scan trends by date range, scans today, and which QR codes are producing activity. This is useful when you have multiple placements: a window sign, receipt card, table tent, package insert, event badge, or direct mail piece should not all share one code if you need to compare them.
At the audience context level, you can often measure coarse country, region, or city, plus device, browser, and operating system. This can help you catch real campaign problems. If most scans come from mobile devices but the landing page is awkward on mobile, the QR code is doing its job and the destination is the bottleneck. If one city or event booth has no scans, the issue may be distribution, placement, lighting, size, or local traffic.
At the operational level, you can see recent scans and the current destination version. That matters when a dynamic QR code has been edited. If scans continue after a destination update, you can confirm that the same printed file is still being used and now routes to the current destination.
For the setup steps behind that redirect path, read how to create a dynamic QR code.
What scan tracking cannot prove
QR scan data is not the same as full campaign attribution.
A scan does not prove that the person read the page, submitted the form, booked the appointment, bought the product, downloaded the file, or became a qualified lead. It proves that a device opened the QR code's redirect URL.
Scan data can also be affected by ordinary limits:
- Some requests do not include useful referrer information.
- Location is coarse and depends on request headers, network routing, and privacy protections.
- Multiple scans from one person can look like multiple scan events.
- Camera previews, messaging apps, bots, and link checkers can create noise.
- A person may scan on one device and convert later on another.
- A shared QR landing page may receive traffic from non-QR sources too.
This does not make scan tracking weak. It just defines the boundary. Use QR analytics to measure the physical-world interaction, then use website analytics, CRM data, booking data, or sales data to measure what happened after the scan.
Set up one code per measurement job
The most common analytics mistake is using one QR code everywhere.
If the same trackable code appears on a poster, table card, flyer, email screenshot, and product insert, the dashboard can tell you that the code was scanned. It cannot tell you which surface caused the scan.
Create separate QR codes when the placement, audience, or decision will be evaluated separately:
front-window-spring-menutable-tent-spring-menureceipt-feedback-maydirect-mail-demo-offerexpo-booth-pricing-cardbox-insert-setup-guide
Each code can point to the same destination if the user experience should match. The measurement stays cleaner because each physical surface has its own short URL, scan history, and destination record.
This is also why a "trackable QR code Canva" workflow needs care. Canva is useful for layout, but if you paste the same exported QR image into every design, you lose placement-level measurement. Generate a separate trackable QR code for each surface, download the file, place it in the design, and keep the code name aligned with the design name.
Add UTMs to measure what happens after the scan
QR analytics and website analytics answer different questions.
Use the QR platform for scan behavior:
- Which code was scanned?
- When did scans happen?
- Which location, device, or browser groups appear in scan events?
- Which code is the top performer for a selected date range?
- Did activity continue after a destination change?
Use website analytics for downstream behavior:
- Did the scanner stay on the page?
- Did they submit the form?
- Did they buy, book, register, download, call, or start a chat?
- Which campaign or placement produced the highest conversion rate?
The bridge is the destination URL. For campaign pages, add deliberate UTM parameters before generating the QR code. A clean destination might look like:
https://example.com/demo?utm_source=qr&utm_medium=print&utm_campaign=expo-2026&utm_content=booth-card
Keep the values readable. Avoid copying old campaign parameters from a previous project. If you create separate codes for separate placements, use utm_content or a similar field to distinguish them downstream.
The guide on making a QR code from a URL covers URL cleanup and campaign parameters in more detail.
Build a practical tracking workflow
The workflow is simple, but the order matters.
- Decide what decision the scan data needs to support.
- Create a separate dynamic QR code for each placement you want to measure.
- Name each code by placement and campaign.
- Prepare the destination URL and add UTMs if downstream attribution matters.
- Download a print-ready QR file for each placement.
- Put the correct code into the matching artwork.
- Scan the final exported design, not only the dashboard preview.
- Launch the placement.
- Review scan data by date range, code, location, device, and destination.
- Compare QR scan activity with website conversions.
This keeps the measurement tied to the decision. If the goal is to choose which retail display deserves more space, create one code per display. If the goal is to compare direct mail drops by region, create one code per drop or region. If the goal is to watch a menu rollout, create separate codes for table tents, windows, receipts, and delivery inserts.
For the creation side of the workflow, read how to create a dynamic QR code. For print reliability, use the high-resolution QR code print guide before ordering anything.
How to read QR campaign performance
Start with the question you were trying to answer. Then read the dashboard in that order.
For a single placement, look at scan volume over time. Did scans start when the placement went live? Did they drop after the campaign ended? Are there unexpected spikes after a destination change?
For multiple placements, compare top performers. A booth card with fewer scans than a hallway poster may still be more valuable if the booth card sends higher-intent people to the page. Use scan data to understand attention, then website data to understand quality.
For location, device, browser, and operating system breakdowns, look for anomalies rather than trivia. A campaign designed for a local event should not show most activity from a different region unless distribution or sharing explains it. A landing page that fails on one mobile browser may show up as scans without conversions from that browser.
For recent scans, use the feed as an operational check. It is helpful after launch, after replacing signage, after editing a destination, or after sending a field team to distribute materials.
The practical question is not "how many scans did we get?" It is "what should we change because of what we learned?"
Common mistakes with trackable QR codes
Avoid these before the campaign goes live:
- Using one QR code across every placement.
- Naming codes
test,new qr, orcampaigninstead of the real surface. - Forgetting UTM parameters when website attribution matters.
- Adding too many tracking parameters until the destination becomes hard to audit.
- Pasting a static QR image into Canva and assuming scans will appear in a dashboard.
- Testing the dashboard preview but not the final printed or exported design.
- Reusing one code for unrelated campaigns and mixing performance history.
- Treating scan count as conversion count.
Most tracking problems are setup problems. The scan event can only tell you what the code structure allowed it to tell you.
When a trackable QR code generator is worth it
Use a trackable dynamic QR code when the printed surface is part of a campaign, operation, or customer journey you will evaluate later.
Good fits include:
- Event booth cards and badges.
- Direct mail pieces.
- Restaurant menus and table tents.
- Product packaging and setup inserts.
- Retail displays and shelf talkers.
- Real estate signs.
- Appointment, registration, booking, or quote-request flows.
- Any printed asset where the destination may change after launch.
A static code can still be fine for a permanent low-risk page where analytics do not matter. But if you are asking how to track QR code scans, you are already past the simplest static use case.
If you want to create trackable QR codes with editable destinations and scan analytics, create a DuoQR account, make one dynamic code per measurement job, and test the final exported file before it reaches the printer.
Trackable QR code checklist
Before you launch, confirm:
- The code is dynamic, not a static QR image.
- Each important placement has its own QR code.
- The code name describes the campaign and physical surface.
- The destination URL is public, mobile-friendly, and intentional.
- UTM parameters are present when downstream attribution matters.
- The exported file scans from the final design.
- The printed call to action matches the destination.
- The dashboard shows the code, destination, and scan activity after testing.
- Someone knows how to edit, pause, or expire the code later.
That is the difference between a QR code that merely opens and a QR code that can be measured. The square gets the scanner to the destination; the tracking setup tells you whether the physical campaign actually created activity.
Marisol leads product at DuoQR. Before this, she ran ops at a chain of coffee shops where she printed too many menus. She writes about the boring problems behind shiny tools.