QR Code Tracking How to Know How Many People Scanned Your Code

April 25, 2026 Kristen Ford 11 min read Tutorials & How-To Guides

You put a QR code on 500 flyers and distributed them at an event three weeks ago. You have no idea how many people scanned it. You cannot tell whether it drove any traffic or whether you might as well have left them at home.

This is the most common frustration with print QR codes. The code works. The destination is live. But there is no feedback loop telling you whether anyone used it.

This guide covers every free and low-cost method for tracking QR code scans. UTM parameters, free link shorteners, dedicated landing pages, and paid dynamic platforms. Step-by-step setup for each, with a clear recommendation for which fits which use case.

Why Static QR Codes Have No Built-In Tracking

A static QR code stores a URL directly inside the code pattern. When someone scans it, their phone decodes the URL and opens it. No request goes through any intermediate server. Nothing is counted. The scan is invisible to any analytics system unless you have built tracking into the destination URL itself.

This is by design. Static codes are self-contained and permanent precisely because they have no server dependency. The trade-off is that there is nothing to count. The code does its job without leaving a trace.

Dynamic QR codes work differently. They store a short redirect URL on a platform’s server. When someone scans the code, the request hits the platform’s server first, which counts the scan, then redirects to your destination. This is where analytics come from on paid dynamic platforms. But it creates a dependency: the code only works as long as the platform is active and your subscription is paid. For a full comparison, see static vs dynamic QR codes: which one do you actually need?

The good news is that you can add meaningful tracking to a static QR code without any platform dependency. The methods below show you how.

Method 1: UTM Parameters With Google Analytics (Free)

UTM parameters are tags you add to the end of a URL that tell Google Analytics where a click came from. They are free, work with any website that has Google Analytics installed, and require no third-party platform.

A URL with UTM parameters looks like this:

https://yourwebsite.com/menu?utm_source=flyer&utm_medium=qr_code&utm_campaign=summer_event

When someone arrives at your website via this URL, Google Analytics records the source, medium, and campaign separately from other traffic. You can then filter your analytics to see exactly how many visits came from this specific QR code on this specific flyer.

How to build a UTM-tagged URL

  1. Go to Google’s Campaign URL Builder.
  2. Enter your destination URL in the Website URL field.
  3. Fill in the UTM fields:
    • utm_source: where the traffic comes from. Use something specific like event_flyer, restaurant_table_card, or shop_window_sign.
    • utm_medium: the channel. For QR codes, use qr_code.
    • utm_campaign: the specific campaign. Use summer_launch, christmas_menu, or whatever makes sense for your context.
  4. Copy the generated URL with all UTM parameters appended.
  5. Paste this URL into the toolshash.com QR code generator as the Website / URL type and generate your code.

Where to find the data in Google Analytics

In Google Analytics 4 (GA4): go to Reports, then Acquisition, then Traffic Acquisition. Use the search or filter to look for your specific UTM source or campaign. You will see sessions, users, and engagement data for traffic arriving via that QR code.

Limitations of UTM tracking

UTM parameters only track visits to your website. They do not count scans that did not result in a page load. Someone who scanned but had no internet connection, or saw the URL preview but did not tap through, will not appear in the count. They also require your website to have Google Analytics installed and working.

For a rough scan count, UTM data gives you a reliable floor. The actual number of scans is at least as high as the visit count, and often higher.

Method 2: Free Link Shorteners With Click Tracking

A free link shortener creates a short redirect URL. Every time someone visits the short URL, the shortener counts the click before forwarding them to your destination. This gives you a click count even without Google Analytics on your website.

Bitly (free tier)

Bitly is the most widely used link shortening service. The free plan allows a limited number of short links per month and shows you basic click counts, top referring locations, and device type breakdowns for each link.

To use Bitly for QR code tracking:

  1. Create a free account at bitly.com.
  2. Paste your destination URL and create a short Bitly link.
  3. Copy the short Bitly URL.
  4. Paste the Bitly URL into the toolshash.com generator as the destination URL.
  5. Generate and download your QR code.

When someone scans the code, the click goes through Bitly’s server (which counts it), then forwards to your actual destination. You check the Bitly dashboard to see the click count.

The QR code you download from toolshash.com is static. The Bitly link is the redirect layer. This means the code has no expiry from the toolshash side, but the Bitly redirect needs to stay active for the code to work. Check Bitly’s current free plan terms before using this method for materials with a long print life.

TinyURL and other alternatives

TinyURL offers free URL shortening with no account required, but the free version does not include click analytics. For tracking, Bitly is the better free option.

Method 3: A Dedicated Tracking Landing Page

If you have a website with Google Analytics, creating a dedicated landing page for each QR code campaign gives you clean, reliable tracking with no third-party dependency.

The page does not need to contain much content. It can simply redirect visitors to your main menu, your booking page, or wherever the QR code is supposed to send them. What matters is that this specific URL exists only for this specific QR code.

When you look at your Google Analytics data, any visit to yourwebsite.com/summer-event-qr must have come from that QR code. There is no other way to reach that URL. This gives you an exact visit count without any UTM parameter setup.

This method works well for businesses running multiple simultaneous QR code campaigns. It isolates performance per campaign without relying on UTM parameters being set up correctly each time.

Method 4: Paid Dynamic QR Code Platforms

Paid dynamic platforms provide the most detailed scan analytics available. Because every scan goes through the platform’s server, they can record:

  • Scan count: total scans and scans over time
  • Device type: iPhone vs Android, operating system version
  • Location: country, region, or city based on IP address
  • Time of scan: hour of day and day of week patterns
  • Browser: which browser was used to open the destination

This level of detail is valuable for marketing agencies, large retailers tracking in-store engagement, and event organisers measuring attendance across session entry points.

The trade-off is cost and platform dependency. Paid platforms typically start at $5 to $20 per month depending on the number of codes and scan volume. And because the codes route through the platform’s servers, they stop working if the subscription lapses. For any use case where the printed material has a long life (product packaging, permanent signage, menus), this dependency is a significant risk.

For short-duration campaigns where the materials will be replaced regularly anyway, the dependency is less of a concern. A campaign flyer that will be reprinted in six weeks does not need a permanent QR code.

Choosing the Right Tracking Method

Situation Best method Why
Website has Google Analytics, want to know which campaign drove traffic UTM parameters Free, no dependency, integrates directly with your existing analytics
No Google Analytics, just want a click count Bitly free tier Free, easy setup, basic click data available immediately
Multiple campaigns running simultaneously, need clean isolation Dedicated landing pages No third-party dependency, exact counts, no parameter errors
Marketing agency with client reporting requirements Paid dynamic platform Detailed device and location data, campaign dashboard for client reports
Product packaging or permanent signage UTM parameters or dedicated page No subscription risk, tracking works indefinitely without renewal

What Data Actually Tells You

Knowing your scan count is a starting point, not a conclusion. A high scan count on a flyer tells you the placement was effective and the QR code was compelling enough to scan. A low scan count might mean the code was too small, the placement was wrong, the prompt was unclear, or the flyer simply did not reach a large enough audience.

Scan count combined with destination conversion data is more useful than scan count alone. If 200 people scanned a QR code linking to a booking form and 40 of them completed a booking, your conversion rate from scan to booking was 20%. That is the number worth optimising.

UTM data in Google Analytics gives you this downstream conversion data automatically. Once you can see which sessions came from a specific QR code, follow those sessions through your site to see how many converted to your goal.

Frequently Asked Questions

Can I track scans on a static QR code without any third-party tool?

Only if your destination URL is on a website with its own analytics. A QR code pointing to a page on your website will show up in your website analytics as a visit. Add UTM parameters to the URL before creating the QR code and Google Analytics attributes that visit to the QR code rather than showing it as direct traffic. No third-party tool is needed beyond Google Analytics, which is free.

Does adding tracking change how the QR code looks?

UTM parameters make the destination URL longer, which makes the QR code pattern slightly denser. For most print sizes, this difference is negligible. Using the shortened forms.gle URL or a Bitly short link counteracts this by shortening the URL before encoding it. Create the QR code with the full UTM-tagged URL and test it at the intended print size. If the pattern is too dense, run the UTM-tagged URL through a shortener before encoding it.

Can I add tracking to a QR code I already printed?

Not to the existing code. The URL is baked into the pattern. You cannot change it without creating a new code. For future placements, add UTM parameters before generating. For retroactive insight, check your website analytics for traffic that arrived without a referrer. This often indicates direct URL visits, including QR code scans. Filter for the period when materials were distributed.

Is Bitly tracking accurate for QR code scans?

Bitly counts every HTTP request to the short URL, which includes every scan where the phone connected to the internet and loaded the redirect. It does not count scans where the user saw the URL preview in their camera app but did not tap through. For most practical purposes, Bitly click counts are a reliable approximation of engaged scans rather than total scans.

Can I see where in the world my QR code was scanned?

Yes, with a paid dynamic platform or through Bitly’s paid tier. The free Bitly tier shows some location data. Google Analytics shows geographic location for website visits including those from UTM-tagged QR codes. Static codes with UTM parameters route location data through your Google Analytics account, giving you country and city-level data on QR-driven traffic.

Does QR code tracking require GDPR compliance?

Any tracking that collects personal data or uses cookies requires consent under GDPR in the UK and EU. Google Analytics is subject to these requirements. Bitly’s tracking uses IP addresses for location data, which the UK ICO and EU data protection authorities consider personal data in some contexts. If your QR codes will be scanned by EU or UK users, ensure your cookie consent mechanism covers QR-driven traffic. Check that your use of any tracking tool complies with local data protection obligations. The UK ICO provides guidance on GDPR compliance for businesses handling user data.

Spread the love

Kristen Ford

Building powerful yet simple free online tools for everyone — from developers to everyday users. I’m passionate about automation, clean UI, and open-source utility tools that save people time and simplify everyday tasks.