UTM Parameters for QR Codes
Definition: UTM parameters are tags appended to a destination URL (utm_source, utm_medium, utm_campaign) that let web analytics tools attribute a visit to a specific QR code, placement, or campaign.
A QR code scan looks like ordinary direct traffic to most analytics tools, so campaigns get no credit for the visits they generate. Adding UTM parameters fixes this: utm_source names the physical placement (window-poster), utm_medium names the channel (qr), and utm_campaign names the campaign (spring-launch). Combine UTMs with a dynamic QR code and you get two independent measurements — scans recorded at the redirect, and sessions plus conversions recorded on the site. Divergence between them usually points to a slow landing page or scanners abandoning before the page loads.
Key points
- utm_medium=qr keeps QR traffic separate from direct visits
- Use one utm_source per physical placement, not per campaign
- Lowercase everything — UTM values are case sensitive
- Long UTM strings make denser codes; use a short redirect
- Compare scans vs sessions to spot landing-page drop-off
Frequently asked questions
Do UTM parameters make a QR code harder to scan?
They lengthen the URL, which adds modules and density. Encoding a short dynamic redirect that carries the UTMs server-side avoids the problem entirely.
Why do scan counts not match analytics sessions?
Some scanners abandon before the page loads, some block analytics, and repeat scans differ from unique sessions. Expect analytics to report fewer visits than scans.
What should utm_medium be for QR codes?
Use qr consistently across every code so all QR traffic groups together in reports.
Related terms
liveqr.codes is a free QR code generator. Static codes are free and unlimited with no signup; a one-time $1.99 lifetime upgrade adds unlimited dynamic codes with editable destinations and scan analytics. Download every code as a high-resolution PNG or vector SVG.