Skip to main content
EZQR

Analytics QR Code

QR Code Analytics — Scan Tracking, Attribution & CSV Export

Every scan of a dynamic QR passes through a redirect, and the redirect is what records it. Timestamp, city, device, browser, referrer and full UTM set — exported to CSV or pulled through the API.

Free static QR codes. Sign up to unlock dynamic codes & analytics.

Your QR code will appear here

About Analytics QR Codes

QR code analytics answer one question: did the print work? A dynamic QR encodes a short redirect URL, and every scan passes through that redirect before landing on your destination. The redirect is the measurement point. It records the scan, then forwards the visitor.

That mechanism sets a hard boundary most vendor pages skip. A static QR cannot be tracked at all. Its destination is encoded directly in the module pattern, so the scan goes phone-to-website with nothing in between to count it. No vendor can track a static code. That is physics, not a paywall, and any tool claiming otherwise is either quietly converting your code to a dynamic one or counting something else.

Walkthrough

How to Create a Analytics QR Code

  1. Create the code as dynamic, not static

    Analytics require a redirect, so the code has to be dynamic from the start. Pick a dynamic QR when you create it. Converting later means reprinting, because the encoded pattern changes.

  2. Add UTM parameters if you use GA4

    Set utm_source, utm_medium and utm_campaign on the destination. EZQR appends them to the forwarded URL, so the same scan appears in both EZQR and your Google Analytics property. Without UTMs, GA4 files QR traffic under direct.

  3. Print, place, and label the placement

    Give each physical placement its own code. One code across ten locations produces a single number that cannot tell you which of those ten locations earned it, which is the question you printed the code to answer in the first place. Ten codes produce ten numbers, and the comparison between them is the actual insight.

  4. Read the dashboard

    Scans appear with timestamp, city and country, device type, browser and operating system, referrer, and any UTM values you attached to the destination before printing. Totals and unique counts are shown separately, because the gap between them is what tells you whether one person scanned repeatedly or many people scanned once.

  5. Export to CSV or pull through the API

    Pro exports full scan history to CSV. Max adds REST API access so scan data lands in your warehouse or BI tool without a manual download.

Where it works

Analytics QR Code Use Cases

Print attribution — which flyer, poster or packaging placement actually produced scans, compared placement by placement.

Multi-location retail, giving each store its own code so branch performance is comparable rather than pooled.

Campaign A/B testing, splitting scans across two destinations from a single printed code and reading conversion per variant.

Event and conference measurement — scans by hour reveal when a booth was actually busy.

Direct mail response rate, where the QR is the only measurable response channel on the piece.

Restaurant menus, where scan volume by table or time-of-day informs staffing.

Agency client reporting, where scan data is the deliverable proving a print campaign moved.

Geographic testing — country and city breakdown showing whether a national campaign performed evenly.

What works in practice

Analytics QR Code Best Practices

Use one code per placement, not one code per campaign. A single QR on every asset collapses ten questions into one number. Separate codes cost nothing and make the comparison possible.

Set UTM parameters before printing. They pass through to the destination and reconcile EZQR scans with GA4 sessions. Adding them after the print run means the printed codes never carry them.

Treat unique scans as approximate. Uniqueness is derived from a browser cookie. Clear the cookie, switch phones, or scan in a private window and the same person counts twice. Total scans are exact; unique scans are an estimate.

Do not expect GPS. A redirect sees an IP address, which resolves to city level at best and to the wrong city on mobile networks routing through a distant gateway. City and country are directional, not precise.

Keep a static fallback for anything safety-critical. Analytics require a vendor redirect, which is a dependency. For codes that must never break, static is the safer choice and the trade is that you lose measurement.

Export before you downgrade. Scan history on Lite covers a 30-day window. Pull the CSV before the window closes or the plan changes.

Compare like for like on time. A code printed in March and one printed in June have different exposure. Normalise by days-in-market before concluding one placement beat the other.

Analytics QR Code FAQ

Common questions about generating, printing, and deploying these codes.

What exactly gets recorded on each scan?

Timestamp, country, city and region, device type, browser, operating system, referrer, the final landing URL, and all five UTM values (source, medium, campaign, content, term). Each scan also carries an anonymous visitor ID and a session ID so repeat scans are distinguishable from first-time ones, plus the variant name when A/B testing is active. No name, email, phone number or precise location is captured, because a redirect has no access to any of it.

Does tracking slow down the scan?

No. The redirect responds first and the scan is written afterwards, outside the request that the visitor is waiting on. The scanner gets its redirect immediately, and the analytics write happens in the background. The redirect also carries an X-Robots-Tag noindex header so tracking URLs never enter search results.

Can I track a static QR code?

No, and neither can anyone else. A static code encodes the destination directly in the black-and-white pattern, so the phone goes straight to your site with no intermediate step to count. There is nothing to instrument. If you need scan data, the code has to be dynamic before it goes to print. The one partial workaround is putting a UTM-tagged URL inside a static code, which gives you GA4 sessions without scan-level detail, and locks those UTM values into the printed pattern forever.

How accurate is the location data?

City-level and directional. Location is derived from the IP address at the edge, not from device GPS, because a web redirect cannot request location permission. Mobile carriers frequently route traffic through gateways in another city, and corporate VPNs will place a scan in whichever country the exit node sits. Country data is reliable enough to act on. City data is useful in aggregate and wrong often enough that you should not build a decision on a single row.

Will scan data appear in Google Analytics?

Yes, if you set UTM parameters. EZQR forwards them to the destination URL, so GA4 attributes the session to your campaign instead of filing it under direct traffic. The two systems count different things and will not match exactly: EZQR counts redirects, GA4 counts sessions that finished loading. Scans where someone closes the browser mid-load appear in EZQR and never reach GA4, so EZQR totals normally run slightly higher.

Which plan includes analytics?

Lite at $5/month includes a 30-day scan history. Pro at $10/month adds full historical analytics, CSV export, A/B testing and geo-targeting. Max at $20/month adds REST API access, an audit log and weekly email reports. All prices are monthly billing, not annual. The free plan includes 3 dynamic codes without the analytics dashboard, and unlimited static codes that cannot be tracked by design.

What happens to my scan data if I cancel?

Export it first. Scan history is tied to the dynamic codes on your plan, and dynamic codes stop redirecting when the subscription ends, which also ends new data collection. CSV export on Pro and above exists precisely so the history is portable. Static codes are unaffected because they were never tracked and never depended on the redirect.

Can I see who scanned my code?

No, and be sceptical of any vendor implying otherwise. A scan is an anonymous HTTP request. It carries an IP address, a user-agent string and whatever UTM values you attached, none of which identify a person. Identity only enters if the destination page asks for it — a form, a login, a checkout. The QR measures that someone scanned. Your landing page is what learns who.

Related Articles

Related Industries

Related Guides

Related Tools

Ready to create your Analytics QR code?

Free, no watermarks. Generate and download in seconds.

Generate Free QR Code