free qr generator

How to Track QR Code Scans

Knowing how many people scan your QR code — and where and when — is critical for measuring campaign ROI. Here's how to do it for free and what paid options offer.

3x
Better ROI with UTM tracking vs untracked QR codes
Bitly
28M+
Websites globally using Google Analytics 4
W3Techs, 2024
UTM
Standardized by Urchin Software (acquired by Google) — most widely used campaign tracking method
Google / Urchin

Can You Track a Static QR Code?

The short answer: not by default, but yes with UTM parameters.

A static QR code encodes a URL directly into its pattern. When someone scans it, their phone simply opens that URL. The QR code itself generates no data — there's no server involved, no ping recorded, no counter incremented. The QR code is just a fancy way to open a link.

However, if the URL you encode contains UTM tracking parameters, then Google Analytics (or any analytics platform) will record every visit with full attribution. You get scan count, geographic data, device types, and time-of-day data — all for free, using tools you probably already have.

According to Bitly, businesses that track QR code scans with UTM parameters see 3x better ROI on print campaigns versus untracked QR codes — a compelling reason to invest the two minutes it takes to tag your URL. This is the method used by most professional marketers for static QR code campaigns. See also: dynamic vs static QR codes for context on the difference.

UTM Parameters Explained

UTM parameters are small pieces of text appended to a URL that tell Google Analytics where a visitor came from. They look like this:

https://yoursite.com/landing-page?utm_source=flyer&utm_medium=print&utm_campaign=spring2025

UTM parameters were standardized by Urchin Software (later acquired by Google) and remain the most widely used campaign tracking method globally. Google Analytics 4 is now used by over 28 million websites worldwide (W3Techs, 2024), meaning most analytics practitioners are already equipped to interpret this data. The five standard UTM parameters are:

utm_source
Where the traffic came from. For QR codes, use the physical location or material: flyer, menu, poster, business-card
utm_medium
The marketing channel. For printed QR codes: print. For digital screens: display
utm_campaign
The campaign name. Something memorable and dateable: summer-launch-2025, store-opening
utm_content
Optional: differentiates variants. Useful if you have multiple QR codes in the same campaign: table-top vs window-sticker
utm_term
Optional: keyword-level tracking. Rarely used for QR codes — leave this blank unless you have a specific need

Step-by-Step: Track QR Codes Free with Google Analytics

  1. Make sure Google Analytics is on your website

    You need GA4 (Google Analytics 4) installed on the destination website. If you don't control the destination site, you can't use this method — consider a URL shortener instead (see below).

  2. Build your UTM-tagged URL

    Use Google's free Campaign URL Builder at ga-dev-tools.google, or construct the URL manually. Example: https://yoursite.com/?utm_source=restaurant-menu&utm_medium=print&utm_campaign=q1-2025

  3. Generate your QR code from the tagged URL

    Paste the full UTM-tagged URL (including the ?utm_source=... part) into QRMake's generator. The QR code will encode the entire URL, including the tracking parameters.

  4. Deploy and wait for scans

    Print and place your QR code. Data appears in Google Analytics within a few hours of the first scan.

  5. View results in Google Analytics

    In GA4, go to Reports → Acquisition → Traffic Acquisition. Filter by Session source/medium to see your campaign. Or use Explore → Free Form to build a custom report filtered by campaign name.

Pro Tip

Create a different UTM-tagged URL for each physical location. Same destination, different utm_source value for each branch, store, or placement spot. You'll see exactly which location drives the most scans without any paid tools.

What Data Can You Actually See?

With UTM tracking via Google Analytics, each QR scan appears as a web session with the following data:

Scan count

Total sessions attributed to your campaign. One session = one scan (assuming the user lands on your page).

Geographic location

Country, region, and city of the scanner, based on IP geolocation. Useful for multi-location campaigns.

Device type

Mobile vs tablet vs desktop, operating system (iOS/Android), and browser. Most QR scans are mobile.

Time and date

When scans occurred, by hour, day, and week. Reveals peak engagement times for your campaign placements.

Behaviour on site

What users did after scanning: pages visited, time on site, conversions, purchases — everything GA4 normally tracks.

Campaign attribution

Which campaign, source, and medium drove the session. Filter and compare across all your QR campaigns.

Tracking with a URL Shortener (Alternative Free Method)

If you don't control the destination website (e.g., a Google Form, a YouTube video, or someone else's booking page), you can't add UTM parameters to their analytics. Instead, use a URL shortener that provides click analytics:

Be aware: URL shortener links depend on the shortener service remaining live. If Bitly changes its free tier or shuts down, your QR codes stop working.

Dynamic QR Codes: Paid Tracking Built In

Dynamic QR code services (like QR Tiger, Beaconstac, or Flowcode) provide scan tracking as a core feature. The QR code points to a redirect URL managed by the service, which counts every scan and records metadata before redirecting to your destination.

What dynamic services typically track:

The trade-off: most charge $5–$30/month, your QR codes depend on their server staying live, and you're trusting them with your audience's behavioural data. For a full comparison, see our guide on dynamic vs static QR codes.

Static vs Dynamic Tracking Comparison

Feature Static + UTM (Free) Dynamic QR (Paid)
Cost Free $5–$30/month
Scan count Yes (via GA4) Yes (native)
Geographic data Yes (via GA4) Yes (native)
Device data Yes (via GA4) Yes (native)
Change URL after printing No Yes
Works if service shuts down Yes (static URL) No
Requires destination control Yes (for GA4) No
Privacy Data stays in your GA4 Data held by vendor

Create a Trackable QR Code

Generate a QR code from your UTM-tagged URL — free, no account needed, download as PNG or SVG.

Frequently Asked Questions

Can you track who scans a QR code?

You can track when, where (by city/country), and on what device a QR code is scanned, but you cannot identify the specific individual. The most common free method is to add UTM parameters to your destination URL before generating the QR code — Google Analytics then records every scan as a session with full attribution data including location, device, and time.

What is a UTM parameter and how do I add one to a QR code?

UTM parameters are small text snippets appended to a URL that tell Google Analytics where a visitor came from. To use them for QR tracking: build your URL with UTM tags (e.g., yoursite.com?utm_source=flyer&utm_medium=print&utm_campaign=spring2025), then paste that full tagged URL into QRMake and generate your QR code. Every scan will appear in Google Analytics under Traffic Acquisition with your campaign attribution.

What is the difference between static and dynamic QR code tracking?

Static QR codes encode the destination URL directly — tracking requires UTM parameters in the URL and Google Analytics on the destination site. Dynamic QR codes use a redirect service that counts every scan server-side before redirecting, so tracking is built in and doesn't require destination site access. Dynamic services typically cost $5–$30/month; static + UTM tracking is completely free but requires you to control the destination site.

What data can I see from QR code scans in Google Analytics?

With UTM-tagged QR codes and Google Analytics 4, you can see: total scan count (sessions), geographic location by country/region/city, device type and operating system (iOS vs Android), browser, time and date of scans, and full on-site behaviour after scanning including pages visited, time on site, and conversions. According to W3Techs, Google Analytics 4 is used by over 28 million websites globally.

Do I need to pay for QR code scan tracking?

No. If you control the destination website and have Google Analytics installed, UTM parameter tracking is completely free. According to Bitly, businesses that track QR code scans with UTM parameters see 3x better ROI on print campaigns versus untracked QR codes — and the entire setup costs nothing. Paid dynamic QR services add convenience but are not required for comprehensive analytics.

How do I add UTM parameters to a URL before making a QR code?

Use Google's free Campaign URL Builder at ga-dev-tools.google — enter your destination URL, source (e.g. "flyer"), medium (e.g. "print"), and campaign name. The tool outputs a tagged URL you can paste directly into QRMake. Alternatively, add the parameters manually: yoursite.com/page?utm_source=flyer&utm_medium=print&utm_campaign=summer2025. UTM parameters were standardized by Urchin Software (later acquired by Google) and remain the most widely used campaign tracking method.