How to Track QR Code Campaigns in Google Analytics with UTM Parameters
Marcus Webb
The eternal frustration of print advertising is the attribution black hole. You spend £5,000 on a direct mail campaign, your website traffic spikes the following week, and you cannot definitively prove a connection. With QR codes and UTM parameters, that problem is solved. Every scan becomes a trackable click — attributable to a specific campaign, channel, and creative.
What are UTM parameters?
UTM parameters (Urchin Tracking Module) are tags appended to a URL that tell analytics platforms like Google Analytics 4 exactly where a visitor came from. They look like this:
https://yoursite.com/summer-sale?utm_source=flyer&utm_medium=qr&utm_campaign=summer2026When a visitor arrives via this URL, GA4 records the session as coming from source "flyer", medium "qr", campaign "summer2026" — giving you precise attribution in your reports.
The five UTM fields explained
- utm_source — Where specifically the traffic came from. For print campaigns:
flyer,poster,business-card,packaging. - utm_medium — The channel type. For QR codes, always use
qrorprint. - utm_campaign — The campaign name. Use something meaningful:
summer-sale-2026orproduct-launch-q3. - utm_term — Optional. Used for paid search keyword tracking. Rarely needed for QR campaigns.
- utm_content — Optional. Differentiates between multiple creatives in the same campaign. E.g.
red-bannervsblue-bannerfor A/B testing.
Setting up UTM in Unqode SmartQR
- Open a URL QR code in your Unqode SmartQR dashboard (or create a new one).
- Scroll to the UTM Parameters section (available on Pro and Business plans).
- Fill in utm_source, utm_medium, and utm_campaign at minimum.
- Save. Unqode SmartQR automatically appends the parameters to the destination URL on every scan — you don't need to modify the URL itself.
The help centre has a full UTM setup guide with field-by-field instructions and naming convention recommendations.
Viewing QR traffic in GA4
In Google Analytics 4, navigate to Reports → Acquisition → Traffic Acquisition. Change the primary dimension to Session source / medium. Look for entries like flyer / qr or poster / print.
To see campaign-level data, add a secondary dimension for Session campaign or use Reports → Acquisition → Traffic Acquisition and filter by your campaign name.
For a deeper view, use Explore → Free Form exploration and combine session source, medium, campaign, and conversion events to build a full attribution report you can export for client or board presentations.
UTM naming conventions that don't break
The biggest UTM mistake marketers make is inconsistent naming. GA4 is case-sensitive, so QR, qr, and Qr create three separate entries in your reports. Establish these rules before your first campaign and document them:
- Always lowercase:
utm_medium=qr, neverutm_medium=QR - Use hyphens, not underscores or spaces:
summer-sale, notsummer_saleorsummer sale - Use dates in campaigns:
product-launch-2026-q3is searchable years later - Keep sources descriptive:
manchester-flyeris more useful than justprint
Common use case examples
| Placement | utm_source | utm_medium | utm_campaign |
|---|---|---|---|
| Restaurant table card | table-card | qr | menu-2026 |
| Direct mail flyer | summer-flyer | summer-sale-2026 | |
| Product packaging | packaging-sku123 | qr | product-launch |
| Window sticker | shop-window | qr | brand-awareness |
| Event badge | badge | qr | conference-2026 |
For marketing-specific QR code strategy including retargeting pixels and A/B testing, see the marketing campaigns use case guide. And the QR code analytics guide covers what the Unqode SmartQR dashboard shows you alongside your GA4 data.
Marcus Webb
Content lead at Unqode SmartQR. Writes about QR code strategy, analytics, and practical guides for marketers, restaurateurs, and event organisers.