TrackRev
Blog
11 min read
Link tracking

QR Code Tracking for Campaigns: From Scan to Sale

A scan is a click that began in the physical world. The scan-to-sale chain, the choices that decide whether a code scans, and how to tie scans to revenue.

Muzahid Maruf — Founder of TrackRev.io

Muzahid Maruf, Founder

LinkedIn

On this page
  1. 01Why this matters for your revenue
  2. 02The scan-to-sale chain
  3. 03Static or dynamic: which code to print
  4. 04Static vs dynamic for campaign codes
  5. 05Designing a QR code that actually scans
  6. 06Attributing an offline campaign
  7. 07QR tools compared
  8. 08When a plain QR generator is fine
  9. 09TrackRev QR code tracking
  10. 10When NOT to use TrackRev for QR codes

Explore with AI

Opens this article inside the chosen assistant with a ready-made prompt.

A QR code is the only way a billboard, a business card, or a product insert can put a trackable link directly into someone’s hand — and at the platform median of $3.80 per tracked click (TrackRev platform data, Q2 2026), offline attribution stops being a nice-to-have and becomes a line item worth defending.

A scan is a click; the difference is that it originates in the physical world, where nothing else you do is measurable.

The whole value of QR tracking is turning an offline impression into the same tracked, revenue-attributed click as a link in an email.

This guide walks the full chain from scan to sale — QR code to short link to tracked redirect to conversion — covers the design choices that decide whether a code actually scans, and shows how to attribute an offline campaign down to the charge it produced.

It is honest about when a plain QR generator is all you need, and where a tracked, revenue-aware code earns its keep — so even an offline channel can show whether it is one of the channels actually paying your MRR.

Key Takeaways

  • QR code tracking works by pointing the code at a short link you control, so every scan routes through a tracked redirect that can be counted and tied to revenue.
  • Campaign codes should be dynamic — the editable redirect lets you fix a typo without reprinting, reuse the physical asset, and see scan analytics.
  • Design decides whether a code tracks anything: keep strong contrast and a clear quiet zone, size the code for the farthest realistic scan, and encode a short link so the pattern stays sparse.
  • Use one code per placement with UTM parameters on the short link, so offline placements land in the same channel reports as digital and can be compared.
  • TrackRev generates dynamic, branded, revenue-aware codes connecting scans to revenue; every paid plan is $39/mo for all three products versus about $84/mo for separate tools.

The one-line version

QR code tracking works by pointing the code at a short link you control, not at the destination directly. Every scan then routes through a tracked redirect where it is counted, tied to a first-party visitor, and — on a revenue-aware tracker — connected to the eventual charge. The code is just the physical entry point; the short link underneath is what makes the scan measurable.

Why this matters for your revenue

Offline channels are where marketing budgets go to become unmeasurable.

You print a code on packaging, run it on a conference banner, or drop it in a magazine, and without tracking you have no idea whether it drove a single sale — so at budget time it is the first line cut, not because it failed but because it could not prove it worked.

A tracked QR code closes that gap: the scan becomes a click, and the click can be attributed like any other.

The revenue case is the same one that applies to every link, made sharper by the offline context.

At $3.80 per tracked click, a code that drives even a few thousand scans a quarter represents real, previously-invisible revenue — but only if the scan is tied to a conversion rather than left as a raw count.

A QR generator that reports “1,200 scans” tells you the code was popular; a tracked code that shows those scans produced signups and charges tells you the campaign was profitable. See how the click connects to money in revenue attribution.

The scan-to-sale chain

A tracked QR campaign is a chain of four links, and the measurement lives in the middle two. Understanding the chain is what lets you place a code anywhere offline and still see the revenue.

The code should encode a short link on your own domain, not the final destination URL.

This matters for two reasons at once: a short URL keeps the code’s pattern simpler and easier to scan, and pointing at a redirect you control is what makes the scan trackable and the destination editable.

A code that encodes go.yourbrand.com/expo is the start of a measurable chain; a code that encodes a long raw URL is a dead end you cannot count or change.

When the code is scanned, the phone opens the short link, which hits your redirect server.

This is the measurement point: the server logs the scan — timestamp, device, coarse location, the campaign the code belongs to — sets a first-party cookie, and redirects onward.

Because this happens server-side on your own domain, it survives the same privacy conditions that break client-side tracking, and it works identically whether the scan came from a billboard or a business card.

Redirect → conversion and revenue

The visitor lands on the destination with a first-party cookie already set, so whatever they do next — sign up, start a trial, buy — is bound back to the original scan.

When the payment fires, a webhook from your billing provider connects the Stripe, Paddle, Polar, or Lemon Squeezy charge to that scan.

The chain is now complete: a physical code produced a measured click that produced attributed revenue, with no manual reconciliation between the offline campaign and the sales data.

Static or dynamic: which code to print

For campaigns, this choice is nearly always made for you by the need to track and edit. A brief version here; the point is that a trackable campaign code must be dynamic.

What a static code encodes

A static QR code bakes the destination URL directly into its modules. To change where it points, you generate and print a new code — the printed one is fixed forever.

A static code has no built-in scan analytics either, unless the URL it encodes is itself a tracked short link.

For a permanent link that will never change and never need scan-level reporting, static is fine; for a campaign, it is a liability.

Why you want a dynamic code for campaigns

A dynamic QR code encodes a short redirect URL, so the destination behind it is editable and every scan routes through a point where it can be counted.

That means you can fix a wrong destination after printing, repoint the same physical code to a new campaign next quarter, and see scan analytics broken down by time, place, and device.

For anything you print at volume or want to measure, dynamic is the only sensible choice — the editability alone can save a five-figure reprint.

Static vs dynamic for campaign codes

The short version of a decision worth understanding fully: campaigns need the editable, trackable redirect that only a dynamic code provides.

PropertyStatic QR codeDynamic QR code
Destination after printingFixed foreverEditable — repoint anytime
Scan analyticsNone built inTime, device, location per scan
Ties scans to revenueNoYes, on a revenue-aware tracker
Fix a typo after printingReprint requiredEdit the redirect, no reprint
Reuse the printed assetNo — one destinationYes — repoint per campaign
Best forPermanent, unchanging linksCampaigns and anything measured

Behaviour based on how static and dynamic QR codes are documented to work as of July 2026. A static code that encodes a tracked short link gains some of the dynamic column via the short link underneath.

Designing a QR code that actually scans

A code that cannot be scanned tracks nothing, and offline is exactly where scanning conditions are worst — bad light, awkward angles, motion, distance.

Design is not decoration here; it is the difference between a measured campaign and a wall of dead pixels.

Contrast and the quiet zone

Scanners need high contrast between the dark modules and the light background — dark-on-light is safest, and inverting to light-on-dark causes some scanners to fail.

Equally important is the quiet zone: the QR standard calls for a clear margin of roughly four modules around the code, and designs that crowd text or artwork against the edge break scanning.

Keep the contrast strong and the border clear, and most scan failures disappear.

Minimum size for the scan distance

A code has to be large enough for the distance it is scanned from.

A common rule of thumb is that the printed code should be at least about one-tenth of the intended scanning distance — a code scanned from two metres needs to be far larger than one on a business card held at arm’s length.

Billboards and trade-show banners fail most often because the code was sized for a flyer and printed for a room. Size for the farthest realistic scan, not the nearest.

Error correction and logos

QR codes carry error correction, and higher levels let the code still scan when part of it is obscured or damaged — which is what makes it possible to drop a logo into the centre.

The trade-off is that higher error correction and more encoded data both make the pattern denser.

This is another reason to encode a short link rather than a long URL: less data means a sparser, more forgiving code that tolerates a logo and a bit of print wear without failing.

Placement and the call to action

A code needs a reason to be scanned and a surface where scanning is physically possible.

Give it a clear call to action — what the scanner gets — rather than a bare code floating in space, and place it where someone has both a free hand and a moment: not on a highway billboard passed at speed, not below a shelf where a phone cannot reach.

The best-tracked code in the world earns nothing if it is printed somewhere no one can or wants to scan it.

Test the print, not the screen

A QR code that scans flawlessly on your monitor can fail on paper — at print size, under venue lighting, on a curved bottle, behind a laminate. Always test the actual printed artefact, at the actual distance, on a few real phones, before you print 10,000 of them. The cheapest quality check in marketing is scanning the proof; the most expensive mistake is discovering the code was too dense after the run.

Attributing an offline campaign

Once the codes scan, attribution is a matter of structure: one code per thing you want to measure, tags that carry the campaign, and a revenue connection at the end.

One code per placement

The unit of measurement is the code.

If you want to know whether the conference banner outperformed the magazine insert, they need different codes pointing at different tracked short links — one code across both placements collapses them into a single number you cannot split.

Generate a distinct dynamic code per placement, per variant, per anything you might later want to compare, and the offline campaign becomes as granular as a digital one.

UTM + QR together

The short link behind each code should carry UTM parameters just like any campaign link — utm_source=expo-banner, utm_medium=offline, utm_campaign=launch-sep26 — so scans land in the same channel reports as your digital traffic.

Because the parameters live on the redirect, not in the encoded URL, they do not bloat the code, and they let you compare offline placements against email and paid in one view rather than in a separate offline silo.

From scan to revenue

The final link in the chain is the billing webhook.

Because the scan set a first-party cookie that persisted through signup, the conversion carries the scan’s identity, and the payment event connects the Stripe, Paddle, Polar, or Lemon Squeezy charge back to the specific code.

That is what turns “1,200 scans” into “the launch banner produced 1,200 scans, 48 trials, and $1,800 in first-month revenue” — the number that decides whether you print it again.

QR tools compared

Most QR generators produce a working code; the spread is whether scans are tracked, editable, and connected to revenue, or whether the tool stops at the image.

CapabilityFree QR generatorBitly / Uniqode (QR)TrackRev Link Tracking
Generates a scannable codeYesYesYes
Dynamic (editable destination)Often noYesYes
Scan analytics (time/device/geo)NoYesYes
First-party server-side trackingNoLimitedYes
Ties scans to revenueNoNoYes
Branded short link on your domainNoPaidYes
Entry priceFree~$5–35/mo (QR tiers)$39/mo

Feature and price positions based on each product’s public documentation as of July 2026; competitor prices approximate. Confirm current QR capabilities on bitly.com and uniqode.com. TrackRev pricing as published at /pricing.

What a tracked scan is worth

At the platform median of $3.80 per tracked click, a code driving 3,000 scans a quarter represents around $11,400 in downstream revenue potential — a number that is completely invisible to a static code and a plain generator. The scan count alone would not justify the print run; the attributed revenue does. Offline campaigns get cut because they cannot prove their worth, and a tracked code is how they prove it.

When a plain QR generator is fine

Not every code needs tracking.

A Wi-Fi-password code on a café wall, a link to a restaurant menu, a one-off code in an internal deck — these point somewhere fixed, will never be compared against anything, and carry no revenue to attribute.

A free static generator is exactly right for them, and reaching for a tracked, revenue-aware tool would be overkill. Track the codes that represent a campaign or a spend you need to justify; leave the purely functional ones alone.

TrackRev QR code tracking

TrackRev’s QR code designer generates dynamic, branded codes pointed at short links on your own domain, so every scan is tracked server-side, tied to a first-party visitor, and connected through one shared data model to the Stripe, Paddle, Polar, or Lemon Squeezy revenue it earns.

You can edit a code’s destination after printing, brand it with a logo, and compare placements in the same channel reports as your digital traffic.

It is included on TrackRev's paid plans from $39/mo (unlimited links and events, custom domain), with a free tier of 1,000 tracked events.

Spin up a code quickly with the QR code generator, or wire it into your full link tracking setup.

On cost, the stack math is the honest close. The default setup pairs Bitly Growth (~$35/mo) for link tracking with Rewardful Starter (~$49/mo) for affiliates — $84+/mo across two tools with two different definitions of a conversion.

TrackRev is $39/mo for all three products on one data model — so your QR scans, your digital clicks, and your affiliate conversions all count the same sale.

When NOT to use TrackRev for QR codes

If your codes are purely functional — a menu, a Wi-Fi password, a fixed link that will never change or be measured — a free static generator is the right tool and TrackRev is more than you need.

TrackRev is also not a physical-signage or print-production platform; it produces the tracked code, not the billboard.

It is built for SaaS and subscription teams that want offline campaigns measured on the same data model as everything else, down to the charge it produced.

If there is no campaign and no revenue to attribute, there is nothing for a tracked code to add.

Found this useful? Share it.

PostLinkedIn

Frequently asked questions

Muzahid Maruf — Founder of TrackRev.io

Written by

Muzahid Maruf, Founder, TrackRev.io & Contant.io

Muzahid Maruf is the founder of TrackRev.io and Contant.io. He writes about marketing attribution, link tracking, and revenue analytics for SaaS teams.

Writes about Marketing attribution · Link tracking · Revenue analytics · SaaS growth

Keep reading

Related articles from the TrackRev blog.

Stop guessing where your revenue comes from.

Set up TrackRev in 5 minutes. Free tier covers 1,000 events / month — no card needed.

QR Code Tracking for Campaigns: From Scan to Sale · TrackRev