Link Tools
4 min read
QR Codes + UTM: How to Track Offline Campaigns in GA4
Track print campaigns, flyers, and signage in Google Analytics by combining QR codes with UTM parameters. Source=qr, medium=offline - the complete guide.
The Problem: Offline Is Invisible
You printed 5,000 flyers, put QR codes on business cards, and placed signs in your store. But Google Analytics shows all that traffic as "Direct" - because scanned QR codes don't carry any tracking data by default. UTM parameters fix this.
The Solution: UTM-Tagged QR Codes
Instead of encoding a plain URL in your QR code, encode a UTM-tagged URL. When the user scans the code and visits your site, GA4 captures the UTM parameters and attributes the visit to the correct offline campaign.
Step-by-Step Process
- Build your UTM link: Open the UTM Builder and create a tagged URL. Recommended parameters for offline:
utm_source=qrutm_medium=offlineutm_campaign=+ the specific campaign (e.g.,2026-07-store-flyer)
- Generate the QR code: Copy the UTM-tagged URL and paste it into the QR Code Generator.
- Customize and download: Add your brand colors and logo, then download as PNG (free) or SVG/PDF (Pro).
- Print and deploy: Use the QR code on your flyers, business cards, posters, packaging, or signage.
- Monitor in GA4: Go to Traffic acquisition and filter by
source=qrormedium=offlineto see all QR-driven traffic.
Naming Conventions for Offline Campaigns
| Material | utm_source | utm_medium | utm_campaign |
|---|---|---|---|
| Store flyer | qr | offline | 2026-07-store-flyer |
| Business card | qr | offline | business-card |
| Product packaging | qr | offline | product-packaging-v2 |
| Event banner | qr | offline | 2026-q3-conference |
| Direct mail | qr | direct-mail | 2026-07-postcard |
See the full UTM Naming Conventions guide for all channel pairs.
Pro Tips
- Use dynamic QR codes if the destination URL might change. You can update the target without reprinting.
- Unique campaigns per material: Give each print piece its own
utm_campaignvalue so you can compare performance (e.g., which flyer design drove more traffic). - Use utm_content for A/B tests: Printing two versions of a flyer? Use
utm_content=version-aandutm_content=version-b. - Short URLs look better: Use the URL Shortener to create a clean redirect before encoding in the QR code. The shorter URL also produces a simpler, easier-to-scan QR code.
Tools You Need
- UTM Builder - create the tracking URL
- QR Code Generator - encode it as a QR code
- URL Shortener - optional, for cleaner URLs