Commercial dynamic QR code providers charge between £15 and £80 every month, advertising “Advanced Scan Analytics”. When you log into their dashboards, what you typically see is a single vanity metric: a raw count of “Scans”.
In practice, raw scan counts are almost useless for commercial decision-making. That number includes staff testing the code, search bot crawlers, people who immediately hit their browser back button, and repeat scans from the same customer. More importantly, vendor scan counters cannot tell you what happened after the scan: did that flyer reader buy a ticket, fill out an inquiry form, or spend five minutes exploring your services?
By pairing permanent static QR codes with standard UTM parameters and your existing Google Analytics 4 (GA4) setup, you unlock complete conversion tracking across all physical placements—completely free of ongoing subscription costs.
The flaw in vendor scan counters vs GA4 sessions
When you measure QR campaigns inside your web analytics rather than a vendor dashboard, you shift from measuring superficial curiosity to measuring tangible commercial return:
| Tracking method | What it measures | Bot filtering | Conversion attribution | Ongoing cost |
|---|---|---|---|---|
| Third-party dynamic QR vendor | Raw HTTP hits to vendor redirect | Minimal (counts pre-fetch bots) | None (stops at redirect) | £180–£600 / year |
| Static QR code + UTM + GA4 | Actual mobile user sessions & key events | Full Google bot filtering | Full (orders, signups, revenue) | £0 (Permanent) |
A clean UTM naming convention for print
UTM (Urchin Tracking Module) tags are standard query parameters appended to web addresses. To prevent your GA4 data from becoming an unreadable mess, establish a strict lowercase naming structure before printing:
| Parameter | Purpose | Recommended convention | Example value |
|---|---|---|---|
utm_source | The specific physical placement | Identify the medium or venue | window_poster, bill_insert, tube_ad |
utm_medium | The marketing channel | Always use qr or print | qr |
utm_campaign | The overall promotional initiative | Name of seasonal push or project | autumn_sale_2026, brunch_launch |
utm_content | Differentiates variant placements | Location, size, or design variation | table_14, front_counter_a5 |
Example fully tagged URL:
https://example.com/promo?utm_source=spring_flyer&utm_medium=qr&utm_campaign=march_remodel&utm_content=bath_branch
Fixing the 'Unassigned' traffic channel in GA4
If you tag a URL with utm_medium=qr, Google Analytics 4 will by default dump that traffic into the Unassigned channel group. This happens because Google’s default rule set only recognises standard digital channels like 'Organic Search', 'Paid Search', and 'Email'.
To give your QR campaigns a dedicated, beautiful top-level channel in your GA4 reports:
- Open your GA4 property and navigate to Admin (bottom left gear icon).
- Under Data display, click on Channel groups.
- Click Create new channel group (or edit your custom group).
- Click Add new channel and name it QR Code Print.
- Set the rule condition:
Medium>exactly matches>qr. - Drag your new channel rule above the 'Unassigned' bucket and save.
Within 24 hours, all visits originating from your printed materials will cleanly populate under their own dedicated reporting channel!
Preventing dense QR codes with redirects
A destination URL with four UTM parameters can easily stretch to 160 characters. If you encode this long string directly into a QR code, the symbol increases to Version 8 or 9 (53 × 53 grid modules), requiring a larger print size to scan reliably.
The professional workflow: Set up a short, clean vanity URL on your own website (e.g. https://brand.co.uk/flyer) and configure a 302 redirect that forwards visitors to your full UTM-tagged URL. When visitors scan the simple code, their browser seamlessly forwards to the tagged destination, passing all tracking parameters straight into GA4.
Always test your redirect before sending artwork to print! Enter your short URL with a test parameter in your mobile browser and confirm that your final destination page maintains the complete query string intact.
Building your monthly QR conversion report
Once traffic begins arriving, stop looking at session totals and start calculating your Action Rate:
In GA4, go to Reports > Acquisition > Traffic acquisition. Filter by Session medium = qr, and set your secondary dimension to Session source. You can immediately see which physical locations (e.g. Camden Market flyer vs Soho shop window) generated actual enquiries, table bookings, or purchases.
Campaign tracking checklist
- UTM parameters use consistent lowercase characters with underscores (no spaces).
utm_mediumis set strictly toqr.- Custom GA4 Channel Group rule created for
medium = qr. - Short vanity redirect forwards traffic without dropping query parameters.
- Key Events (conversions) are marked active in GA4 Admin.
- Internal staff test visits excluded via GA4 developer traffic filters.
Questions before you print
Will UTM parameters slow down page load times?
No. UTM tags are passive text strings read by your analytics script. They do not add any server rendering delay.
Do UK cookie banners block GA4 QR tracking?
If a user rejects analytics cookies on your website's cookie consent banner, GA4 will not log their full session data. However, Google Consent Mode v2 uses behavioural modeling to recover anonymous aggregate visit trends.
Why should I use utm_medium=qr instead of utm_medium=print?
Using qr specifically isolates digital scans from manual URL typists, giving you an exact measurement of physical QR engagement.
What is the difference between a 301 and 302 redirect for QR codes?
A 301 redirect is permanent and aggressively cached by phone browsers. A 302 (or 307) redirect is temporary, meaning phone browsers check your server every time—allowing you to update the destination URL whenever you want.
Can I track individual tables or posters separately?
Yes! Use utm_content=table_1, utm_content=table_2, etc. You can generate a distinct static QR code for each table without paying any software licensing fees.
Related: Read our foundational guide on UTM basics for offline marketing, build permanent codes with our static QR code generator, learn how to set up your own domain redirects, and explore choosing the right size for printed materials.
Build your trackable static QR code.
Encode your UTM-tagged destination URL into a clean, permanent vector file without middleman fees.
Create trackable QR code