QR Code Marketing & Strategy

How to Track QR Code Scans: Analytics and Measurement Guide

Data flow from a scanned poster into a dashboard used to track QR code scans

You printed the poster, added a code to the flyer, and stamped one on the packaging — and now the obvious question: which one actually worked? To track QR code scans is to answer exactly that, and the widely repeated claim that you need a pricey dynamic-code subscription to do it simply isn’t true. There are two honest methods. One is free and works with any static code you already have. The other costs a subscription but adds scanner-level detail. This guide walks through both, starting with the free UTM method most guides skip past because it doesn’t sell software. By the end you’ll have a zero-dollar measurement stack: a tagged link, a code, and a report that tells you which surface earns its scans.

Why Track QR Code Scans at All?

Without measurement, a QR campaign is a guess wearing a suit. You spent money on print, design, and placement — but if you can’t see which code drove visits or sales, you can’t repeat the wins or cut the duds.

Consider a bakery running three codes at once: one on the shop window, one on delivery boxes, and one in a local magazine ad. All three point to the same online-ordering page. Without tracking, the owner knows total orders went up but has no idea which placement did the work. With tracking, she sees the delivery-box code drove 70% of scans — so she doubles down there and drops the magazine.

That’s the whole point of QR code analytics: turning a vague “it seemed to help” into a clear “this surface earns its ink.” Scan measurement closes the loop between an offline touchpoint and an online result, which is the exact capability print marketing lacked for a century. If you want the strategy that sits above measurement — which campaigns to run in the first place — our QR code marketing strategy guide covers it.

The Two Ways to Track QR Code Scans

Here’s the myth worth killing first: “static codes can’t be tracked.” Not true. You can track scans on any code — static or dynamic — because tracking really happens at the destination, not inside the pattern.

There are two methods of QR code tracking, and they answer slightly different questions.

Method 1: UTM + staticMethod 2: Dynamic code
What it measuresVisits, sources, conversionsScan counts, device, location
CostFree foreverMonthly subscription
SetupTag a URL, generate codeAccount with a provider
ReliabilityNothing to lapseCode dies if plan ends
Best forMost campaignsScanner-level detail

Method 1 tags your destination URL so scans show up in your normal web analytics — free, and the star of this guide. Method 2 routes the code through a provider’s redirect server that logs the scan itself before the page even loads. Most teams need only Method 1. Let’s build it.

Method 1 — Track QR Code Scans Free with UTM Parameters

UTM parameters are short tags added to the end of a URL that tell your analytics where a visitor came from. They’re the same tags email and social campaigns have used for years — and they work perfectly with QR codes. This is how you measure QR code scans without paying a cent.

Step 1 — Build the Tagged URL

Start with your destination and append three tags. A spring-sale poster might use:

yoursite.com/sale?utm_source=flyer&utm_medium=qr&utm_campaign=spring-sale

Each tag has a job: utm_source names the placement (flyer), utm_medium names the channel (qr), and utm_campaign names the promotion (spring-sale). Don’t hand-type these — use Google’s free Campaign URL Builder to assemble the link cleanly and avoid typos that split your data into duplicate rows.

Step 2 — Generate the Code from the Tagged URL

Copy the full tagged URL, then paste it into a free QR code generator as a standard URL code. QRocket encodes the entire link, tags and all, into a static pattern. The tags ride along invisibly — the scanner just lands on your page, while your analytics quietly record where they came from.

Because everything lives in the destination URL, a plain static code does the job. There’s no redirect and nothing to renew. New to the basics? Our guide on how to create a QR code for free covers generating a URL code start to finish.

Step 3 — Read the Results in Google Analytics

Open Google Analytics 4 and go to Reports → Acquisition → Traffic acquisition. Set the dimension to “Session source / medium,” and your scans appear as flyer / qr — cleanly separated from your other traffic. To measure outcomes, not just visits, mark your goal (a purchase, a signup) as a conversion event in GA4. Now you see not only how many people scanned, but how many did what you wanted.

One Code per Placement: The Attribution Trick

Here’s the move that unlocks real insight: give each placement its own uniquely tagged code. Change one tag — usually utm_content — per surface: utm_content=window on the shop window, utm_content=box on packaging, utm_content=magazine in the ad.

Same destination, three different tagged codes. In your reports, each placement shows up as its own line, so you can rank them by scans and conversions. That single habit answers the question that stumps most marketers: which poster, flyer, or box actually got scanned?

Tag your URL, then make the code — free static codes carry UTMs perfectly.Create Your Free QR Code

Method 2 — Dynamic QR Codes with Built-In Analytics

Sometimes you need data the destination page can’t see — and that’s where dynamic codes earn their subscription. A dynamic code routes through a provider’s redirect server, which logs the scan itself the instant it happens, before any page loads.

That redirect hop captures things UTM tracking can’t: total and unique scan counts, coarse location (city or region), device and operating system, and exact timestamps. If you need to know a code was scanned 400 times even though only 250 people loaded the page, dynamic tracking is the only way to see it.

The trade-offs are real. Dynamic codes cost a recurring subscription, and the code stops working if the plan lapses or the provider shuts down — the pattern is fine, but the redirect dies. For the full comparison of what you gain and give up, see our guide on static vs dynamic QR codes. The honest rule: reach for dynamic only when scanner-level detail genuinely drives a decision.

What Scan Data You Can (and Can’t) Collect

It helps to see exactly what QR code scan data each method reveals — and what neither one can, no matter what a sales page promises.

Data pointUTM + static (free)Dynamic code (paid)
Sessions and page viewsYesVia landing page
Source / placement splitYesYes
Conversions and goalsYes (GA4 events)Only if page loads
Total and unique scan countsNoYes
Device type and OSYes (GA4)Yes
Coarse location (city)Yes (GA4)Yes
Scans that never load the pageNoYes
Personal identity or precise GPSNoNo

That last row matters. Neither method identifies the individual scanning your code or pinpoints their exact location without their explicit consent. QR analytics measures behavior in aggregate, not people by name.

Which brings up privacy. If you track scans, disclose it on your landing page and honor the analytics consent banners that laws like GDPR require. Worth noting: QRocket itself collects nothing — codes are generated in your browser, so there’s no scan database on our side. Any tracking you do runs entirely through your own analytics, under your own privacy policy.

A Simple QR Reporting Setup

You don’t need a fancy dashboard to make this useful. A single spreadsheet with four columns — placement, week, scans, conversions — turns raw analytics into a decision-making tool. Update it weekly and patterns jump out fast.

Want it prettier? Pipe your GA4 data into a free Looker Studio report and chart scans by campaign over time. Either way, the goal is the same: a view that ranks your placements so budget flows to what works.

Key takeaway: Start simple. One tagged code per placement plus a weekly spreadsheet beats an expensive dashboard nobody checks.

A deeper metrics guide can define every term — unique versus total scans, scan-to-conversion rate — but you don’t need that vocabulary to begin. Tag, generate, and read; the definitions make sense once you’ve watched real numbers move for a week.

Let the Numbers Pick Your Next Print Run

The reason to measure isn’t to admire charts — it’s to stop paying for placements that don’t pay you back. Once you can see that the packaging code out-scans the magazine ad three to one, every future print budget gets smarter on its own. Build one tagged QRocket code per placement this week, and by next week your analytics will tell you which surface earns its ink. That single loop — tag, print, read, adjust — is the entire discipline of QR measurement, and it costs nothing but a few minutes of setup.

Frequently Asked Questions

Can I track how many people scan my QR code?

Yes. Tag the destination URL with UTM parameters before generating the code, and each scan appears as a session in your analytics. That measures visits and conversions for free. To count scans that never open the page, you’d need a dynamic code with redirect-based logging, which requires a subscription.

Can static QR codes be tracked?

Yes, at the destination level. A UTM-tagged static code reports sessions, traffic sources, and conversions in your analytics just like any other link. Only scanner-side details — a raw scan count, device data captured before the page loads — require a dynamic redirect service. For most campaigns, destination tracking is plenty.

What data can QR code analytics show?

UTM tracking shows visits, traffic sources, campaign splits, and conversions through tools like Google Analytics. Dynamic-code dashboards add total and unique scan counts, device types, coarse location, and timestamps captured at the redirect. Neither approach reveals a scanner’s identity or precise location without their explicit consent.

Do I need Google Analytics to track QR scans?

No, though it’s the common free choice. Any analytics tool that reads URL parameters can attribute UTM-tagged scans, so if you already run a different platform, it works too. Google Analytics 4 is popular simply because it’s capable and free, making it a natural fit for a zero-cost measurement setup.

How do I know which poster or flyer got scanned?

Give each placement its own uniquely tagged code, changing the utm_content value per surface — window, box, magazine. In your reports, each shows up as a separate line you can rank by scans and conversions. That one habit tells you exactly which printed piece is doing the work.

Ready to make yours?

Create a free QR code with custom colors, your logo and print-ready downloads — no sign-up.

Create a free QR code →