April 26, 2026
3 min read

How to Track QR Code Scans with Google Analytics (UTM Guide)

Every QR code should have a UTM-tagged destination. Here's exactly how to structure them so Google Analytics tells you what works.

How to Track QR Code Scans with Google Analytics (UTM Guide)
Free tool
Skip the reading — try the generator now.
Open tool

Here's the problem: you print 500 flyers with a QR code, drop them off at five local cafes, and... nothing. You don't know if anyone scanned. You don't know which cafe drove the most traffic. You don't know which day of the week people scan most.

The fix: UTM parameters. Five extra characters in your URL give you a full campaign dashboard in Google Analytics.

What Are UTM Parameters?

UTM parameters are tags you add to a URL that Google Analytics reads and displays as campaign data. They look like this:

https://yoursite.com/?utm_source=qr&utm_medium=flyer&utm_campaign=summer-promo

When someone scans your QR code and lands on this URL, GA logs:

  • Source: qr
  • Medium: flyer
  • Campaign: summer-promo

The Five UTM Parameters

Parameter What It's For Example
utm_source Where the traffic came from qr, instagram, newsletter
utm_medium Category of marketing flyer, yardsign, business-card
utm_campaign Specific campaign name summer-promo-2026
utm_content Variant (for A/B testing) blue-flyer, red-flyer
utm_term Keyword (mostly paid ads) Usually skip for QR

For QR codes, the first three are required. The other two are optional.

A UTM Convention for QR Codes

Pick a convention and stick to it across every campaign. Here's one that works:

utm_source=qr
utm_medium=[location-type]
utm_campaign=[specific-name]-[year]

Examples

Restaurant menu QR:

?utm_source=qr&utm_medium=table-tent&utm_campaign=dinner-menu-2026

Real estate yard sign:

?utm_source=qr&utm_medium=yardsign&utm_campaign=123-main-st

Trade show booth:

?utm_source=qr&utm_medium=booth&utm_campaign=acme-conf-2026

Business card:

?utm_source=qr&utm_medium=business-card&utm_campaign=networking-2026

How to Tag Your QR Code URLs

Method 1: Tag the Destination URL Directly (Static QR)

Paste the UTM-tagged URL into any QR generator:

https://yoursite.com/menu?utm_source=qr&utm_medium=table-tent&utm_campaign=dinner-menu-2026

Downside: if you change campaigns, you reprint.

Method 2: Use a Dynamic QR (Recommended)

With a dynamic QR code, you set the destination (with UTMs) in the dashboard. When the campaign ends, you swap the destination to a new UTM-tagged URL — no reprinting.

QR (never changes) → Dynamic redirect → yoursite.com/menu?utm_source=qr&utm_medium=table-tent&utm_campaign=dinner-menu-2026

Viewing QR Data in GA4

In Google Analytics 4:

  1. Go to Reports → Acquisition → Traffic acquisition
  2. Change the primary dimension to Session source / medium
  3. Filter where source contains qr

You'll see scans grouped by campaign, medium, and content variant.

Useful Custom Reports

Create a custom report filtered to utm_source = qr that shows:

  • Scans per campaign
  • Scans per location/medium
  • Time-on-site after scanning
  • Conversion events per campaign

This tells you which printed materials actually drive outcomes, not just scans.

Tagging Best Practices

  1. Lowercase everything. GA is case-sensitive. Flyer and flyer show as two separate rows.
  2. Use hyphens, not spaces. summer-promo not summer promo.
  3. Be consistent. If you use yardsign once, never use yard-sign or yard_sign.
  4. Include the year in campaigns. summer-promo-2026 keeps historical data clean.
  5. Test the URL before printing. Scan the QR, check GA real-time view, confirm the tags came through.

Common Mistakes

Forgetting UTMs entirely. The QR scans register as "direct traffic" with no attribution. Useless.

Mixing QR and non-QR traffic. If you use utm_source=print, but also stamp print on a magazine ad, you can't separate them. Always use utm_source=qr for QR codes.

Not UTM-tagging dynamic QR destinations. The redirect strips away UTMs unless you put them on the final URL. Always set UTMs in the dashboard destination field.

Copy-Paste UTM Template

https://yoursite.com/DESTINATION?utm_source=qr&utm_medium=LOCATION&utm_campaign=NAME-YEAR

Fill in:

  • DESTINATION — the page on your site
  • LOCATION — flyer, yardsign, business-card, table-tent, window-decal, postcard, etc.
  • NAME-YEAR — short descriptive name with the year

Print, scan, and check GA real-time to confirm it works. Once you see the first scan come through with proper attribution, you're set.

Free to get started

Ready to create QR codes?

Generate custom QR codes with landing pages, analytics, and more.