getsharesquare

Guide · 2 min read

How to track QR code scans with UTM parameters

Short answer

Add UTM parameters to the link before you make the code, for example ?utm_source=flyer&utm_medium=print&utm_campaign=spring_open_day. Your analytics tool then reports those visits separately. You measure visits that load your page, not raw scans, and you need a separate tagged link for each placement you want to compare.

  • UTM tags are just query parameters on your link: source, medium, campaign, plus optional content and term.
  • Use one tagged link per placement you want to compare: flyer vs poster vs table tent.
  • Lowercase, no spaces, a written naming scheme. Consistency matters more than cleverness.
  • Tags make the code slightly denser; keep values short.

A printed QR code doesn't report anything by itself. If it points to your own website, though, you can find out how many visits it sends with the same campaign tags marketers use for email and ads. No paid QR service, no redirects through someone else's server.

What UTM parameters are

UTM parameters are labels added to the end of a link as query parameters. Analytics tools such as Google Analytics read them and group visits by them. The common ones:

Parameter What it describes Example
utm_source Where the visit came from flyer, poster, menu
utm_medium The type of channel print, qr
utm_campaign The campaign or event spring_open_day
utm_content Which version or placement table_tent, window
utm_term Mainly for paid search keywords (rarely used for print)

A tagged link looks like this:

https://yourcafe.com/menu?utm_source=table_tent&utm_medium=print&utm_campaign=autumn_menu

When someone scans the code and the page loads, your analytics records the visit with those labels.

Adding tags with the generator

In the QR code generator, choose Link, type your address, and open Add UTM tags. Fill in source, medium and campaign (content is optional). The generator lowercases the values, swaps spaces for underscores, keeps any existing query string and puts the tags before a # fragment if there is one. You can see the final link under "What's inside the code".

A naming scheme that stays readable

The most common UTM problem isn't technical: it's Flyer, flyer and flyers showing up as three different sources a month later. Before you print anything, write down a short scheme and stick to it:

  • medium is always print for anything on paper.
  • source is the object: flyer, poster, table_tent, business_card, packaging.
  • campaign is the event or season: spring_open_day, autumn_menu_2026.
  • content separates variations you want to compare: window vs counter, version_a vs version_b.

Lowercase, underscores instead of spaces, no personal data. Keep values short, too: every character goes into the code, and a long tagged link can push a code up a size or two. The info line under the preview shows the version as you type.

Comparing placements

Tags only separate what you give separate links. If you want to know whether the window poster or the counter card works better, they need different codes:

  • Poster: ?utm_source=poster&utm_medium=print&utm_campaign=open_day&utm_content=window
  • Counter card: ?utm_source=counter_card&utm_medium=print&utm_campaign=open_day

Run them for the same period and compare visits. Small numbers bounce around, so give it a few weeks before drawing conclusions.

What you're measuring, and what you're not

UTM tags count visits that load your page and run your analytics. They don't count people who scanned and closed the browser before it loaded, or visitors who block analytics. They also don't count anything if the code points to a page you don't control, such as a social profile.

That's usually fine: a visit is what you wanted. If you need raw scan counts, you'd need a redirect service, with the trade-offs explained in dynamic vs static QR codes.

Privacy

UTM tags describe the placement, not the person. Don't put names, emails or customer IDs in them: they show up in browser history, server logs and analytics. And if you add analytics to a site for the first time, check your local rules on cookie consent.

Sources

Questions

Do UTM tags slow down the page or break the link?

No. They're ordinary query parameters. Your server ignores them and analytics tools read them. Only a few unusual sites reject unknown parameters; test the tagged link before printing.

Can I see how many people scanned but didn't load the page?

No. UTM tags are only seen when the page loads and your analytics runs. That's usually the number you want: people who actually reached the page.

Which analytics tool do I need?

Any tool that reads campaign parameters. Google Analytics does, and so do most privacy-focused analytics products and many hosting dashboards.

More guides