Skip to main content
Guides··6 min read

How to Track QR Code Scans (Without Paying for Dynamic QR Codes)

You do not need expensive dynamic QR codes to measure results. UTM parameters and free analytics tools tell you everything you need to know.

Jess manages marketing for a mid-size fitness studio. Last fall, she printed 10,000 flyers with a QR code linking to a free trial sign-up page and distributed them across three neighborhoods. The campaign cost $1,200 in design and printing. When her boss asked how many people actually scanned the code, Jess had no answer. The sign-up page had gotten some traffic, but she could not tell how much came from the flyers versus Google, Instagram, or word of mouth. She had spent over a thousand dollars on a campaign she could not measure.

For her next campaign, Jess added UTM parameters to her QR code URLs and set up proper tracking in Google Analytics. This time, she knew exactly how many scans came from each neighborhood, which flyer design performed better, and that the campaign generated 47 trial sign-ups at a cost of $25.53 each. The technology was the same. The only difference was knowing how to track it. Here is how you can do the same thing.

What Are UTM Parameters?

UTM parameters are small tags you add to the end of a URL that tell your analytics tool where the traffic came from. They do not change what the user sees or experiences. They simply add tracking information that shows up in your analytics dashboard. Think of them as invisible labels on your links.

A normal URL looks like this: yoursite.com/free-trial. A URL with UTM parameters looks like this: yoursite.com/free-trial?utm_source=flyer&utm_medium=qr&utm_campaign=spring2026. When someone scans the QR code and lands on that URL, Google Analytics records the source as 'flyer,' the medium as 'qr,' and the campaign as 'spring2026.' You can then filter your analytics to see exactly how much traffic and how many conversions came from that specific QR code.

The Five UTM Parameters You Should Know

  • utm_source: Identifies where the traffic comes from. For QR codes, this might be 'flyer,' 'poster,' 'business-card,' or 'packaging.'
  • utm_medium: Describes the marketing medium. Use 'qr' or 'qr-code' to distinguish QR scans from other traffic sources like email or social.
  • utm_campaign: Names the specific campaign. Examples include 'spring-sale-2026,' 'grand-opening,' or 'menu-launch.'
  • utm_term: Optional. Useful for identifying specific variations, like 'design-a' versus 'design-b' in an A/B test.
  • utm_content: Optional. Helps differentiate between different QR code placements, like 'table-tent' versus 'window-sign.'

Keep your UTM values lowercase, use hyphens instead of spaces, and be consistent across campaigns. If you use 'flyer' in one campaign and 'Flyer' in another, analytics will treat them as two different sources.

Step-by-Step: Set Up QR Code Tracking

1

Build your UTM URL

Use Google's free Campaign URL Builder or manually add parameters to your destination URL. Start with the three required parameters: utm_source, utm_medium, and utm_campaign. For example, if you are putting a QR code on a trade show banner, your URL might look like: yoursite.com/promo?utm_source=trade-show&utm_medium=qr&utm_campaign=expo-2026.

2

Shorten the URL if needed

Long URLs with UTM parameters create more complex QR codes with denser patterns. If your URL is very long, use a URL shortener to simplify it. This produces a smaller, cleaner QR code that is easier to scan, especially at small print sizes. Some shorteners also provide their own click analytics as a bonus.

3

Generate your QR code with the tracking URL

Paste the full UTM-tagged URL (or its shortened version) into your QR code generator. The QR code will encode the entire URL including all the tracking parameters. When someone scans it, they land on your page and the parameters are captured automatically.

4

Verify tracking in Google Analytics

After your QR code is live, check Google Analytics under Acquisition to see traffic attributed to your UTM parameters. You should see your source, medium, and campaign name appearing in the reports. If you do not see them, verify that the UTM parameters are correctly formatted and that your analytics tracking code is installed on the destination page.

5

Create unique URLs for each placement

If you are placing QR codes in multiple locations, give each one a unique URL with different UTM values. For example, use utm_content=front-window for the window sign and utm_content=table-tent for table placements. This lets you compare performance across locations and figure out where your codes get the most engagement.

Using URL Shorteners with Built-In Analytics

If you do not have Google Analytics set up on your destination page, or if you want a simpler tracking solution, URL shorteners with built-in analytics are an excellent alternative. Services like Bitly, Short.io, and Dub.co let you create shortened links and see how many times each link was clicked, along with data like location and device type.

The process is simple. Shorten your destination URL with the service, then use that shortened URL to generate your QR code. Every scan registers as a click on the shortened link, and you can view the data in the shortener's dashboard. This approach works well for small businesses and one-off campaigns where setting up full analytics infrastructure would be overkill.

A/B Testing Your QR Code Placements

Once you can track scans, you can start experimenting. A/B testing different QR code placements, designs, or calls-to-action tells you what actually works with your audience rather than guessing. The concept is straightforward: create two versions, give each a unique tracking URL, and compare the results.

  • Test different placements by using unique UTM content values for each location. Compare a QR code on the counter versus one in the checkout bag to see which gets more scans.
  • Test different calls-to-action by printing two versions of a flyer with different text next to the QR code. Does 'Scan for 20% Off' outperform 'Scan to See Our Menu'? The data will tell you.
  • Test design variations by comparing a branded QR code with your logo against a plain black-and-white code. Track whether the branded version builds enough trust to increase scan rates.
  • Run tests for at least two weeks before drawing conclusions. A single day of data can be misleading due to foot traffic variation, weather, and other external factors.

Measuring ROI on QR Code Campaigns

Tracking scans is useful, but the real value is connecting scans to business outcomes. If your QR code links to a sign-up page, track how many scanners actually sign up. If it links to a product page, track how many scans lead to purchases. Google Analytics lets you set up conversion goals that measure exactly this: what percentage of QR code visitors take the action you care about.

To calculate ROI, compare your total campaign cost (printing, distribution, and design) against the revenue or value generated by the conversions you tracked. If you spent $500 on a flyer campaign and tracked 30 new customers who each spent an average of $50, your campaign generated $1,500 in revenue from a $500 investment. Without tracking, you would never know whether that $500 was well spent or wasted.

Even if your QR code links to something that does not directly generate revenue, like a menu or an information page, you can still measure engagement. Track time on page, bounce rate, and pages per session for QR code visitors to understand how they interact with your content compared to other traffic sources.

Start Tracking Your Next Campaign

You do not need expensive dynamic QR codes or enterprise analytics platforms to measure your QR code campaigns. UTM parameters are free, URL shortener analytics are free or low-cost, and Google Analytics is free. The only investment is a few extra minutes of setup before you generate your code. That small effort is the difference between flying blind and knowing exactly what works.

Frequently Asked Questions

Can I track scans on a free static QR code?
Yes. While static QR codes do not have built-in scan tracking, you can track scans by adding UTM parameters to your URL before generating the code. These parameters are picked up by Google Analytics or any other analytics tool on your destination page. You can also use a URL shortener with built-in click analytics to track how many times the shortened link is accessed.
Do UTM parameters affect the QR code's scanability?
UTM parameters make the encoded URL longer, which increases the density of the QR code pattern. In most cases, this has no noticeable impact on scanability. However, if your base URL is already very long, adding UTM parameters on top can create a dense code that requires a slightly larger print size. Using a URL shortener before generating the QR code solves this by keeping the encoded URL short and the code pattern simple.
What is the difference between dynamic QR codes and UTM tracking?
Dynamic QR codes use a redirect server that logs each scan before forwarding the user to the destination URL. This gives you scan counts and sometimes location data, but it requires a paid subscription and depends on the provider's servers staying online. UTM tracking works with free static QR codes by tagging the destination URL with parameters that your own analytics tool records. UTM tracking is free, does not depend on third-party servers, and integrates directly with Google Analytics for detailed reporting.

Related Articles

Ready to Create Your QR Code?

Free forever. No sign up, no watermark, no limits.

Get Started