QR code platforms like qree.app show you scan counts, geography, and devices. But they don't tell you what happens after the scan — did the visitor buy something? Sign up? Bounce after 3 seconds?
Google Analytics answers those questions. By adding UTM parameters to your QR code URLs, you connect the scan to the full user journey on your website.
What Are UTM Parameters?
UTM (Urchin Tracking Module) parameters are tags you add to the end of a URL. They tell Google Analytics where the visitor came from. When someone visits your site through a UTM-tagged URL, Google Analytics records the source, medium, and campaign.
A UTM-tagged URL looks like this:
https://yoursite.com/landing-page?utm_source=qr&utm_medium=flyer&utm_campaign=spring-2026
The five UTM parameters:
- utm_source — where the traffic comes from (e.g.,
qr,qr-code,poster) - utm_medium — the marketing medium (e.g.,
flyer,packaging,business-card,print) - utm_campaign — the specific campaign name (e.g.,
spring-2026,product-launch,restaurant-menu) - utm_term — (optional) keyword or placement detail
- utm_content — (optional) differentiates similar content (e.g.,
front-doorvscheckout-counter)
Step by Step
1. Build your UTM URL
Use Google's Campaign URL Builder (search "Google UTM builder") or build it manually. Fill in:
- Website URL:
https://yoursite.com/menu - Source:
qr - Medium:
flyer - Campaign:
spring-menu-2026
Result:
https://yoursite.com/menu?utm_source=qr&utm_medium=flyer&utm_campaign=spring-menu-2026
2. Create the QR code
Paste the full UTM-tagged URL into qree.app. Generate and download the QR code. The QR encodes the entire URL including the UTM parameters.
3. Use the QR code
Place it on your flyer, poster, packaging, or wherever it's going.
4. View in Google Analytics
In Google Analytics 4, go to Acquisition → Traffic acquisition. Filter or search for qr in the source column. You'll see all traffic from QR code scans with the campaign name, session data, conversions, and revenue.
Practical Tagging Strategy
The key is being consistent and specific. Here's a tagging system that works:
By channel (utm_source + utm_medium)
| Physical material | utm_source | utm_medium |
|---|---|---|
| Flyer | qr | flyer |
| Poster | qr | poster |
| Business card | qr | business-card |
| Product packaging | qr | packaging |
| Table tent | qr | table-tent |
| Receipt | qr | receipt |
| Banner | qr | banner |
| Direct mail | qr | direct-mail |
By campaign (utm_campaign)
Name campaigns descriptively:
- spring-promo-2026
- product-launch-oct
- restaurant-new-menu
- trade-show-berlin
By placement (utm_content)
When you have the same campaign on different placements:
- front-door vs checkout-counter vs table
- poster-a vs poster-b (for A/B testing designs)
- page-1 vs page-3 (different pages of a brochure)
Example: Restaurant with Multiple QR Codes
A restaurant has QR codes in 4 locations, all linking to the online ordering page:
Front door: ...?utm_source=qr&utm_medium=poster&utm_campaign=order-online&utm_content=front-door
Table tent: ...?utm_source=qr&utm_medium=table-tent&utm_campaign=order-online&utm_content=table
Receipt: ...?utm_source=qr&utm_medium=receipt&utm_campaign=order-online&utm_content=receipt
Takeaway bag: ...?utm_source=qr&utm_medium=packaging&utm_campaign=order-online&utm_content=bag
In Google Analytics, the restaurant sees: table tent drives 60% of QR orders, front door 25%, receipt 10%, bag 5%. Now they know to invest more in table tents and less in receipt printing.
Combining QR Analytics with Google Analytics
You get two layers of data:
From qree.app (scan-level data):
- Total scans per QR code
- Geography (country, city)
- Devices (iOS, Android, desktop)
- Time of scan
From Google Analytics (behavior-level data):
- Pages visited after scanning
- Time on site
- Bounce rate
- Conversions (purchases, signups, form submissions)
- Revenue attributed to QR traffic
Together, they tell the complete story: how many people scanned → how many visited → how many converted → how much revenue.
Common Mistakes
Inconsistent naming. utm_source=qr in one campaign and utm_source=QR-code in another creates duplicate entries in analytics. Pick a convention and stick to it. Use lowercase, hyphens instead of spaces.
Forgetting UTM on some codes. If half your QR codes have UTM tags and half don't, the untagged traffic shows up as "direct" in Google Analytics and you lose attribution. Tag everything.
URLs too long. Very long UTM-tagged URLs create dense QR codes that are harder to scan. Use a dynamic QR code — it encodes a short redirect URL (like qree.app/abc123) regardless of the destination URL length.
Not testing. Always scan the QR code yourself and check in Google Analytics Realtime that the UTM parameters appear correctly.
Tips
Use a dynamic QR for flexibility. If you realize your UTM tag has a typo after printing, you can update the destination URL in your qree.app dashboard without reprinting.
Create a UTM spreadsheet. Maintain a Google Sheet documenting all your UTM-tagged URLs, which QR code they're associated with, and where the QR is placed. This prevents naming conflicts and makes reporting easier.
Set up goals/conversions. UTM data is most valuable when connected to goals in Google Analytics — purchases, signups, form submissions. Without goals, you only see traffic, not business impact.
Create Your Tracked QR Codes
Generate QR codes with UTM-tagged URLs at qree.app. Dynamic codes give you scan analytics plus the full Google Analytics picture.