QR code tracking
QR codes started as an industrial tool for tracking cars during manufacturing. Masahiro Hara invented them in 1994. Today they bridge offline and online marketing, letting you measure offline campaign performance with digital metrics.
How tracking works
A QR code is a machine-readable link. By itself, no analytics tool can track traffic from it. Without configured links, QR traffic shows as direct. The trick is in tracking parameters and choosing static vs dynamic codes.
Static vs dynamic
Code type defines analytics capability.
Critical difference
Static QR codes:
- Final URL is in the code
- Can't change after creation
- No detailed analytics
- Fit only simple redirects
Dynamic QR codes:
- Use an intermediate URL for redirect
- Final link can change after print
- Collect detailed scan stats
- Required for full tracking
Only dynamic codes support real-time tracking. Static codes redirect without tracking. Dynamic codes use short URLs or tracking URLs.
graph LR
A[QR code scanned] --> B{Code type?}
B -->|Static| C[Direct redirect]
B -->|Dynamic| D[Tracking URL]
D --> E[Data collection]
E --> F[Analytics]
F --> G[Landing page]
C --> H[Landing page]UTM for QR codes
UTM tags turn a scan into a data point. Detail every placement.
Basic structure
| Parameter | Purpose | QR example |
|---|---|---|
| utm_source | Where QR is placed | poster, flyer, package |
| utm_medium | Channel type | qr_code, offline, print |
| utm_campaign | Campaign | spring_sale_2025 |
Detailed tagging
Detailed UTM example
Base URL: example.com/special-offer
With UTM for QR on packaging:
example.com/special-offer?utm_source=package&utm_medium=qr_code&utm_campaign=product_launch&utm_content=box_side&utm_term=sku_12345
Analytics will show:
- Source: product packaging
- Channel: QR code
- Campaign: product launch
- Variant: box side
- Extra: specific SKU
Key metrics
Two basics: total scans and unique scans. Total tells you raw interest. Unique tells you reach.
Performance indicators
Total scans
Absolute interest. Counts every scan, including repeats.
Unique scans
Distinct devices that scanned. Real reach.
Conversion to target action
Share of scanners completing the goal: purchase, signup, download.
Geography
Country, city, region distribution. Helps placement decisions.
Time of day
Hourly and daily activity. Surfaces peak interaction windows.
Devices and OS
iOS vs Android, browser. Drives mobile experience optimization.
Offline ROI
ROI calculation
Inputs:
- 10,000 flyers with QR: $500
- Design and setup: $200
- Total: $700
After one month:
- Scans: 850
- Conversions: 42
- Average order: $35
- Revenue: $1,470
ROI = (1,470 - 700) / 700 × 100% = 110%
Practical use cases
Retail and packaging
Unique UTMs per format show which works. Adjust budget on real numbers, not guesswork.
QR on packaging covers:
- Extra product information
- Cross-sell and upsell
- Post-purchase feedback
- Loyalty programs
Packaging placement
Box exterior
QR for primary info
utm_content=box_front
Inside packaging
QR for warranty registration
utm_content=warranty_card
On the product
QR for instructions and support
- utm_content=product_label
Restaurants
Table QR codes drive upsell. Diners are relaxed and browsing.
graph TD
A[Enter restaurant] --> B[QR on table]
B --> C{Customer action}
C -->|View menu| D[utm_content=table_menu]
C -->|Order online| E[utm_content=table_order]
C -->|Loyalty program| F[utm_content=table_loyalty]
D --> G[Dish popularity analysis]
E --> H[Average check by table]
F --> I[Conversion to regular customers]Events
Events offer multi-touch QR tracking opportunities.
Event QR placement matrix
| Placement | UTM source | Goal |
|---|---|---|
| Entry tickets | ticket | Pre-event interest |
| Attendee badges | badge | Networking and contact exchange |
| Booths and banners | booth | Content engagement |
| Handouts | handout | Post-event conversions |
| Speaker presentations | presentation | Material downloads |
Analytics integration
Google Analytics 4
When a visitor lands with utm_medium, utm_source, utm_campaign in the URL, GA4 attributes the session to the QR code.
Setup:
- Build the UTM link
Use Campaign URL Builder or write parameters manually.
- Generate the QR code
Convert the UTM URL with a generator that supports long URLs.
- Test before launch
Scan and check GA4 Realtime.
- Analyze
Data shows in Reports → Acquisition → Traffic Acquisition after 24-48 hours.
Custom channels for QR
If QR is core to your tracking, set up a Custom Default Channel under Property Settings → Data Settings → Channel Groups.
Channel grouping
Without it, QR traffic falls into "Unassigned" or "Direct".
Recommended channels:
- QR Code - Print
- QR Code - Package
- QR Code - OOH
- QR Code - Event
A/B testing with QR
You can vary content, products, CTAs, designs, colors, or URLs.
Creative testing
Run different versions in parallel.
CTA: "Discover the joy of shopping" Design: bright colors, smiling people
CTA: "Save up to 50% right now" Design: clear numbers, savings charts
Placement testing
Find the best touchpoint.
graph LR
A[QR code campaign] --> B[Placement 1: Window]
A --> C[Placement 2: Checkout]
A --> D[Placement 3: Package]
B --> E[CR: 2.3%]
C --> F[CR: 5.7%]
D --> G[CR: 8.1%]
G --> H[Test winner]Limits of standard tools
Standard analytics platforms restrict QR tracking. GA limits URL length and event count. Other systems block arbitrary parameters.
Typical limits
Google Analytics:
- UTM value length limits
- 24-48 hour processing delay
- Sampling on large volumes
Social networks:
- UTM truncation in reposts
- Proprietary tracking parameters
- Limited raw data access
Statable approach
Statable removes typical QR tracking issues.
Flexible parameters
Arbitrary tracking parameters with no quantity or length limits. Pass detailed placement info.
Real-time without delays
Processing at scan time. Instant dashboard updates.
Intelligent attribution
Automatic source identification even with incomplete or wrong UTMs. ML recovers lost parameters.
Privacy-first QR tracking
Server-side tracking
Server-side processing helps:
- Bypass browser blocks
- Keep data complete
- GDPR compliance
- Control collection
First-party data
Focus shifts to your own data.
First-party via QR
Direct identification
- Promo codes tied to QR
- Bonus signup
Progressive profiling
- Gradual data collection
- Value exchange for info
Touchpoint unification
- Link offline and online IDs
- Unified customer profile
Future
US scans are projected to exceed 11 million by 2025. Tracking matters more.
AR and AI integration
Next-gen QR codes will include:
- AR after scanning
- AI personalization
- Predictive behavior analytics
- Voice interaction
Omnichannel attribution
QR becomes part of complex journeys:
graph TD
A[TV ad with QR] --> B[Scan]
B --> C[Site visit]
C --> D[Email subscription]
D --> E[Push notification]
E --> F[In-app purchase]
F --> G[QR on receipt for review]
G --> H[Repeat purchase]Proper attribution accounts for every touch, not just the last.
QR codes evolved from a link transfer method into a marketing analytics tool. Proper tracking measures offline ROI as precisely as digital. Detailed tagging, the right tools, and continuous data-driven optimization win.
About AI participation in writing articles
This article, like many others on our site, was created, written and proofread by a team of developers. Of course, not without the participation of AI assistants. We don't hide this and believe that modern systems are already quite good at handling simple tasks and, relatively speaking, writing an article about Viewport yourself is quite strange. It won't come out significantly better and will take a lot of time. But providing basic understanding to beginner webmasters is necessary. Of course, after the article is written by assistants - there's always proofreading, and this is where not one or two people participate, and only after that the article is published.
Ready to measure offline campaigns?
Sign up for a free trial of Statable. QR tracking without traditional limits. Detailed attribution, real-time data, flexible parameters.
Ready to take control of your web analytics? Try Statable free for 30 days — no credit card required, full feature access, GDPR-compliant by default. Start your free trial or view a live demo.