By Tim King · Updated
QR Code With UTM
Campaign QR Code Generator With Tracking
OneTask is free, with no sign-up, and built by one person.
If this tool saved you time, a coffee helps keep new ones coming.
How the QR Code With UTM works
A QR code with UTM tags tells your analytics exactly which flyer, poster or pack the visitor came from. Enter the page address and the source, medium and campaign names, and this generator adds the tags to the link and draws the code. It runs in your browser, with no redirect service in the way.
Visits from a QR code arrive with no referrer. A phone camera opens the link directly, so Google Analytics and most other tools file the visit as "direct", mixed in with people who typed your address. Unless the link itself says where it came from, the poster you paid for looks like it did nothing.
How a QR code with UTM tags works
UTM parameters are five standard query-string tags that every analytics package reads:
| Tag | Meaning | Example |
|---|---|---|
| utm_source | Where the code physically is | flyer, poster, menu, packaging |
| utm_medium | The channel type | qr, print, offline |
| utm_campaign | The promotion | spring-sale, open-day-2026 |
| utm_term | Optional extra keyword | window-a, table-12 |
| utm_content | Optional variant | blue-version, back-page |
The generator joins them onto your link. Starting from https://example.com/offer with source
flyer, medium qr and campaign spring-sale, the code holds
https://example.com/offer?utm_source=flyer&utm_medium=qr&utm_campaign=spring-sale. If the address
already has a query string the tags are appended with &, and any #section anchor is kept at the
end where browsers expect it. Values are URL-encoded, so spaces and symbols are safe.
Source, medium and campaign are required. Analytics groups visits by all three, and a link missing one falls into a "(not set)" bucket that is hard to read later.
Naming that stays readable
- Lower case, hyphens, no spaces. Analytics treats
Flyerandflyeras different sources. - One medium for all codes. Pick
qrand use it every time, so one filter shows every scan. - Source is the placement. Use the physical object:
menu,window,business-card. - Content for A/B tests. Two poster designs, same campaign,
utm_content=redandblue. - Term for locations.
utm_termcan carry a shop, table or event stand identifier.
Keep a simple list of every code you print and the tags it carries.
Why not a redirect service?
Many "dynamic QR" services encode a short link on their own domain that redirects to yours. That lets you change the target later, but every scan depends on their server and subscription. If the service closes or you stop paying, every printed code breaks. A static code with UTM tags points straight at your site and works forever, at the cost of not being editable after printing.
If you need to change destinations later, encode a page on your own site, such as /qr/menu, and
redirect it yourself. You keep control and still get the tags.
Size and error correction
Tags make the link longer, and a longer link needs a bigger grid with smaller modules. Keep names
short: src=flyer style abbreviations are not needed, but spring-sale beats
spring-sale-2026-promotion-final. Medium error correction is the default and suits clean print.
Pick Quartile or High for outdoor posters, packaging that will be scuffed or codes that will be
partly covered.
Tips and pitfalls
Test the link, not just the scan. Scan the code and check the page loads with the tags in the address bar. Some site builders strip query strings on redirect.
Check the reports. In Google Analytics 4 the data appears under Acquisition, Traffic acquisition, with the session source / medium dimension. Allow up to a day for new tags to show.
Do not tag internal links. UTM tags belong on links from outside your site only. Tagging links between your own pages starts a new session and breaks attribution.
How to read the result
The status line shows the QR version, grid size, error correction level, mask and the number of bytes encoded, which includes the tags. Download the PNG or SVG and test it before printing.
FAQ
Can you track how many times a QR code is scanned?
You can track how many scans lead to a visit. Put UTM tags in the link, and every visit from the code shows in your analytics under its own source, medium and campaign. Counting scans that never open the page needs a redirect service.
Do UTM tags break the QR code or the page?
No. They are ordinary query-string parameters that web servers ignore and analytics tools read. They make the code slightly denser, so keep the tag values short.
What should I use for utm_medium on a QR code?
Use qr for every code, so one filter shows all QR traffic. Put the physical placement, such as
flyer or menu, in utm_source, and the promotion in utm_campaign.
Do these QR codes expire?
No. The full tagged link is stored in the code itself, with no redirect server in between, so it works for as long as the page exists.
See also: all Images tools, Audio, Video & Screen, PDF, SVG, Simulations & Screensavers, Generative Art, Chart Makers, 3D Model Viewers, Drawing Pads, Mockups & 3D Making, Diagram Makers, 3D Science, Tracker Music.
Related tools
QR Code Generator
QR codes for links, Wi-Fi, contact cards and more, as a PNG.
UTM Campaign URL Builder
Build correctly encoded UTM campaign links with consistent naming.
QR Code With Logo
A scannable QR code with your logo in the middle.
OG Image Generator
Make a 1200×630 Open Graph share image from a title and colours.
Print Size Calculator
Pixel dimensions to print size at 300 DPI and every quality level.