Campaign measurement
Track QR codes with GA4
A QR code itself does not report scans. For a website destination, UTM parameters can label visits after the person scans, opens the page and your analytics setup runs.
Add consistent utm_source, utm_medium andutm_campaign values to the final destination before generating the QR code. Then test both the link and your own GA4 reporting setup.
A practical billboard example
For a summer campaign printed on a station poster, you might use:
utm_source=station-posterutm_medium=offlineutm_campaign=summer-2026utm_content=platform-2for an optional placement variant
Google documents that UTM parameters populate manual campaign dimensions and recommends using the relevant parameters consistently. Its campaign URL guidancealso notes that values are case-sensitive.
Choose names people can maintain
Decide a convention before printing. For example, use lowercase values and hyphens, then keep a record of the exact source, medium, campaign and content names assigned to each placement. GA4 treats differently capitalised or punctuated values as different data.
Keep personal information out of UTM values
Campaign parameters are visible in the URL, browser history, copied links and server requests. Use placement or creative labels, not names, email addresses, customer IDs or other personal data.
What the numbers do not prove
- A camera preview that is never opened does not load the destination.
- Consent choices, blockers, connection failures and browser settings can prevent measurement.
- One person can scan more than once or share the destination.
- UTM reporting describes visits your analytics received; it is not a guaranteed count of physical scans.
Launch checklist
- Use the final production destination, including HTTPS.
- Preserve any necessary existing query parameters and fragment.
- Open the generated URL and confirm the destination behaviour.
- Scan the downloaded QR code from the final artwork.
- Verify the visit in your own analytics configuration before printing at scale.