QR Code Analytics: Track Scans, Location, Device & Time (2026 Guide)
Learn what QR code analytics track, why static QR codes give zero data, how to set up dynamic QR tracking, read your dashboard, run A/B tests, and build monthly reports.
Most QR codes in the wild are static — they encode a URL directly into the pattern and transmit zero data when scanned. You've spent money printing them on flyers, packaging, and posters, and you have absolutely no idea if anyone's actually using them.
QR code analytics changes that. Dynamic QR codes — where the redirect URL is stored server-side — can capture rich scan data every time someone points a camera at your code. This guide covers everything: what gets tracked, how to set it up, how to read your dashboard, how to A/B test, and how to build a monthly reporting template that actually tells you something useful.
What QR Code Analytics Actually Track
A well-instrumented dynamic QR code captures data in four main dimensions:
Some platforms add a fifth dimension: referrer / scan context — whether the scan came from a camera app, a QR reader app, or an in-app scanner (WhatsApp, Instagram, WeChat). This tells you where in the physical or digital world the QR encounter is happening.
Why Static QR Codes Give You Zero Data
It's worth being explicit about why static QR codes can't be tracked:
A static QR code encodes your destination URL directly in the black-and-white pattern. When someone scans it, their phone camera decodes the pattern locally and opens the URL — nothing ever hits your server. There's no middleman, no request log, no analytics event. The URL encoded in the QR pattern might be yoursite.com/menu, and when a diner scans it, their phone goes straight to your web server. Your web server sees a normal visit — it can't distinguish a QR scan from someone typing the URL by hand.
| Feature | Static QR Code | Dynamic QR Code |
|---|---|---|
| Scan count | None | ✓ Full history |
| Location data | None | ✓ Country / City |
| Device / OS | None | ✓ iOS / Android split |
| Time of scan | None | ✓ Hourly breakdown |
| Edit destination URL | Must reprint | ✓ Instant, no reprint |
| A/B testing | Impossible | ✓ Multiple variants |
| Campaign tagging | Not supported | ✓ UTM / custom tags |
The free QR generator trap: Most free QR generators produce static codes. The QR image is generated in your browser and emailed/downloaded — no server involved. If there's no login, no dashboard, and no "edit destination" button, it's static. You're flying blind.
How to Set Up Dynamic QR Tracking with scanstrack.com
Setting up tracked QR codes takes about five minutes. Here's the process:
Step 1: Create your account
Go to scanstrack.com and sign up. The free tier gives you 5 dynamic QR codes with full analytics — no credit card needed. For most small campaigns, the free tier is sufficient to start.
Step 2: Create a new QR code
Click "New QR Code" and choose the type: URL, vCard, PDF, or social profile. For campaign tracking, you'll usually choose URL and paste your landing page link.
Step 3: Add campaign tags
Before saving, add UTM parameters to your destination URL — or use scanstrack.com's built-in campaign tagging field. Campaign tags let you segment analytics by source, medium, and campaign name in both your scanstrack.com dashboard and Google Analytics:
utm_source=print— identifies QR scans vs. other trafficutm_medium=flyer— distinguishes flyers from posters from menusutm_campaign=summer2026— groups all assets from one campaign
Step 4: Name your codes intentionally
Use a naming convention you'll be able to interpret later. Instead of "QR Code 3", use "2026-Summer — NYC Subway — A3 Poster". When you're looking at analytics three months from now, descriptive names are invaluable.
Step 5: Customise and download
Add your brand colours, logo, and a frame. Download as SVG for print (scales to any size) or PNG for digital use. Send to your print shop or digital asset system.
Reading Your Analytics Dashboard
The scanstrack.com dashboard surfaces four core views. Here's how to interpret each:
1. Total Scans Over Time
This is your primary performance line. Look for:
- Spikes: Did a spike correlate with a media push, social post, or influencer mention? Note it for attribution.
- Decay curves: Most campaigns decay after the initial push. A slow decay (over weeks) suggests ambient placement (storefront, packaging). A fast decay (days) suggests one-time media (flyer, event).
- Baseline: The floor after a campaign ends tells you how much organic interest the placement generates on its own.
2. Location Breakdown
Geographic data is derived from IP geolocation — accurate to city level for most ISPs, less accurate for mobile data connections (which sometimes resolve to the carrier's gateway city rather than the actual user location). Use it directionally, not precisely:
- Is your NYC campaign reaching NYC? If 40% of scans are from out-of-state, your placement might be on a high-traffic tourist corridor.
- Unexpected foreign traffic often means the QR code image was screenshotted and shared online — a signal worth investigating.
3. Device & OS Split
If 75% of your scans come from iOS but your landing page has a known rendering issue on Safari, that's an urgent fix. The device breakdown also tells you:
- Whether to prioritise iOS vs. Android app install links
- What screen sizes to design for
- Whether desktop scans exist (surprising, but people screenshot QR codes and scan them from another device)
4. Time of Day Heatmap
The most tactically useful view. If your restaurant QR codes peak at 12:30 PM and 7:00 PM, those are your service windows — make sure your menu page is fast and your online ordering system is staffed. If your transit poster scans peak at 8:00 AM, morning commuters are your audience; align your offer accordingly.
See your own QR analytics dashboard
Create 5 free dynamic QR codes with full scan tracking — no credit card required.
Start Tracking Free →Campaign Tagging: Connecting QR Data to Your Wider Marketing
QR analytics in isolation are useful. QR analytics connected to your Google Analytics or ad platform are powerful. The bridge is UTM parameters.
When you create a dynamic QR code in scanstrack.com, append UTM parameters to the destination URL:
https://yoursite.com/promo ?utm_source=qr &utm_medium=print &utm_campaign=summer-menu-2026 &utm_content=table-tent-indoor
Now when someone scans your QR code and arrives on your site, Google Analytics records the session with those parameters. You can see in GA4:
- How many sessions came from QR scans vs. other channels
- What those users did after scanning (pages visited, conversions, bounce rate)
- How QR traffic compares to email or paid social in terms of downstream behaviour
The utm_content field is particularly useful for A/B testing different physical placements — same campaign, different physical location, different content tag. You'll see which placement drives better post-scan behaviour in GA, while scanstrack.com shows you raw scan volume by QR code.
A/B Testing QR Codes
A/B testing with QR codes is simpler than digital A/B testing: you create two codes pointing to the same destination, vary one element (design, placement, call-to-action text, or landing page), and compare performance after a set period.
What you can A/B test with QR codes:
- QR design: Branded (with logo/colour) vs. plain black-and-white — does branding improve scan rate?
- Frame / call-to-action text: "Scan for menu" vs. "Tap to order" vs. "View today's specials"
- Placement: Centre-of-table vs. menu card holder vs. table edge — which position gets more scans?
- Landing page: Two different menu layouts — which one leads to faster ordering or lower bounce?
Variant A — Plain QR
Standard black-and-white, no frame, no logo
Variant B — Branded QR ✓ Winner
Brand colours, logo centre, "Scan for menu" frame
Practical A/B rule: Run each variant for at least two full weeks and a minimum of 100 scans per variant before declaring a winner. Restaurant foot traffic varies significantly by day of week — a one-week test that starts on a busy Friday will be skewed.
Monthly QR Code Reporting Template
A monthly QR report doesn't need to be elaborate. Here's a simple template that covers what matters for a physical-world marketing campaign:
📋 Monthly QR Performance Report — February 2026
Keep this report to one page. The goal is to answer three questions: Is scan volume growing? Where are the weak spots? What one change will I make next month?
Common QR Analytics Mistakes to Avoid
- Using static QR codes: You get zero data. Full stop. Every "free" QR generator that doesn't require a login is generating static codes.
- Not naming codes descriptively: "QR 1, QR 2, QR 3" in your dashboard three months from now tells you nothing. Naming costs 30 seconds and saves hours of confusion later.
- Ignoring mobile optimisation: 94% of QR scans happen on mobile. If your landing page isn't mobile-first, you're burning scan traffic.
- Reporting raw scans without context: 500 scans from a poster in a mall is very different from 500 scans from a business card campaign. Compare like with like, and always track the cost-per-scan.
- No downstream tracking: QR scan volume is a vanity metric if you don't know what happens after. Connect UTM parameters to GA4 to track what users actually do post-scan.
Start tracking your QR codes today
Free dynamic QR codes with full analytics — scans, location, device, time — all in one dashboard.
Create Free QR Code →The Bottom Line
QR code analytics aren't a nice-to-have — they're the fundamental difference between running a marketing campaign and running an experiment you can learn from. Static QR codes are invisible to you the moment they leave your printer. Dynamic QR codes on scanstrack.com give you a live feed of who's scanning, from where, on what device, and when.
Related articles: QR marketing · dynamic vs static
Set up your codes correctly from the start: use descriptive names, add UTM parameters to your destination URLs, and build a monthly review habit. Within 60 days you'll have enough data to make meaningful decisions about placement, design, and campaign timing that static QR codes could never inform.