How do I add UTM tags to a QR code?
Add utm_source, utm_medium, utm_campaign and utm_content to the link before you turn it into a QR code, so GA4 records which poster, flyer or billboard sent each visit. Fill in the fields below to get the tagged link and a QR code you can download as a PNG.
By Daniel Zaremba, founder of BetterQR · Updated
The format: billboard, poster, flyer.
One value per site, so placements stay apart in GA4.
Enter a destination URL to build the tagged link and its QR code.
Want to change the link after printing? Make it dynamic.
What does each UTM parameter mean for print?
| Parameter | What it records | Example |
|---|---|---|
utm_source | The format or site owner | billboard, poster, flyer |
utm_medium | The channel type | print, ooh |
utm_campaign | The campaign or offer | spring-sale-2026 |
utm_content | The individual placement | high-street-north |
utm_content does the most work for print. Give every placement its own value and GA4 can split visits by site, which is the whole point of putting a code on more than one poster.
How does the builder work?
It adds the four parameters to your URL, keeping any query string the URL already has, and turns the result into a QR code in your browser. Values are lower-cased and spaces become hyphens, because GA4 treats Poster and poster as two different sources. Empty fields are left out. Nothing is sent to a server.
The PNG download is 1,024 × 1,024 pixels with black modules on a white background and a blank border. That is enough for flyers and small posters. For anything bigger, check the width you need with the QR code size calculator.
Where do the visits show up in GA4?
In Reports, under Acquisition, then Traffic acquisition. Change the primary dimension to Session source / medium, or add Session manual ad content to see each placement. The QR code UTM + GA4 setup guide covers the naming scheme and the reports step by step.
Should utm_medium be "print" or "ooh"?
Either works, as long as you pick one and stick with it. Use ooh for billboards, bus shelters and street furniture, and print for flyers, leaflets, packaging and posters you put up yourself. Check how your GA4 default channel group classifies the value; a custom channel group gives print and OOH visits their own row.
Why does my QR code look so dense?
UTM tags make a URL long, and every extra character adds modules to the code. A dense code needs to be printed larger to scan from the same distance. A dynamic code solves this: it encodes a short redirect link, and the long tagged URL lives on the server where you can edit it.
What happens if the URL or tags need to change after printing?
With the static code this tool makes, you reprint. With a BetterQR dynamic code, you change the destination in the dashboard and the printed code keeps working. BetterQR also counts scans per code, which catches visits GA4 misses when people leave before the page loads. Dynamic codes come with the paid plans; see pricing.
Related
- QR code UTM + GA4 setupTag every printed QR code with UTMs so GA4 attributes visits and conversions to the right poster, flyer or billboard. Naming scheme included.
- OOH attribution for small brandsHow small brands measure billboards, posters and flyers: one QR code per placement, UTMs into GA4, and a simple cost-per-scan comparison.
- QR code size calculatorEnter the viewing distance and get the minimum QR code size for a billboard, poster or sign, in cm and inches. Free, no sign-up.
- Campaign ROI calculatorWork out cost per scan, cost per customer and ROI for a billboard, poster or flyer campaign from your own numbers. Free, no sign-up.