SmartQRCode
Pricing
  1. Home
  2. /Blog
  3. /How to measure QR scan rate
campaign strategy

How to measure QR scan rate

SmartQRCode editorial · Updated October 2026

How to measure QR scan rate starts with a denominator before you print, not with a dashboard screenshot after the show. Scans are not people. Header country not GPS. Wi-Fi files have no rate. Confirm a control-card hop check on day one or every later percentage is theatre.

How to measure QR scan rate without treating scans as people

Scan totals over time, device type, and country exist on redirect and landing-page types. They increment when the hop succeeds. They do not de-duplicate humans. If your board wants "reach," say so and use another tool. If your board wants "did anyone scan the roll-up," a hosted tracking code plus a visitor count from the booth is a rate.

Trade-show aisles make this obvious. Ten scans from one bored exhibitor is not ten buyers. Country breakdowns come from request headers, not a chip in the vinyl.

A Canva one-off cannot produce a scan rate. That is not a defect. It is the encoding.

Set a denominator before you print

  1. Name the physical unit you will print (A4 flyer, receipt, 85 mm badge, 2 m roll-up).
  2. Name how you will count exposure: flyers handed, receipts, badge holders, or people who walked the stand.
  3. Create one hosted code per unit you must split. Sharing one short URL across the flyer and the roll-up averages them.
  4. Put UTM on the hosted destination if you also read GA4. Do not bake UTM into static modules.
  5. Print at a size for the standing distance. Aisle roll-ups need more than a 2 cm table-tent rule.
  6. Scan a control card from the first box and confirm the dashboard moved by one.
  7. Each day, record scans and the exposure count. Rate equals scans divided by exposure, not scans divided by hope.
  8. At teardown, pause if the hop should die. Do not archive and assume silence; user-archived codes keep scanning.

If you cannot name step 2, you do not have a rate. You have a vanity count.

Device and country fields are headers not identity

Device type and country are inferred from the request, not from a login. VPNs lie. Shared iPads at a booth all look similar. Analytics cannot see the scanner's name or email. Do not present a country table as a travel survey.

Use those fields to catch a broken placement (all scans from one staff phone at 2 a.m.) not to personalise.

A website hop and a landing-page type both can record scans. Wi-Fi cannot. Mixing them on one report is how rates go to zero for a "campaign" that was mostly network joins.

Wi-Fi and other static files have no scan rate

The payload never hits a server. "How did the flyer do?" cannot be answered from the symbol. You can count flyers left in the stack, or you can recreate the job as hosted.

Do not screenshot a preview and call that a tracking plan. The preview encodes /qr-preview.

If the brief demanded a rate and someone already printed static, the measurement plan failed before the show. Reprint hosted for the next flight. Keep the static leftovers as decor.

Failure modes of a scan-rate dashboard

Counting the same control-card tests as visitors. Comparing a paused day to a live day without noting pause. Treating 301-cached phones as "the campaign died." Using one code for two cities. Reporting scans as people in a slide.

Print-run A/B still needs different destinations. Two colours of one static URL cannot yield two rates.

Gloss, size, and dark grounds suppress scans. A low rate can be a print failure. Test-scan the physical piece before you fire the agency.

How to pick an exposure count you can actually collect

Booth visitors from a badge scan are a better denominator than "footfall vibes." Receipts from the POS are better than "covers we think we had." If the venue will not give you a number, you cannot have a rate. You can still have a scan count. Call it a count.

Header country not GPS will sort "all scans from the office subnet" faster than a narrative about campaign death. If Tuesday is 100 percent one device type at 1 a.m., someone left a phone looping the poster. Subtract those hops before you present a rate.

Wi-Fi files have no rate, and mixing them into the same slide as hosted roll-ups makes the Wi-Fi line look like a failed digital channel. Split the slide. Static joins are credentials. Hosted hops are countable.

Control-card hop check every morning. If the control card does not increment, the dashboard is not measuring the show. Fix that before you fix the creative.

A paused day is not a zero-rate creative failure. Note pause on the log so nobody presents Tuesday as proof the art died. User-archived codes keep scanning, so an "ended" campaign that was only archived will keep adding hops. Pause if the rate should go to zero in the world. Confirm with the control card: paused page means mute worked.

Trade-stand roll-ups scanned from the aisle will under-count if the symbol sits in the footer. Fix placement before you declare a rate. A 2 cm footer at two metres is a print failure. Size for two to four metres, lift to chest height, scan while walking, then start the clock on the denominator.

Write the rate formula on the brief in words: scans divided by flyers handed, or scans divided by receipts, or scans divided by badge holders. Then name who collects the denominator each night. If that person is "whoever is at the stand," you will get a count and a shrug. Device breakdowns from headers will show you a staff iPad looping at close. Subtract it. Country-level location is not a GPS trace of the aisle. Do not draw heat maps from it. Wi-Fi remains unmeasurable from the symbol. If the stand's "engagement" was mostly network joins, say that in prose. Do not invent a Wi-Fi scan rate. Confirm the hosted control card still increments after teardown so you know pause, if you used it, is the reason the next morning is quiet.

If leadership wants a percentage, they must accept a denominator you can collect. Invented footfall will make a real scan count look like a failed campaign. Print the formula on the daily sheet. Fill both numbers. Divide. Stop when the denominator is a guess. A Canva one-off still cannot produce the numerator. Host the hop or drop the rate.

When counting is the wrong success metric

A memorial plaque, a single Wi-Fi tent, a wedding seating chart. Nobody needed a rate. A free static generator is the right file.

When you do need a rate, write the denominator on the brief, print hosted, and scan the control card before doors open. Then divide. Stop calling the quotient people.

Questions this raises

Pick it before print: impressions, flyers handed, receipts, or booth visitors. Scan count over that number is a rate. Scan count alone is a count.

The same person scanning twice is two scans on most public counters. Analytics cannot see a name or email.

No. A static file has no scan count. If the payload never hit a server, the symbol cannot answer how the flyer did.

From request headers and user-agent strings, not from a GPS chip in the code. Country is header-level.

Pause stops new hops. History you already stored is a separate question from whether Tuesday still redirects. Confirm with a control-card scan.

Keep going

The tools and playbooks this post refers to, one click away.

Generator

tracking generator

Open it
Generator

website generator

Open it
Generator

dynamic generator

Open it
Use case

trade shows

Read the playbook
Guide

offline to online qr tracking

Read it
Guide

qr code campaign utm tags

Read it

Make the code this post is about

$1.99 for 7 days, then a paid plan. Pick a type, brand it, and edit the destination whenever you like, even after it is printed.

Create a QR codeSee pricing
SmartQRCode

Dynamic QR codes you can edit after printing, with scan analytics on every one. From a single table tent to a warehouse of asset tags. Pay once or subscribe.

Create a QR codeTalk about Business

QR code types

  • Website QR code
  • Menu QR code
  • WiFi QR code
  • PDF QR code
  • Business card QR code
  • WhatsApp QR code
  • Google review QR code
  • Event QR code
  • Location QR code

More QR codes

  • Text QR code
  • Image QR code
  • Video QR code
  • Social media QR code
  • App download QR code
  • Google Form QR code
  • Business profile QR code
  • All QR code types

Features

  • Dynamic QR codes
  • QR codes with tracking
  • QR code with logo
  • Custom QR code design
  • QR codes that never expire
  • One-time payment QR code
  • No-subscription QR codes
  • Unlimited-scan QR codes

Business

  • QR codes for business
  • Bulk QR code generator
  • QR code API
  • QR code webhooks
  • Custom scan domains
  • White label QR codes
  • Team accounts and roles
  • QR code management platform

Solutions

  • Restaurants
  • Retail
  • Events
  • Healthcare
  • Real estate
  • Hotels
  • All use cases

Resources

  • Guides
  • Compare QR generators
  • Static vs dynamic
  • QR code cost
  • Buy a QR code
  • Cheap QR codes
  • Pricing
  • Help centre
  • About us
  • Contact us
GDPR compliantSSL securedPrivacy first
Terms of servicePrivacy policySecurity·© 2026 SmartQRCode

QR Code is a registered trademark of DENSO WAVE INCORPORATED.