Back to Blog
February 20, 20264 min readqr codesutmanalyticsmarketing

How to track QR code campaigns (UTMs, redirects, and conversions)

QR codes are offline, but your analytics do not have to be. Learn how to track QR code campaigns with UTM parameters, redirect links, and simple naming conventions so you can measure scans and conversions.

How to track QR code campaigns (UTMs, redirects, and conversions)

Most QR code campaigns fail for a boring reason:

Nobody knows if they worked.

You print a QR code.

People scan it.

Traffic shows up in your analytics as "direct" or "other" and the team shrugs.

Tracking matters because it turns QR codes from decoration into a growth channel.

This guide shows a practical setup that works for small teams and scales for bigger ones.

No jargon, no complicated tooling.

Just a clean way to measure scans and conversions.

TL;DR

  • Use a short redirect (dynamic QR) so you can update destinations later and keep the code scannable.
  • Put UTM parameters on the final destination URL, not inside a huge static QR pattern.
  • Choose a naming convention you can stick to.
  • Track two numbers: scans and conversions.

What you can track (and what you cannot)

A QR code scan is not the same as a conversion.

You can reliably track:

  • scans (how many people opened the link)
  • landing page sessions (analytics)
  • conversions (signups, purchases, leads)

You cannot perfectly track:

  • unique people across devices
  • scans that never complete the browser load

That is fine.

Your goal is directionally correct data you can act on.

The clean tracking stack

A simple, robust setup has three layers.

Layer 1: The QR code

Keep the QR code itself simple.

Avoid encoding a massive URL with lots of parameters.

Dense QR patterns scan worse, especially:

  • on curved surfaces (bottles)
  • on glossy print
  • in low light
  • at small sizes

Layer 2: A redirect link you control

Use a dynamic QR code that points to a short redirect.

Example:

  • qrshuffle.com/r/spring-flyer

This redirect gives you two benefits:

  • you can change the destination without reprinting
  • you can measure scans at the redirect

Layer 3: The final destination URL with UTMs

The redirect sends people to the real landing page.

That final URL should contain UTM parameters so your analytics platform can attribute traffic.

Example destination:

UTM parameters that actually matter

UTMs are just labels.

The trick is to use them consistently.

A good default set:

  • utm_source: qr
  • utm_medium: print
  • utm_campaign: the campaign name
  • utm_content: the variant or placement

If you want to go further, you can also use:

  • utm_term: rarely needed for QR, more for paid search

A naming convention you can use forever

Most teams break tracking because names drift.

Pick a convention that answers three questions:

  • where was the QR code placed?
  • what creative version was it?
  • what time window was it?

Example convention:

  • utm_campaign: 2026_02_spring_sale
  • utm_content: poster_main_entrance_v1

It looks boring.

That is good.

Boring means reliable.

Example: tracking a cafe poster

Scenario:

  • You place posters in two locations: entrance and counter.
  • You test two CTAs: "10 percent off" vs "free coffee".

Make four variants.

Redirects:

  • /r/cafe-entrance-10off
  • /r/cafe-entrance-freecoffee
  • /r/cafe-counter-10off
  • /r/cafe-counter-freecoffee

Destinations:

Each redirect points to the same landing page but with different UTMs.

Now you can answer:

  • which location drives more scans?
  • which CTA drives more conversions?

If you later change the landing page, you update the redirect.

No reprint.

How to measure conversions

Scans are top of funnel.

Conversions depend on your goal.

Common conversion events:

  • email signup
  • lead form submit
  • purchase completed
  • app install

Make sure your analytics platform tracks the event.

Then you can compare:

  • scans per placement
  • conversion rate per placement
  • revenue per placement

That is how you decide where to print more.

Common mistakes to avoid

Mistake 1: Putting personal data in UTMs

Do not put names, emails, or anything sensitive in UTM parameters.

Keep UTMs anonymous.

Mistake 2: Using a static QR code with a huge UTM URL

It can work.

But it is a scan reliability risk.

Use a short redirect.

Mistake 3: Changing names mid campaign

If you rename utm_campaign halfway through, your reporting becomes a mess.

Lock your names for the campaign duration.

Mistake 4: Forgetting to test the printed code

Always print one and test in the real environment.

If your QR code is on a window, test with glare.

If it is on a menu, test at the expected distance.

How QRShuffle helps

QRShuffle is built for campaign tracking.

You can:

  • create dynamic QR codes with short redirects
  • update destinations without reprinting
  • keep your QR patterns clean for better scanning
  • manage variants and placements without a spreadsheet nightmare

If you want a simple way to launch and track your next QR campaign, start here:

QRSHUFFLE • CREATE

Create a QR code with editable links.

Print once. Update the destination later. Track scans. No reprints.

Editable

Update links without reprinting

Trackable

Scan analytics + UTMs

Fast

Built for real-world scans