Here's the problem: you print 500 flyers with a QR code, drop them off at five local cafes, and... nothing. You don't know if anyone scanned. You don't know which cafe drove the most traffic. You don't know which day of the week people scan most.
The fix: UTM parameters. Five extra characters in your URL give you a full campaign dashboard in Google Analytics.
What Are UTM Parameters?
UTM parameters are tags you add to a URL that Google Analytics reads and displays as campaign data. They look like this:
https://yoursite.com/?utm_source=qr&utm_medium=flyer&utm_campaign=summer-promo
When someone scans your QR code and lands on this URL, GA logs:
- Source: qr
- Medium: flyer
- Campaign: summer-promo
The Five UTM Parameters
| Parameter | What It's For | Example |
|---|---|---|
utm_source |
Where the traffic came from | qr, instagram, newsletter |
utm_medium |
Category of marketing | flyer, yardsign, business-card |
utm_campaign |
Specific campaign name | summer-promo-2026 |
utm_content |
Variant (for A/B testing) | blue-flyer, red-flyer |
utm_term |
Keyword (mostly paid ads) | Usually skip for QR |
For QR codes, the first three are required. The other two are optional.
A UTM Convention for QR Codes
Pick a convention and stick to it across every campaign. Here's one that works:
utm_source=qr
utm_medium=[location-type]
utm_campaign=[specific-name]-[year]
Examples
Restaurant menu QR:
?utm_source=qr&utm_medium=table-tent&utm_campaign=dinner-menu-2026
Real estate yard sign:
?utm_source=qr&utm_medium=yardsign&utm_campaign=123-main-st
Trade show booth:
?utm_source=qr&utm_medium=booth&utm_campaign=acme-conf-2026
Business card:
?utm_source=qr&utm_medium=business-card&utm_campaign=networking-2026
How to Tag Your QR Code URLs
Method 1: Tag the Destination URL Directly (Static QR)
Paste the UTM-tagged URL into any QR generator:
https://yoursite.com/menu?utm_source=qr&utm_medium=table-tent&utm_campaign=dinner-menu-2026
Downside: if you change campaigns, you reprint.
Method 2: Use a Dynamic QR (Recommended)
With a dynamic QR code, you set the destination (with UTMs) in the dashboard. When the campaign ends, you swap the destination to a new UTM-tagged URL — no reprinting.
QR (never changes) → Dynamic redirect → yoursite.com/menu?utm_source=qr&utm_medium=table-tent&utm_campaign=dinner-menu-2026
Viewing QR Data in GA4
In Google Analytics 4:
- Go to Reports → Acquisition → Traffic acquisition
- Change the primary dimension to Session source / medium
- Filter where source contains
qr
You'll see scans grouped by campaign, medium, and content variant.
Useful Custom Reports
Create a custom report filtered to utm_source = qr that shows:
- Scans per campaign
- Scans per location/medium
- Time-on-site after scanning
- Conversion events per campaign
This tells you which printed materials actually drive outcomes, not just scans.
Tagging Best Practices
- Lowercase everything. GA is case-sensitive.
Flyerandflyershow as two separate rows. - Use hyphens, not spaces.
summer-promonotsummer promo. - Be consistent. If you use
yardsignonce, never useyard-signoryard_sign. - Include the year in campaigns.
summer-promo-2026keeps historical data clean. - Test the URL before printing. Scan the QR, check GA real-time view, confirm the tags came through.
Common Mistakes
Forgetting UTMs entirely. The QR scans register as "direct traffic" with no attribution. Useless.
Mixing QR and non-QR traffic. If you use utm_source=print, but also stamp print on a magazine ad, you can't separate them. Always use utm_source=qr for QR codes.
Not UTM-tagging dynamic QR destinations. The redirect strips away UTMs unless you put them on the final URL. Always set UTMs in the dashboard destination field.
Copy-Paste UTM Template
https://yoursite.com/DESTINATION?utm_source=qr&utm_medium=LOCATION&utm_campaign=NAME-YEAR
Fill in:
DESTINATION— the page on your siteLOCATION— flyer, yardsign, business-card, table-tent, window-decal, postcard, etc.NAME-YEAR— short descriptive name with the year
Print, scan, and check GA real-time to confirm it works. Once you see the first scan come through with proper attribution, you're set.
Ready to create QR codes?
Generate custom QR codes with landing pages, analytics, and more.