All Articles
Guide 27 Oct 2026 9 min read

QR Code Campaign ROI: How to Measure and Prove It

L

LinkScan Team

Product

Most QR campaigns report one number: scans. But scans are a vanity metric. A poster can rack up thousands of scans and sell nothing, while a single product insert quietly drives repeat orders. To know which of your campaigns actually paid off, you need to connect scans to conversions and conversions to money. This guide is a practical framework for measuring — and proving — the ROI of a QR code campaign.

Why scans alone lie

A scan tells you someone pointed a camera at your code. It says nothing about whether they landed, stayed, or bought. Two campaigns with identical scan counts can have wildly different returns. The job of measurement is to move down the funnel — from scans, to visits, to conversions, to revenue — and then set that against what the campaign cost you.

This is only possible with dynamic QR codes. A static code encodes the destination directly and can't count scans; a dynamic code routes through a redirect that logs each scan and lets you tag the destination for downstream analytics.

The metrics that matter

ROI isn't a single number you read off a dashboard — it's built from a short chain of metrics. These are the ones worth tracking for every campaign:

MetricWhat it tells youHow to get it
Total scansRaw reach of a placementDynamic QR scan analytics
Unique scannersActual people reached (strips repeat scans)Dynamic QR scan analytics
Scan-to-conversion rateHow persuasive the landing page + offer areScans ÷ conversions (UTM + GA4/checkout)
Cost per scanEfficiency of the placementCampaign cost ÷ scans
Cost per acquisition (CPA)What each conversion cost youCampaign cost ÷ conversions
ROIWhether the campaign made money(Net return − cost) ÷ cost

The measurement stack

You need three layers working together. Each one answers a different question:

1. Dynamic QR code

Counts scans and unique scanners, and lets you edit the destination. One code per placement so you can tell them apart.

2. UTM parameters

Tag the destination so your web analytics attribute the visit to the right campaign and placement. Full setup guide →

3. Conversion tracking

A goal in GA4, your checkout, or a unique discount code ties the visit to real revenue — the number ROI is built on.

A worked example

Numbers make it concrete. Here's an illustrative campaign — swap in your own figures, especially your real margin.

A homeware brand prints a dynamic QR code on 5,000 product inserts, each pointing to a reorder landing page with the code SAVE15. The destination URL carries ?utm_source=qr&utm_medium=insert&utm_campaign=reorder, and orders are tracked in the checkout.

The calculation

Scans (820) · unique scanners (540)reach
Orders attributed to the campaign96
Average order value (what customers paid)£38
Revenue attributed (96 × £38)£3,648
Contribution at 45% margin£1,642
Campaign cost (print £150 + platform £5)£155
ROI = (1,642 − 155) ÷ 155≈ 960%

From the same data you also get cost per scan (£155 ÷ 820 ≈ £0.19), CPA (£155 ÷ 96 ≈ £1.61), and a scan-to-order rate of 96 ÷ 820 ≈ 11.7%. Those are the numbers you compare across placements to decide where next quarter's print budget goes.

The honesty check: measure ROI on contribution, not gross revenue. Multiplying revenue by your margin (and subtracting any discount you gave away) is the difference between a number you can defend to finance and one that falls apart under scrutiny.

A/B test without reprinting

The quiet superpower of a dynamic QR code is that the destination is editable after it's printed. That turns physical media into something you can optimise:

  • Test landing pages. Point the code at page A for two weeks, switch to page B, and compare scan-to-conversion rates. No reprint, no new code.
  • Test offers. Swap 10% off for free shipping mid-campaign and see which lifts conversions.
  • Fix mistakes live. A broken or outdated landing page can be repointed in seconds instead of becoming 5,000 dead inserts.

For a true split test, run two dynamic codes on different placements (poster vs flyer) and compare their rates directly — because each code tracks its own scans.

Common mistakes that wreck attribution

Don't

  • Use one QR code across every placement — you lose all attribution
  • Report scans as if they were results
  • Skip UTMs, so QR traffic shows up as "direct"
  • Ignore print and discount costs in the ROI maths
  • Compare total scans instead of unique scanners

Do

  • Give every placement its own dynamic code + UTM
  • Track to a conversion (goal, checkout, or discount code)
  • Measure ROI on contribution, not gross revenue
  • Compare placements against your own baseline
  • Review scan-time and geography to refine timing and location

How LinkScan fits in

LinkScan is built for exactly this loop. Dynamic QR codes are free to create, and you can edit the destination at any time — so A/B testing and live fixes cost nothing. The Advanced plan ($5/month) adds the scan analytics that feed the top of your ROI calculation: total scans, unique visitors, device breakdown (iOS, Android, desktop), browser, geography, and daily trends. Add UTM parameters to each destination and your downstream conversions flow into GA4 or your checkout, closing the loop from scan to revenue. Custom branded short links keep the destination on-brand across placements.

Frequently asked questions

How do I calculate the ROI of a QR code campaign?

Use (net return − campaign cost) ÷ campaign cost. Net return is the contribution from attributed conversions — revenue × margin, after any discount — not gross revenue. Campaign cost includes design, print, distribution, and your QR platform fee. In the example above, £1,642 of contribution at a £155 cost is roughly a 960% ROI.

Do I need a dynamic QR code to measure ROI?

Effectively yes. A static code can't record scans and can't be changed, so you're left with downstream web analytics and no scan count. A dynamic code logs every scan, accepts UTM parameters, and lets you edit the destination — which is what makes attribution and A/B testing possible.

Can I A/B test a QR code?

Yes, with a dynamic code. Because the destination is editable, you can point the same printed code at landing page A, switch it to B, and compare conversion rates without reprinting. For a cleaner split, use two dynamic codes on different placements.

What is a good QR code scan-to-conversion rate?

There's no universal benchmark — it depends on placement, offer, and audience. Measure your own baseline and compare campaigns and placements against it rather than chasing an industry average.

Ready to create your own QR codes?

Generate free static QR codes instantly, or create dynamic codes with real-time analytics and editable destinations.