How to Track QR Code Scans: Analytics Guide for Marketers
A QR code with no tracking is like running an ad campaign with your eyes closed. You spend money printing, distributing, and displaying codes — and have no idea which ones are working.
Here is how to track QR code scans properly.
Method 1: UTM Parameters (Free, Works With Any QR Code)
The simplest approach: add UTM parameters to your destination URL before generating the QR code.
UTM parameters are tags appended to URLs that Google Analytics 4 and most analytics platforms read automatically.
Example:
https://yoursite.com/offer?utm_source=flyer&utm_medium=print&utm_campaign=q2-promo&utm_content=storefront
Parameters breakdown:
utm_source: What surface is the QR on? (flyer, poster, receipt, packaging)utm_medium: What type of channel? (print, offline, direct-mail)utm_campaign: Which campaign? (q2-promo, grand-opening, product-launch)utm_content: Which specific placement? (storefront, checkout-counter, table-3)
In GA4: Go to Reports → Acquisition → Traffic Acquisition. Add a secondary dimension of "Session campaign" or filter by source = your UTM source values.
Use QRCrack's UTM builder to build tagged URLs without manually editing query strings.
Method 2: Dynamic QR Codes With Built-in Analytics
Dynamic QR codes work differently from static ones. Instead of encoding the destination URL directly, they encode a redirect URL (controlled by the QR platform). When someone scans, the platform:
- Logs the scan (time, device type, estimated location)
- Redirects to your destination URL
This gives you native scan analytics:
- Total scans over time
- Scans by day/hour
- Device type (iOS vs Android)
- Geographic data
- Unique vs repeat scans
The tradeoff: dynamic QR codes require a paid plan on most platforms, and your QR codes depend on that platform staying live.
Method 3: Your Own Redirect (Best for Control)
Create a simple redirect on your own domain or a free serverless function:
Vercel Edge Function (free):
Create a route at /go/promo-q2 that redirects to your landing page URL. Log the hit to a database or analytics service. You own the redirect forever.
Cloudflare Worker (free):
Same concept. Route /qr/menu → your menu URL. Cloudflare's analytics dashboard shows you hits.
Bitly or Short.io (free tier): Create a branded short link (e.g., yoursite.co/menu). Bitly and Short.io both show click counts, device breakdown, and referrer info in their dashboards.
This approach gives you the analytics of dynamic QR codes without platform dependency.
Setting Up Google Analytics 4 for QR Tracking
- Make sure GA4 is installed on your destination page
- Use UTM-tagged URLs in all your QR codes
- In GA4, create a custom segment: Sessions where Source contains your QR utm_source values
- Create a report or exploration that shows: Sessions, Conversions, Revenue by Campaign
Optional: Set up a GA4 custom event for "qr_scan" that fires when a user arrives with a QR UTM parameter. This lets you track QR-driven behavior separately from other traffic.
Which Pages Are Getting Scanned?
If you have many QR codes pointing to different pages, use unique UTM content values for each placement. Then in GA4:
- Go to Explore
- Create a Free Form exploration
- Dimension: Session content (your utm_content values)
- Metric: Sessions, Conversions
You will see exactly which QR code placement drives the most traffic.
Tracking Offline-to-Online Conversion
The real goal is not just measuring scans — it is measuring what happens after. Set up GA4 conversions for:
- Purchase completed
- Form submitted
- Phone number clicked
- Download started
Then in your QR traffic reports, you can see: 120 scans from the storefront QR → 34 visits to the product page → 8 purchases. That is a measurable ROI for your print campaign.
Benchmarks: What Is a Good QR Scan Rate?
Scan rates vary widely by context. General benchmarks:
- Restaurant table QR (menu): 40–80% of diners scan
- Print ad QR code: 1–5% of readers scan
- Product packaging QR: 5–15% of purchasers scan
- Event badge QR: 10–30% of encounters lead to a scan
- Direct mail QR: 2–8% scan rate
Anything significantly below these benchmarks suggests a placement, design, or CTA problem — not a QR code problem.
Create a tracked QR code with UTM parameters — built-in UTM builder, free.