QuitURL Header
QR Code Analytics Guide · 2026

How to Track QR Code Scans: A Complete Guide to Analytics & ROI

QR codes only pay off when you can see who scans them, where, when, and what they do next. This guide shows US marketers how to measure scans, attribute sales, and prove ROI on every print placement.

QR analytics · Spring packaging campaign
Last 30 daysLive
18,420Total scans
11,236Unique scans
14Countries

Scans per daySample data

Device breakdown

iOS
64%
Android
33%
Desktop
3%

QR code scan tracking is the practice of recording every scan of a QR code, including when it happened, where, on what device, and what the scanner did next, so you can judge a print placement the way you judge a digital ad. Without it, a poster, a product package or a direct-mail postcard is a black box. You pay for the print run and hope.

This guide is written for US marketers who need numbers they can defend in a budget meeting. It covers what scan data you can collect, how to read total, unique and repeat scans, what "GPS" tracking really means, how to connect scans to Google Analytics 4 with UTM parameters, and how to turn scans into a ROI figure and a sales attribution story.

Everything here rests on one technical fact. Only dynamic QR codes can be tracked. A dynamic code encodes a short redirect link instead of the final destination, so every scan passes through a server that can log it, and you can change the destination after printing. A static code encodes the destination directly. The phone goes straight there and nothing is recorded. Every section below assumes dynamic codes.

Why it matters

Why QR Code Tracking Matters for US Marketers in 2026

Scanning is a mainstream habit now. The open question is whether you can prove what it earns you.

Industry estimates put the number of US smartphone users who scanned a QR code at about 99.5 million in 2025 (Statista), with eMarketer projecting 102.6 million for 2026. That is roughly one in three Americans, and it includes the people you most want to reach: shoppers standing in your store, customers holding your package, and commuters looking at your ad.

Adoption is only half the story. The other half is accountability. Marketing leaders at US small and local businesses are asked to tie every dollar to revenue, and print is the channel most likely to lose that argument. It does not necessarily underperform. It was just never measured. A QR code is the cheapest measurement device print has ever had, because each scan is a timestamped, location-tagged event you can compare across placements, creatives and cities.

99.5M
US smartphone users who scanned a QR code in 2025
Source: Statista
102.6M
Projected US QR code scanners in 2026
Source: eMarketer
58%
Share of US mobile traffic on iOS (Android: 42%)
Source: StatCounter, June 2026

What changes when you track scans

  • You stop guessing which placements work. A menu insert in Austin and a window decal in Seattle can be compared on scans per impression and revenue per scan.
  • You can optimize after printing. Dynamic codes let you swap the destination, run a split test or fix a broken landing page without reprinting a single sign.
  • You can defend your budget. Scan data plus GA4 conversions turns "brand awareness" into a cost per acquisition your CFO can read.
  • You learn about offline audiences. Device mix, time of day and city are invisible in print until a scan reveals them.

A note on "average scan rate" benchmarks

You will see average QR scan rates quoted online. Treat them cautiously. Scan rate depends on placement, call to action, audience and how impressions are counted, and there is no authoritative cross-industry benchmark. Build your own baseline from your first campaign. Section 3 shows how.

The phone is already in the shopper's hand

Pew Research Center's mobile fact sheet reports that 91% of US adults own a smartphone. Both iOS and Android cameras read QR codes without a separate app, so the old objection that nobody knows how to scan has mostly disappeared. What remains is a measurement problem: you can print a code anywhere, but unless it is dynamic, you will never see the scan.

What this looks like in practice: a coffee chain in Austin

Picture a regional coffee chain with 14 shops in Austin that prints one QR code on cup sleeves and counter signs, both pointing to a loyalty sign-up page. Sign-ups rise, and the owner assumes the program works. With one dynamic code per placement, a very different picture appears. Sleeves generate most of the scans, but counter signs convert at roughly twice the rate. The next print run shifts budget toward counter signs and rewrites the sleeve call to action. That is the shift this guide is about: from "it seems to be working" to "this placement earns X per scan."

Pro tip

Do not wait for a full rollout. Put a tracked dynamic code on a single placement for two weeks, record the result, and use it as the baseline every future placement has to beat.

The Austin coffee chain is an illustrative scenario, not a customer.

Data

What Data You Can Actually Track (The Full List)

Six families of data, from raw scan counts to revenue outcomes.

A dynamic QR code logs an event each time it is scanned. What you can see depends on your platform and plan, but a mature tracker exposes these six families of data.

Scan volume

Total scans, unique scans, repeat scans, scans per day and per hour, and how quickly scans ramp after launch.

Core

Location

Country, state and city, plus precise location on platforms that support it when the scanner grants permission.

Where

Device

Operating system (iOS or Android), device type, browser and language, all collected without identifying the person.

Anonymous

Time

Timestamp, day of week, hour of day and time zone, so you can see when each placement actually gets used.

When

Campaign context

Which code, folder, placement or UTM tag produced each scan, so results roll up by campaign or break out by placement.

Which

Outcomes

What happened next: click-throughs, form fills and purchases, measured through GA4, tracking pixels or your CRM.

What next

What you cannot track

Be precise about the limits. A QR scan does not reveal a name, email address or phone number. You see an anonymous device event. Identity only appears when the scanner volunteers it, through a form, a login or a coupon redemption. Treat that as a feature, because it keeps your scan data on the right side of privacy law (see Section 18).

QuitURL's dynamic QR code generator records scans by location, device and time in the same dashboard as your short-link clicks. Analytics history runs from 108 days on Starter up to unlimited on Pro and Business, and AI Statistic Insights is included on every plan.

QR analytics · Spring packaging campaign · Last 30 days
Spring packaging QRDynamic QR code · 5 placements
Sample data Live
18,420Total scans▲ 22% vs prior 30 days
11,236Unique scans▲ 18%
14Countries94% from the US
39%Repeat scan rate1.64 scans per person

Scans per dayTotalUnique

05001,0001,500Day 1Day 8Day 15Day 22Day 30Mailer drop: 1,380 scans

Device breakdown

iOS
64%
Android
33%
Desktop
3%

Phones account for 97% of scans, as you would expect from a printed code.

Top countries

United States
17,310
Canada
612
United Kingdom
288
Mexico
74

Top US cities

New York
2,860
Los Angeles
2,310
Chicago
1,740
Houston
1,420
Sample QR analytics dashboard. Figures are illustrative.

From raw scan to decision: what each field is for

Collecting data is easy. Knowing which field answers which business question is what separates a useful report from a pile of numbers. Use this table as a quick map.

Fields available vary by platform and plan.
Data fieldHow it is capturedDecision it supports
TimestampServer logs the moment the short link loadsWhen to schedule follow-up messages and staffing
City and stateIP geolocation lookupWhich metros get more print, and where to run local ads
Operating systemUser-agent stringWhich platforms to test the landing page on
Referrer or code IDUnique short link per placementWhich placement earns the next dollar of budget
UTM tagsParameters on the destination URLHow GA4 credits sessions and conversions
Conversion eventGA4 key event or tracking pixelWhether scans turn into revenue

Pro tip

Add a store or location ID to the name of every code, such as austin-south-lamar-sleeve. Six months later, you will be able to filter reports without guessing which code belonged where.

One habit pays off immediately: before launch, write down the single decision each report will inform. If you cannot name the decision, you probably do not need the field on your dashboard.

See every scan in one dashboardDynamic QR codes with location, device and time analytics start at $4.44 a month, or $88 once.

Compare QuitURL plans
Metrics

Total Scans vs Unique Scans vs Repeat Scans: What to Measure

Three numbers that look similar and answer three different questions.

Total scans counts every scan event. Unique scans estimates how many different people (strictly, devices) scanned. Repeat scans is the gap between them: total minus unique. Reporting only one of the three is the most common way marketers mislead themselves.

MetricWhat it tells youWatch out for
Total scansHow much engagement the placement generatesInflated by your own testing, bots and link-preview crawlers
Unique scansReach: how many people the code actually touchedAn approximation built from cookies or IP plus device signals; shared Wi-Fi and cleared cookies blur it
Repeat scansIntent and utility: do people come back to this code?High repeat is great for menus and manuals, a warning sign for a one-time coupon
Scan ratePlacement effectiveness: scans per impressionNeeds an honest impression estimate, such as flyers distributed or foot traffic

The formulas

Repeat rate = (total scans − unique scans) ÷ total scans
Scans per person = total scans ÷ unique scans
Scan rate = unique scans ÷ impressions Example: 18,420 total and 11,236 unique give a 39% repeat rate and 1.64 scans per person.

How to read the ratio

Context decides whether repeat scanning is good news. On a restaurant table tent, diners rescan the menu, so a high repeat rate means the code is useful. On a coupon flyer, repeat scans can mean people are sharing or redeeming the offer more than once. Compare each code against its own history, not against a generic benchmark.

Filter your own scans first

Before you report any number, exclude QA scans from your team and known bot traffic. Link-preview crawlers and security scanners can add phantom scans in the first hours after a code goes live.

Scan trend · Total vs unique · 30 days
Daily scansA direct-mail drop lands around day 12
Sample data

Total vs unique scansTotalUnique

05001,0001,500Day 1Day 8Day 15Day 22Day 30Mailer drop: 1,380 scans
Scan trend chart. A mailer drop creates a four-day spike, then scans settle at a higher baseline.

Worked example: a Houston fitness studio

A Houston fitness studio hands out 2,000 trial-class flyers outside a farmers market. Over two weeks the code records 340 total scans from 260 unique scanners. The unique scan rate is 13% (260 ÷ 2,000), the repeat rate is about 24% ((340 − 260) ÷ 340), and each person scanned 1.3 times on average. Forty-one people book a class, which is a 15.8% conversion rate on unique scanners. Reporting "340 scans" alone would hide both the reach and the conversion story.

How to build your own scan-rate baseline

  1. Count impressions per placement. Flyers handed out, packages shipped, or average weekly foot traffic past the sign.
  2. Run the code for at least two weeks. One weekend is too noisy, and mailers need several days to land.
  3. Calculate the unique scan rate for each placement, then the conversion rate on unique scanners.
  4. Record the median and the range across placements. Those numbers, not an industry average, become your benchmark.

Pro tip

Headline with unique scans and keep total scans as the supporting figure. Executives hear "scans" and picture people. Unique scans is the number closest to that picture.

Quick question: how many scans are enough to trust the data?

For scan counts and ratios, a few hundred scans per placement is enough to see direction. For comparing conversion rates between variants, you need far more, because small differences hide inside normal variation. Section 9 explains the sample sizes involved.

Location

GPS and City-Level Location Tracking Explained

"GPS" is the popular term, but there are really two ways to locate a scan.

IP-based geolocation is the default. When a phone loads your short link, the server looks up the scanner's IP address in a geolocation database and returns a country, state and usually a city. It needs no permission and works on every scan. It is accurate at the city or metro level, which is enough for most marketing decisions, but it can drift when a phone is routed through a distant carrier gateway or a VPN.

Precise (GPS) location asks the scanner's device for coordinates, so the landing page must request permission. Only scans where the person taps "Allow" include coordinates, which means precise data covers a minority of scans and skews toward people comfortable sharing their location. Use it as a supplement, never as the only source.

When city-level is enough

For deciding which metros get more print, IP-based city data is plenty. Reach for precise location when you must separate places that sit close together: two stores in the same city, or booths on one trade-show floor.

How US marketers use location data

  • Rank metros on a national campaign. Compare scans per placement in New York, Chicago and Phoenix instead of reading one blended total.
  • Verify local placements. A window decal in Denver or a real estate yard sign in Atlanta should be scanned locally. Scans from elsewhere can flag a misprint or a code pasted over by someone else.
  • Feed paid media and local search. Build geo-targeted ads around the cities where print already performs, and pair them with QR codes for local SEO.
  • Spot out-of-market interest. A code in a national magazine will be scanned in all 50 states. The city list shows where demand really sits.

Precise location needs consent

Collect coordinates only after a clear permission prompt, and describe what you do with them in your privacy notice. Section 18 covers CCPA and GDPR.

QuitURL's QR analytics include GPS-level location tracking alongside city and country reports. The pricing page shows what each plan includes.

Scan map · United States · Last 30 days
Where your QR codes are scannedBubble size shows scan volume per metro
Sample data
New YorkLos AngelesChicagoHoustonAtlantaDallasSan FranciscoPhoenixSeattleDenverMiamiBoston

Top US metrosScans

New York
2,860
Los Angeles
2,310
Chicago
1,740
Houston
1,420
Atlanta
1,180
Dallas
980
San Francisco
940
Phoenix
860

Stylized map. Positions are approximate.

Sample GPS and city-level scan map across US metros. Figures are illustrative.

City patterns worth testing

Location data rewards specific hypotheses. A New York retailer, for example, will find that IP-based city data usually reports every borough as "New York." If neighborhood detail matters, use a separate dynamic code for each store or neighborhood so the code itself carries the location. A Miami restaurant group may see scans from out-of-state visitors rise during winter tourism months and fall in summer, which should change when it runs promotions. An Austin brand with a large university population can compare scan activity near campus against the suburbs to decide where to hand out printed samples.

None of these patterns is a rule. Treat them as hypotheses, then let two or three weeks of scans tell you whether they hold.

How to set up location reporting

  1. Create one dynamic code per physical location and name it with the city and store ID.
  2. Confirm the placement city in your records so you can compare it with where scans actually come from.
  3. Review the city report after the first 200 scans. Look for scans far from the placement city.
  4. Segment by metro, not just by state, when you compare performance across markets.

Location mistakes to avoid

  • Treating VPN and carrier-routed scans as real locations. A small share of scans will always appear in the wrong city.
  • Reading city-level data as street-level data. If you need to separate two stores in one city, use separate codes.
  • Ignoring out-of-market scans. They often reveal demand you did not plan for.

Know which cities scanLocation, device and time analytics are built into every dynamic QR code.

See QR tracking plans
Devices

Device Analytics: iOS vs Android vs Desktop Scans

Your device mix is a quick test of who you are really reaching.

StatCounter's June 2026 data puts iOS at 58.35% and Android at 41.62% of US mobile usage. That is your baseline. A campaign whose scans run 64% iOS is over-indexing with Apple users. One that skews 60% Android is probably reaching a different audience, region or channel than you assumed. Neither is wrong, but each should change what you do next.

What to do with device data

  • Test your landing page on the real mix. If a third of scans come from Android, QA on Chrome for Android, not just Safari on an iPhone. Slow or broken checkout on one platform quietly drags down conversion.
  • Route by device. One printed code can send iPhone users to the App Store and Android users to Google Play. QuitURL's device targeting is available on Pro and Business plans.
  • Read desktop scans carefully. A desktop "scan" is rarely someone pointing a camera at paper. It usually means team testing, a forwarded link, or a code shown on a slide or screen. A high desktop share is a data-quality flag.
  • Track tablets separately. In retail and hospitality, tablets often mean staff or kiosk scans rather than customer demand.
Device analytics · iOS vs Android vs desktop
Campaign device mix vs US baselineA skew away from the baseline tells you about your audience
Sample data
Your QR campaign 18,420 scans
iOS 64%Android 33%
US mobile baseline StatCounter, June 2026
iOS 58.35%Android 41.62%
iOSAndroidDesktop and other
Sample device breakdown for a campaign compared with the US mobile baseline.

What your device mix is telling you

The 58% and 42% figures are the US mobile baseline from StatCounter, June 2026.
Pattern in your dataLikely meaningWhat to do
iOS share well above 58%The audience skews toward Apple users, or the placement sits in a premium venueCheck that Apple Pay and Safari rendering work flawlessly
Android share well above 42%A broader price range of devices, or a different region than assumedTest on older Android devices and slower connections
Desktop share above 10%Team testing, forwarded links, or a code shown on a screenFilter internal traffic and check where the link was shared
Tablet scans in a storeStaff or kiosk scans, not shopper demandExclude them from conversion reporting

Build a device test matrix before you print

  1. List the five most common devices in your scan data, or use the iOS and Android split as a starting point.
  2. Scan the printed proof, not the screen version. Glare, paper texture and size change scan behavior.
  3. Load the landing page on a slow connection. Throttle to a 4G profile in your browser developer tools.
  4. Complete the conversion step on each device. A form that fails on one platform will silently lower your conversion rate.
  5. Re-test after every landing page change, because a new script can break checkout on one operating system.

A short scenario: a Chicago home-goods store

A Chicago home-goods store notices that Android scans convert at half the rate of iPhone scans. Nothing is wrong with the audience. The checkout page loads a heavy script that stalls on mid-range Android phones. Once the store removes it, the gap closes. Without device analytics, the owner would have blamed the shoppers.

The Chicago store is an illustrative scenario, not a customer.

Timing

Time-of-Day and Day-of-Week Analysis: When Your Audience Scans

Print is static, but the moments people pick it up are not.

A heatmap of scans by day and hour shows when a placement is actually used, and the pattern is rarely what the media plan assumed. The shape depends on context. Restaurant and retail codes tend to peak around meals and store hours. Direct mail usually clusters in the evenings and on weekends, a few days after delivery. Out-of-home placements follow the commute. Packaging scans track when the product is opened and used. Treat those as hypotheses and let your own data confirm them.

Put timing to work

  • Schedule follow-up. Time SMS and retargeting bursts to the hours your codes are scanned.
  • Staff for it. If scans spike at lunch, make sure chat, phones and in-store offers are live then.
  • Set expectations. Tell stakeholders a mailer takes several days to show its full effect.

Mind the time zone

Some trackers report in UTC. For behavior analysis, use the scanner's local time, otherwise a 7 p.m. Pacific scan looks like a 3 a.m. one. As a rule of thumb, gather at least two full weeks of data before acting on hour-level patterns.

Scan timing · Day of week × hour of day · Local time
When your audience scansDarker cells mean more scans
Sample data
FewerMore
Sample scan heatmap: weekday lunch and evening peaks, a late-morning weekend peak.

Matching your follow-up to the scan window

Illustrative patterns to test, not universal rules.
Day partTypical scanner behaviorFollow-up that fits
Morning commuteQuick, low-intent browsing on the goShort pages, one tap actions, save-for-later options
Lunch hourHigher intent, ready to act within minutesSame-day offers, order-ahead, store hours and directions
Evening at homeLonger sessions, comparison shoppingDetailed product pages, reviews, free shipping messages
WeekendBrowsing with family, planning tripsEvent details, calendar links, location pages

An example from Chicago

Picture a Chicago bakery that places a QR code on window posters and on bags. The heatmap shows poster scans peaking around the morning rush and bag scans peaking in the evening, after the product has been tried. The bakery now schedules its "order for tomorrow" text messages for 7 p.m., when bag scanners are most active, instead of sending them at noon with everything else. Order volume for next-day pickup rises because the message arrives when the audience is already looking.

How to read the heatmap in four steps

  1. Find the two darkest hours on weekdays and the darkest block on weekends.
  2. Compare against store or service hours. A scan peak outside business hours is an opportunity, not a problem.
  3. Check each placement separately. Blended heatmaps hide the fact that a poster and a package serve different moments.
  4. Re-run the heatmap monthly, because seasonality shifts patterns, especially around holidays.

Pro tip

Set your tracker to report in the scanner's local time, then add a note to the dashboard saying so. Reports in UTC create arguments that have nothing to do with the data.

The Chicago bakery is an illustrative scenario, not a customer.

Google Analytics 4

UTM Parameters for QR Codes: Track in Google Analytics 4

Scan data says who scanned. GA4 says what they did next. UTM tags connect the two.

Most US businesses already run GA4 on their site, and it has been the only option since Universal Analytics stopped processing data in July 2023. When you append UTM parameters to the destination URL behind a QR code, GA4 reads them and credits the resulting session, and any purchase or lead inside it, to that exact placement. Google documents the full parameter list in its Analytics Help guide to URL builders.

A naming convention that scales

  • utm_source: the placement family, such as direct-mail, poster, package or flyer.
  • utm_medium: always qr, so one filter isolates all QR traffic.
  • utm_campaign: the campaign and period, such as spring-2026.
  • utm_content: the specific placement or variant, such as postcard-b or window-decal-a.
  • utm_term: optional, for keyword-style tags.

Use lowercase and hyphens, never spaces. GA4 is case-sensitive, so Flyer and flyer report as two different sources.

https://yourstore.com/spring?utm_source=direct-mail&utm_medium=qr&utm_campaign=spring-2026&utm_content=postcard-b

Put the UTMs on the destination, not the printed code

With a dynamic code, the printed pattern encodes a short link, and the UTM-tagged URL sits behind it. That keeps the printed code simple and easy to scan, and lets you fix a typo in your tags without reprinting. On QuitURL, UTM parameters are available from the Growth plan.

How to track QR code scans in Google Analytics 4

  1. Choose a naming convention and record it in a shared sheet so every campaign uses the same values.
  2. Build one destination URL per placement with the UTM parameters above.
  3. Create a dynamic QR code for each URL. One code per placement keeps results cleanly separated.
  4. Test before printing. Scan the code with a phone and confirm the session appears in GA4 under Reports, then Realtime.
  5. Mark conversions as key events, then open Reports, Acquisition, Traffic acquisition and filter by session medium equal to qr.

Create a custom channel group

GA4's default channel grouping may file an unrecognized medium like qr under Unassigned. Create a custom channel group named "QR Codes" (Admin, Data display, Channel groups) where medium matches qr, and your reports will show QR as its own channel.

Where scan data lives, and for how long

Your QR platform holds the scan events. GA4 holds what happens after the click. Both have retention limits. Google's Analytics Admin documentation lists event data retention choices of 2 or 14 months for standard properties, and longer periods only for GA4 360. If your property is still on the 2-month default, you cannot compare this holiday season with last year's in Explorations. Change it under Admin, Data settings, Data retention, and note that the change does not recover data that has already expired.

Build a QR code report in GA4: step by step

  1. Open Explore and start a Free form exploration.
  2. Add the dimensions Session source, Session medium, Session campaign and Session manual ad content.
  3. Add the metrics Sessions, Engaged sessions, Key events and Total revenue.
  4. Filter to session medium exactly matching qr.
  5. Save the exploration and share it with your team so everyone reads the same numbers.

Common UTM mistakes on QR campaigns

  • Putting UTMs on the printed code instead of the destination, which makes codes denser and harder to scan.
  • Mixing capitalization. QR, Qr and qr are three different mediums.
  • Losing parameters in a redirect. Test with a real phone to confirm the UTMs reach GA4.
  • Tagging internal links. UTMs on links inside your own site overwrite the original source.

Quick question: why don't my QR sessions appear in GA4?

Check three things. First, confirm the destination URL has the UTM parameters and loads the GA4 tag. Second, check that the redirect preserves the query string. Third, look in Realtime rather than standard reports, because standard reports can lag for several hours.

ROI

Calculating QR Code ROI: The Complete Formula

Four inputs and three formulas turn scans into a number finance will accept.

QR code marketing ROI compares the profit a campaign produced with what it cost. Start with revenue, which you build from scans, then work down to profit and ROI.

Revenue = scans × conversion rate × average order value
Gross profit = revenue × gross margin
QR code ROI (%) = (gross profit − campaign cost) ÷ campaign cost × 100 Related: ROAS = revenue ÷ cost · CPA = cost ÷ orders · cost per scan = cost ÷ scans

What counts as campaign cost

Include design, printing, postage or distribution, placement or signage fees, your QR platform subscription, and the staff time spent on the campaign. QuitURL's yearly Starter plan costs $33 a year, a rounding error next to a print run.

A worked example

Say a campaign generates 5,000 scans. At a 3% conversion rate that is 150 orders, and at a $62 average order value it is $9,300 in revenue. A 45% gross margin leaves $4,185 in gross profit. Subtract $1,200 of campaign cost and net profit is $2,985, which is a 249% ROI. The same numbers give a ROAS of 7.75, a cost per acquisition of $8.00 and a cost per scan of $0.24.

Your conversion rate comes from GA4: filter to session medium qr and read the key-event rate for the purchase or lead you care about. Use profit-based ROI when you present to finance, and ROAS when you compare QR against paid media.

QR code ROI calculator Illustrative

Change the numbers to match your campaign. Results update as you type.

Your QR code ROI
249%
Net profit of $2,985 on $1,200 spent
Revenue$9,300
Orders150
Gross profit$4,185
ROAS7.75x
Cost per acquisition$8.00
Cost per scan$0.24
Track your real numbers

Calculator for planning only. Your results depend on the accuracy of your inputs.

A second worked example: a Miami restaurant group

A three-location Miami restaurant group places table tents offering a free appetizer with any entree. Over one month the codes record 2,400 scans, and 8% of scanners redeem the offer, which is 192 parties. At a $46 average check that is $8,832 in revenue. With a 60% gross margin, gross profit is about $5,299. Campaign cost, covering printing, appetizer giveaways and the platform, is $900. Net profit is about $4,399, so ROI is roughly 489%.

The giveaway cost belongs in campaign cost, not in the margin. Many teams forget this and overstate the return.

Add a payback view

Finance leaders often ask how fast a campaign repays itself. Divide total campaign cost by weekly gross profit. In the Miami example, weekly gross profit is about $1,325, so the campaign pays back in under one week. If a campaign needs six months to pay back, it needs a different conversation than a campaign that pays back in a week.

ROI mistakes to avoid

  • Reporting revenue as ROI. A $9,300 sales number is not a return until you subtract cost and margin.
  • Ignoring baseline sales. Some of those customers would have bought anyway. For big campaigns, use the holdout method in Section 10.
  • Double counting. If the same sale is credited to both a QR code and an email, one of them is wrong.
  • Leaving out the platform and staff time, which makes small campaigns look better than they are.

Pro tip

Calculate ROI per placement as well as per campaign. A campaign at 250% overall may contain one placement at 600% and another at 20%, and that gap tells you where the next dollar goes.

The Miami restaurant group is an illustrative scenario with assumed margins, not a customer.

Testing

A/B Testing QR Codes: Design, Placement, and CTA Variables

Dynamic codes make print testable. Give each variant its own code and the data separates itself.

Printed URLs are hard to test because you cannot tell which version produced a visit. Unique dynamic codes fix that. Print variant A and variant B with different codes, distribute them evenly, and compare the results. Change one variable at a time, or you will not know what caused the difference.

VariableExample testJudge it on
Call to action"Scan for 15% off" vs "Scan to see the menu"Scan rate
PlacementEye level vs counter; front vs back of packageScans per impression
Size and quiet zoneLarger code with more white space vs compact codeScan rate and failed scans
Design and frameBranded colors with a CTA frame vs plain black and whiteScan rate
DestinationProduct page vs dedicated offer pageConversion rate in GA4
IncentivePercentage discount vs free shipping vs bonus contentConversion rate and margin

How to run a clean test

  • Split evenly. Give both variants matched locations, audiences and dates, so neither gets a better spot.
  • Run it long enough. Two weeks is a sensible minimum, and conversion differences need more scans than scan-rate differences.
  • Judge on outcomes. A variant that wins on scans but loses on conversions is the wrong winner.
  • Record the result. Keep a test log so the next campaign starts from what you learned.

For destination tests, you do not need two printed codes. A single code can split traffic between two landing pages. QuitURL's A/B testing and link rotator is available on Pro and Business plans, and it tests the page behind the code rather than the print itself.

A test plan you can reuse

  1. Write the hypothesis in one sentence. "Changing the call to action from a discount to free delivery will raise the scan rate."
  2. Pick one primary metric and write it down before the test starts.
  3. Create one dynamic code per variant with matching UTM tags except for utm_content.
  4. Distribute evenly. Alternate variants by store, by street or by mail batch so neither gets a better spot.
  5. Run to a pre-set stopping point, either a date or a scan count, and do not peek and stop early.
  6. Record the result and the decision in a shared log.

How many scans do you actually need?

Differences in scan rate show up quickly, but differences in conversion rate do not. A standard two-proportion estimate at 95% confidence and 80% power says you need roughly 8,000 visitors per variant to reliably detect a lift from a 5% conversion rate to 6%. If your campaign cannot reach that volume, treat results as directional and keep testing the same idea across several campaigns before you change a whole program.

A scenario from Denver

A Denver brewery tests two table-tent calls to action across its taproom and its patio, alternating variants by table. "Scan to see tonight's tap list" earns more scans than "Scan to join our club," but the club message produces more sign-ups per scan. Judged on scans, the first wins. Judged on sign-ups, which is what the brewery wants, the second does. The team keeps the club message and tests the incentive next.

Testing mistakes

  • Changing two things at once, such as the design and the offer.
  • Ending the test on the first good day.
  • Comparing different locations or seasons as if they were equivalent.
  • Declaring a winner without checking conversions.

The Denver brewery is an illustrative scenario, not a customer.

Attribution

Attribution: Connecting QR Scans to Sales

QR code attribution is a chain. Each link needs its own data source.

1ImpressionPrint run, foot traffic or distribution count
2ScanQR analytics: location, device, time
3SessionGA4 session tagged with UTM parameters
4ConversionGA4 key event, pixel or CRM record
5RevenueOrder value and margin from your store or POS

The first three links are easy. The hard part is steps four and five, and the right method depends on where the sale happens.

Level 1: session attribution with UTMs

If the buyer converts in the same session that began with the scan, GA4 credits the QR placement directly. This is the cleanest and most common case for e-commerce and lead forms.

Level 2: assisted conversions

Many people scan, browse, leave, and return later through search or a direct visit. In GA4, the conversion paths report shows where QR appears earlier in the journey, so you can credit it as a first touch even when it is not the last click.

Level 3: offline and in-store sales

For purchases at a register, use a unique coupon or promo code per placement, ask "how did you hear about us?" at checkout, or match redeemed codes against your POS or CRM. A per-placement code is the lowest-tech attribution method, and it works anywhere.

Add pixels for retargeting, with care

Tracking pixels, such as Meta or TikTok, let you build audiences from people who scanned and then retarget them. They also count as sharing data for advertising in some privacy laws, so pair them with a clear notice and opt-out (Section 18).

For proof of causation, run a holdout: print the code in some matched markets, leave it out of others, and compare total sales.

Choosing an attribution method

Most programs use two or three methods together.
MethodBest forWeakness
UTM and GA4 session attributionOnline purchases and lead forms in the same sessionMisses people who scan, leave and return later
Conversion paths reportJourneys with several touches over daysNeeds enough conversions to be meaningful
Unique coupon or promo codeIn-store and phone salesCustomers sometimes forget or ignore the code
POS or loyalty ID matchRetailers with a loyalty programRequires integration and consent
Geographic or store holdoutProving incremental lift on large campaignsNeeds matched markets and planning

A scenario from Chicago: coupon codes by placement

A Chicago hardware store prints a QR code on shelf talkers, on a window poster, and on a mailed postcard. Each code lands on a page with its own coupon, SHELF10, WINDOW10 or MAIL10. At the register, cashiers type the code, and the POS reports redemptions by code. After 60 days the store knows that shelf talkers drive the most redemptions, the postcard drives the highest basket size, and the window poster rarely converts. It had no online checkout at all, yet it can attribute every sale.

Attribution mistakes

  • Relying on a single method. Session attribution alone undercounts offline and delayed sales.
  • Crediting the last click only, which makes print look worse than it is.
  • Reusing one coupon code across placements, which wipes out the signal.
  • Skipping the consent step when you match scans to customer records.

Pro tip

Ask one question at checkout or on the lead form: "How did you hear about us?" with QR code or flyer as an option. It is crude, but it catches sales your tags miss, and it is cheap to add.

The Chicago hardware store is an illustrative scenario, not a customer.

Connect scans to revenueUTM parameters and tracking pixels keep your attribution in one place.

View QuitURL pricing
Dashboard

Building a QR Code Analytics Dashboard

A good dashboard answers four questions in about thirty seconds.

Are scans growing? Where are they coming from? Who is scanning? Did it pay? Lay the dashboard out in that order, from top to bottom.

  • Row 1, the headline numbers. Total scans, unique scans, scan rate, conversions and ROI, each with a comparison to the previous period.
  • Row 2, the trend. A daily line chart with annotations for events like a mailer drop or a store promotion, so spikes explain themselves.
  • Row 3, the audience. Map or city list, device split and the day-and-hour heatmap.
  • Row 4, the league table. Every placement ranked by scans, conversion rate and revenue per scan, so you can cut the losers and copy the winners.

Review it weekly, and set alerts for two events: a sudden scan drop, which usually means a broken link or a damaged sign, and an unexpected spike, which can mean a viral moment or bot traffic. Join scan data with GA4 revenue in a spreadsheet or a free tool like Looker Studio when you need a single view. QuitURL includes AI Statistic Insights on every plan to summarize patterns, and supports data export on higher plans for building those views.

Placement league table. Sample data, assuming a $80 average order value.
PlacementScansUniqueConversion rateRevenue per scan
Shelf talkers4,1002,6406.4%$5.12
Postcard mailer3,2002,3505.8%$4.64
Package inserts2,3001,5005.1%$4.08
Receipt QR7755604.5%$3.60
Window decals1,5001,3003.1%$2.48

Build the dashboard in Looker Studio

  1. Export scan data from your QR platform on a schedule, daily or weekly depending on volume.
  2. Connect GA4 to Looker Studio with the Google Analytics connector.
  3. Join the two sources on the code name or on utm_content. This is why consistent naming matters.
  4. Add the headline scorecards: unique scans, conversions, revenue and ROI.
  5. Add the trend, city and device charts described above.
  6. Share the report as view-only so nobody edits the formulas by accident.

Set alerts you will actually act on

Thresholds are starting points. Adjust them to your volume.
AlertTriggerLikely cause
Scan dropDaily scans fall more than 50% below the four-week averageBroken redirect, damaged sign, or ended promotion
Scan spikeDaily scans more than triple the averagePress mention, viral post, or bot traffic
Conversion dropConversion rate falls for three days in a rowLanding page or checkout problem
Out-of-market scansMore than 10% of scans outside target marketsWrong code on a national mailer, or reposted image

A scenario: a Dallas multi-location dentist

A Dallas dental group prints a different QR code in each of its six offices for appointment booking. The dashboard shows one office's scans falling to near zero in a week. A manager walks in and finds the poster was taken down during a renovation. A weekly review caught it in days. Without the alert, the group would have noticed a drop in new patients a month later.

The Dallas dental group is an illustrative scenario, not a customer.

Start with a dashboard that is already builtScan analytics and AI Statistic Insights come with every QuitURL plan.

Choose your plan
Case study

Case Study: How a US Retailer Used QR Analytics to Boost Sales 40%

A step-by-step look at how scan data turned into specific fixes.

Illustrative scenario, modeled numbers

This is a worked example built to demonstrate the method. It is not a customer testimonial, and the figures are modeled so the math is easy to reuse on your own campaigns.

Picture a 12-store US home-goods retailer that had printed QR codes for years without measuring them. It ran three placements: shelf talkers in stores, window decals, and a monthly postcard mailer. All of them sent shoppers to the same generic product page. QR-attributed sales were $38,000 a month on 9,500 scans, a 5.0% conversion rate and an $80 average order value, against $6,000 of monthly print and distribution cost.

The retailer switched to dynamic codes with one code per placement and UTM tags, then ran for 60 days. The analytics surfaced four findings:

  • Shelf talkers earned about twice the scans per impression of window decals.
  • Postcard scans clustered on evenings and weekends, strongest in Sunbelt metros such as Phoenix, Dallas, Atlanta and Houston.
  • Android sessions converted well below iOS sessions because the checkout page loaded slowly on Android.
  • The call to action "Scan for free delivery" outperformed "Scan for 10% off."

Each finding pointed to a specific fix. The retailer moved 30% of its window-decal budget into shelf talkers, rewrote the call to action, scheduled follow-up emails for evenings, and repaired the Android checkout.

Monthly scans9,500 → 11,875+25%
Conversion rate5.0% → 5.6%+12%
QR-attributed revenue$38,000 → $53,200+40%
ROI at 40% margin, $6,000 cost153% → 255%+102 points

Modeled results. Average order value held at $80.

The arithmetic is simple: 1.25 times more scans multiplied by a 1.12 times better conversion rate gives 1.40, a 40% lift. No single change delivered it. Visibility did, because every metric pointed at something the team could fix.

What happened, week by week

  1. Weeks 1 and 2. The retailer swaps static codes for dynamic ones and tags each placement. No creative changes yet, so the data reflects the old campaign.
  2. Weeks 3 and 4. The team reviews placement results and finds shelf talkers lead on scans per impression, while window decals trail on conversion.
  3. Weeks 5 and 6. The retailer moves budget, rewrites the call to action and fixes the Android checkout.
  4. Weeks 7 and 8. Scans, conversion rate and revenue are measured against the baseline.

The findings by market

Modeled results for an illustrative retailer.
MarketObservationAction
PhoenixPostcard scans peak in the eveningTime follow-up emails for 7 p.m.
DallasShelf talkers convert bestAdd shelf talkers to two more stores
AtlantaWindow decal scans are lowMove budget to in-store placements
HoustonAndroid checkout is slowFix page speed, then retest

What you can copy

  • Start with one code per placement so every result has an owner.
  • Review at a fixed interval, and decide what to change before looking at the data.
  • Make one change at a time where you can, and a bundle of changes only where speed matters.

Run your own versionDynamic codes, UTM tags and per-placement analytics are the whole toolkit.

Start tracking placements
Pitfalls

Common Analytics Mistakes US Marketers Make

Seven errors that quietly corrupt QR code data or create legal risk.

Printing static codes

A static code cannot be tracked or edited after printing. Use dynamic codes for anything you want to measure.

Fix before printing

Counting your own scans

Team testing, QA and bot crawlers inflate totals. Exclude them before you report.

Data hygiene

Inconsistent UTM tags

Mixed capitalization or missing tags split one placement into many rows in GA4. Follow one naming convention.

GA4

Judging by scans alone

Scan volume is a vanity metric without conversions. Rank placements by revenue per scan.

Outcomes

Ignoring the mobile landing page

Every scan lands on a phone. A slow or cramped page wastes the print spend you already made.

Conversion

Forgetting the retention window

If your plan keeps 108 days of history, last year's holiday comparison disappears unless you export it.

Planning

Privacy: CCPA, GDPR and your scan data

The seventh mistake is skipping privacy basics. QR scan data is mostly anonymous, but it usually includes an IP address, and privacy laws treat that seriously. For background, see Wikipedia's overviews of the CCPA and the GDPR.

  • CCPA and CPRA (California). The statute lists IP addresses as an online identifier within personal information. Disclose scan tracking in your privacy notice, honor opt-outs of sale or sharing (including Global Privacy Control signals), and note that retargeting pixels can count as sharing for cross-context advertising.
  • GDPR (EU and UK). It applies when people in the EU or UK scan your code, which can happen with travelers or international customers. IP addresses can be personal data, so you need a lawful basis, consent for ad pixels and precise location, and a data processing agreement with your vendor.
  • Other US states. Virginia, Colorado, Connecticut, Texas and a growing list of states have comprehensive privacy laws with similar notice and opt-out duties.

Practical defaults: report in aggregate, avoid personal identifiers, limit retention, link your privacy notice on the landing page, and ask before using precise location or pixels. This is general information, not legal advice, so confirm requirements with counsel.

Four more mistakes that cost real money

  • Judging on a single week. Mailers, seasons and promotions distort short windows. Use at least two to four weeks.
  • Reusing one code across campaigns. A single code on every flyer makes it impossible to separate results.
  • No owner for the data. If nobody is responsible for the weekly review, dashboards turn into decoration.
  • Skipping a landing page test. Test the destination on real phones before the print run, not after.

A Philadelphia retailer that prints 10,000 flyers with a typo in the short link has no way to fix it with a static code. A dynamic code lets it correct the destination in minutes. The cost of that one mistake, a reprint, is often several times a year of tracking fees.

Pro tip

Run a ten-minute pre-flight check before every print run: scan the proof on an iPhone and an Android phone, load the page on cellular data, complete the conversion step, and confirm the session in GA4 Realtime.

If you want a deeper explanation of how redirects and editable destinations work, read our guide to dynamic QR codes. For privacy rules specifically, jump to the compliance checklist in Section 18.

Tools

QR Code Analytics Tools: Subscription vs Lifetime Deal

How QuitURL compares with Bitly, QR Tiger and Uniqode, and how to choose a pricing model.

Judge any QR analytics tool on six things: dynamic codes, depth of location, device and time reporting, how long data is kept, UTM and pixel support, and how pricing scales. The table below compares the points that matter most for tracking, and our guide to the best QR code generators in the USA covers the wider market.

QuitURL details are from its pricing page. Competitor details are compiled from public plan pages and third-party listings between June and September 2026. Plans change, so confirm current terms with each vendor.
FeatureQuitURLBitlyQR TigerUniqode
Entry price$4.44/mo$33/yr or $88 onceAbout $10/moCore planAbout $7/moAbout $5/moBilled annually
Billing optionsMonthly, yearly or lifetimeMonthly or annualMonthly or annualAnnual only on QR plans
Lifetime (pay-once) plan✓———
Unlimited scans on entry paid plan✓———
Analytics history108 days to unlimited30 days to 1 yearVaries by plan30 days to unlimited
GPS / precise location✓City-levelTop-tier planPro plan and up
Retargeting and audience pixels✓—✓✓

Subscription vs lifetime: which is cheaper?

A subscription keeps the upfront cost low, lets you stop when a campaign ends, and funds continuous updates. A lifetime deal caps your total spend and suits a QR program you expect to run for years. The trade-offs are a larger upfront payment and the need to read what "lifetime" covers, since it generally means the lifetime of the product and plan rather than every future feature.

The deciding factor is time. Using QuitURL's published prices, this is how long it takes for a lifetime plan to cost less than paying monthly or yearly:

Break-even uses QuitURL list prices at the time of writing. Check the pricing page for current rates.
PlanMonthlyYearlyLifetimeLifetime beats monthly afterLifetime beats yearly after
Starter$4.44$33$88about 20 monthsabout 2.7 years
Growth$11.11$111$333about 30 months3 years
Pro$22.22$222$555about 25 months2.5 years
Business$77.77$777$2,222about 29 monthsabout 2.9 years

The rule of thumb: if you will run QR campaigns for more than roughly two and a half to three years, lifetime is the cheaper path. If you are still testing the channel, start monthly or yearly and move to lifetime once QR proves itself. For analytics-heavy work, the Pro plan adds geo and device targeting and A/B testing with a link rotator, while Growth is the first plan with UTM parameters.

Seven questions to ask any QR analytics vendor

  1. How long is scan history kept, and can I export it before it expires?
  2. How do you count unique scans? Cookies, IP, or both?
  3. Can I add UTM parameters to each destination without editing the printed code?
  4. What happens to my codes if I cancel? Do they keep redirecting, or stop?
  5. How is location determined, and is precise location consent-based?
  6. Do you filter bots and link-preview crawlers from scan counts?
  7. What are the real limits on scans, codes and seats at each price?

Question four deserves extra attention. A printed code is a long-lived asset. If a vendor shuts off the redirect when a subscription ends, every printed piece becomes a dead link. A lifetime plan removes that risk for as long as the product operates, but you should still read the terms for what "lifetime" covers.

Pro tip

Before you commit, create a test code, scan it from a phone, and export the scan record. If exporting is hard, reporting will be hard too.

A scenario for agencies

An agency running QR campaigns for ten local clients across Seattle, Portland and Denver needs separate folders, separate dashboards and consistent UTM tags. For that kind of work, per-client reporting and clean exports matter more than design templates. Judge the platform on the reporting you hand to clients, because that is what they will pay for.

The agency is an illustrative scenario, not a customer.

Pick the plan that fits your programMonthly, yearly or lifetime, with analytics on every plan.

Compare all plans
Channels

QR Code Scan Tracking by Channel: Print, Packaging, Signage, Direct Mail and Events

Compare channels fairly by tagging each one separately.

Every channel behaves differently once a code is on it. A postcard is scanned at a kitchen table days after it arrives. A package insert is scanned when someone opens a box. A transit poster is scanned for a few seconds on a platform. Track each channel under its own utm_source so you can compare them honestly.

Naming is a suggestion. Pick one convention and keep it.
ChannelSuggested utm_sourceWhen people scanWhat to watch
Direct mail postcarddirect-mailEvenings and weekends, days after deliveryScan lag after the mail drop
Product packagingpackageWhen the product is opened or usedRepeat scans for instructions and reorders
In-store signagein-storeWhile shopping, within secondsScans per visitor and checkout conversion
Out-of-home and transitoohBrief moments, often in motionScan success rate and code size
Events and trade showseventDuring and just after the eventDuplicate scans from staff and booths
Receipts and insertsreceiptAfter purchase, at homeReview and reorder conversions

What direct mail benchmarks can and cannot tell you

Direct mail is the best-measured physical channel, so it makes a useful reference. The ANA and DMA Response Rate Report, summarized by 4OVER4's direct mail benchmark page, shows house lists responding at roughly 5% to 9% and prospect lists at roughly 2% to 5%. Those are response rates, not QR scan rates, and the summary does not say which survey year it draws on. Use them to sanity-check your expectations for a mailer, not to set a scan target.

A scenario from Phoenix

A Phoenix home-services company mails 8,000 postcards with a QR code offering a free estimate. The first scans arrive two days after delivery, peak on the fourth day, and taper over two weeks. Because the team tracks scan lag, it stops judging the campaign after 72 hours, as it used to, and waits for the full curve. The extra patience changes the verdict from "weak" to "profitable."

Pro tip

For direct mail, report scans by days since the mail drop rather than by calendar date. It lets you compare one mailing against the next on equal terms.

The Phoenix company is an illustrative scenario, not a customer.

Industry playbooks

Industry Playbooks: What to Track for Retail, Restaurants, Real Estate and Local Services

The same data, with a different first question in each industry.

The same dashboard serves different industries, but the first questions change. These four playbooks show where to start.

Retail: scans per store, revenue per scan

A multi-store retailer in Chicago or Atlanta should start with one code per store and per placement type. The first report to build is revenue per scan by store. It quickly separates stores with strong foot traffic and weak conversion from the reverse, and each needs a different fix. Pair scan data with coupon redemptions to cover in-store sales.

Restaurants: menus, tables and repeat visits

For a Miami or Austin restaurant, repeat scans are a good sign, because diners reopen menus. Track scans by table or section, and track the share that move on to ordering, reviews or loyalty sign-up. Our restaurant QR code guide covers menu and ordering setups in detail.

Real estate: signs, flyers and lead capture

For an agent in Atlanta or Dallas, every yard sign is a separate code, because each listing is a separate campaign. Track scans per listing, scan timing around open houses, and how many scanners request a showing. Our real estate QR code guide goes deeper on signs and flyers.

Local services: calls, bookings and reviews

A plumber or dentist in Houston or Denver cares about one conversion: the booked appointment or phone call. Use a dedicated landing page per placement with a tap-to-call button, and consider a code that sends happy customers to a review page. That ties scans to local SEO work, and our local business QR marketing guide shows how to plan the whole program.

IndustryFirst metric to buildPrimary conversion
RetailRevenue per scan by storePurchase or coupon redemption
RestaurantsScans by table or sectionOrder, review or loyalty sign-up
Real estateScans per listingShowing request
Local servicesScans to booked appointmentsCall or booking
Data quality

Bot Traffic, Link Previews and Scan Data Quality

Clean numbers are what make the rest of this guide worth doing.

Not every scan is a person. Imperva's 2025 Bad Bot Report, summarized by Malwarebytes, found that automated traffic made up 51% of all web traffic in 2024, with bad bots accounting for 37%. That figure covers the whole web, not QR scans specifically, but it explains why raw scan counts always need a sanity check. A QR short link is a public URL, so crawlers can find and fetch it.

Where phantom scans come from

  • Link-preview crawlers. Messaging and social apps fetch a link to build a preview, which can look like a visit.
  • Security scanners. Corporate email and mobile security tools open links to check them.
  • Your own team. QA, design reviews and print proofing all generate scans.
  • Prefetching and repeated reloads, which can double count a single scan.

A five-step cleanup routine

  1. Launch with a quiet period. Do not report numbers from the first 24 hours.
  2. Exclude internal traffic by IP range or by a team-only test code.
  3. Look for impossible patterns, such as hundreds of scans in the same minute from one city.
  4. Compare scans with sessions in GA4. A large gap points to bot hits or abandoned loads.
  5. Log what you removed and why, so the numbers stay explainable.

Pro tip

Use a separate code for every proof, test and demo, and name it with a test- prefix. Filtering a prefix is far easier than hunting through a month of mixed data.

Data quality is also a trust issue. If a leader catches one inflated number, they will discount every number after it. A short note on the dashboard, "scans exclude internal and known bot traffic," protects your credibility.

Privacy

QR Code Tracking and Privacy: A US Compliance Checklist

A practical checklist for CCPA, GDPR and state privacy laws.

Section 13 covered the basics. This checklist turns them into action. Scan data is mostly anonymous, but it usually includes an IP address, plus device and location signals, so treat it as potentially personal information under US and EU law.

Does CCPA apply to you?

California's law applies to for-profit businesses that do business in California and meet one of three tests. As summarized by Jackson Lewis, those are annual gross revenue above $26.625 million (the amount adjusted from $25 million), buying, selling or sharing the personal information of 100,000 or more consumers or households, or deriving at least half of annual revenue from selling or sharing personal information. A small local shop may fall below all three. A national retailer will not.

What enforcement looks like

In 2022, the California Attorney General announced a $1.2 million settlement with Sephora, in the first public CCPA enforcement action, over failures that included not honoring Global Privacy Control opt-out signals, as reported by the IAPP. The lesson for QR campaigns is concrete: if your landing page uses advertising pixels, an opt-out signal from the browser has to be respected.

Thresholds and duties differ by state. Confirm with counsel.
LawApplies whenKey action for QR scan data
CCPA and CPRAYou meet the California thresholdsNotice at collection, opt-out of sale or sharing, honor GPC
GDPR and UK GDPREU or UK residents scan your codeLawful basis, consent for pixels and precise location, processor agreement
Other state laws (Virginia, Colorado, Connecticut, Texas)You meet the state thresholdsNotice, opt-out rights, data protection assessments for targeted ads

A seven-step compliance checklist

  1. Map what you collect: IP-derived location, device, timestamps, and any pixels or forms on the landing page.
  2. Update your privacy notice to mention QR scan analytics in plain language.
  3. Link the notice from every landing page a code points to.
  4. Load advertising pixels only after consent where consent is required, and honor Global Privacy Control signals.
  5. Ask for permission before collecting precise location.
  6. Sign a data processing agreement with your QR platform and analytics vendors.
  7. Set a retention period and delete or aggregate older data.

Security belongs on the same list. In a December 2023 consumer alert, the Federal Trade Commission warned that scammers cover legitimate QR codes, including ones on parking meters, with their own and send people to spoofed sites. Check public placements regularly and print a short URL beside each code so customers can see where it goes.

This is general information, not legal advice. Privacy rules change often, so have counsel review your setup, especially if you advertise to California or EU audiences.

Rollout

A 30-60-90 Day QR Analytics Rollout Plan

A phased plan from first code to leadership report.

A rollout plan keeps a QR program from stalling after the first print run. This 90-day plan works for a single business or an agency client.

Days 1 to 30: set up and measure

  1. Choose three placements and create one dynamic code for each.
  2. Adopt the UTM naming convention from Section 7 and document it.
  3. Connect GA4, mark key events, and extend data retention to 14 months.
  4. Test the printed proofs on an iPhone and an Android phone.
  5. Launch, then wait. Do not report on the first week.

Days 31 to 60: learn and fix

  1. Review scans, conversions and revenue by placement.
  2. Fix the biggest leak first, usually a landing page or call to action.
  3. Start one A/B test with a written hypothesis.
  4. Clean the data using the routine in Section 17.

Days 61 to 90: scale and report

  1. Shift budget toward the placements with the best revenue per scan.
  2. Roll the proven design out to more locations.
  3. Build the dashboard and set alerts.
  4. Present results on one page.
Leadership page elementWhat to include
HeadlineUnique scans, conversions, revenue, ROI versus last period
Best and worst placementRevenue per scan for each, with the action you took
Next testOne hypothesis, one metric, one date
RisksData gaps, privacy items, or expiring retention

Pro tip

Keep the leadership page to one screen. A short report that is read every month beats a long report that is read once.

Start your 90 days with the right planChoose monthly, yearly or lifetime, and put the first three codes live this week.

See plans and pricing
FAQ

FAQ: QR Code Tracking Questions

Straight answers to the questions marketers ask most.

Not by name. A dynamic QR code records an anonymous scan event: the time, approximate location, device and the campaign tag. You only learn who someone is if they volunteer it, for example by filling in a form, logging in or redeeming a personal coupon code.

Use a dynamic QR code with an analytics dashboard. Each scan is logged in real time, so you can watch the count rise after you print. A static code gives you no confirmation at all, which is why measurable campaigns should always use dynamic codes.

A dynamic QR code can report total, unique and repeat scans, plus location by country, state and city, device and operating system, and time of day and day of week. With UTM parameters and Google Analytics 4 you can add sessions, conversions and revenue.

It can be, if you set it up properly. IP addresses count as personal data or personal information under both laws, so disclose scan tracking in your privacy notice, honor opt-outs, get consent for precise location and ad pixels where required, and sign a data processing agreement with your vendor. This is general information, not legal advice.

The best tracker is the one that fits your questions and budget. Look for dynamic codes, location, device and time analytics, UTM support, long data retention, and transparent pricing. Compare plans, including lifetime options.

Not the scans themselves. A static code embeds the destination directly, so scans never touch a server you control. With UTM parameters you can still see the website visits in Google Analytics 4, but you cannot count scans or change the destination after printing.

Total scans counts every scan. Unique scans estimates how many different people scanned, usually using cookies or IP and device signals. The difference is repeat scans. Unique scans measure reach, while total scans measure engagement.

IP-based location is usually accurate to the city or metro area, but it can be off on mobile carrier networks or VPNs. Precise GPS location is more exact, but it is only available when the scanner grants permission, so it covers a minority of scans.

Add UTM parameters (source, medium, campaign and content) to the destination URL behind a dynamic QR code. Scan it to confirm the session appears in GA4 Realtime, mark your conversions as key events, then filter Traffic acquisition by session medium equal to qr.

It depends on your platform and plan. QuitURL keeps analytics history from 108 days on Starter up to unlimited on Pro and Business. For year-over-year comparisons, pick long retention or export regularly.

Revenue equals scans times conversion rate times average order value. Gross profit equals revenue times margin. ROI equals gross profit minus campaign cost, divided by campaign cost, times 100. Include print, distribution, platform and staff costs, and use GA4 for the conversion rate.

Give each placement its own coupon or promo code and have the register record it. You can also match scans to loyalty IDs where customers have consented, or add a "how did you hear about us" question at checkout. Using two of these methods together catches most sales.

A static QR code never expires, because it only contains the destination. A dynamic code keeps working only while its redirect service stays active, so check what happens to your links if you cancel. Lifetime plans exist partly for this reason.

A few hundred scans per placement is enough to see direction in scan counts and ratios. Comparing conversion rates between two variants takes far more, often thousands of visitors per variant, so treat small samples as directional.

You will see the visits, usually as direct or referral traffic, but you cannot tell which placement drove them. UTM parameters label each code as its own source, medium and campaign, so use them on every destination.

Start tracking every scan, and every sale it drives

Dynamic QR codes with location, device and time analytics, UTM support and lifetime pricing options.

Leave a Reply

Your email address will not be published. Required fields are marked *