Skip to content
EU Made
All articles
AnalyticsGuides

How to Measure Promotional Product ROI with QR Codes

Promotional products are famously unmeasurable. A QR code on every unit changes that — here are the metrics, the math, and how to improve each stage.

July 16, 2026 · 4 min read

Ask a marketing team what their last digital campaign returned and you'll get a dashboard. Ask what the branded merchandise returned and you'll get a shrug — the budget went out, goodwill presumably came back, nobody can prove anything.

The problem isn't the merchandise. It's that classic promo products have no feedback loop: once a pen leaves your hand, it never reports back. Put a QR code on every unit and the loop closes — each giveaway becomes a measurable touchpoint with a timestamp and a location. Here's how to actually do the measuring.

The four numbers that matter

1. Scans. The raw count of wrapper-to-phone moments, live in your dashboard. This is the number classic merch can never give you.

2. Scan rate — scans ÷ units distributed. This is your creative metric: it tells you whether the wrapper, caption, and context made people act. Track it per batch and per event.

3. Conversions — whatever your destination page counts as success: form submits, draw entries, bookings, orders. Measure it with your normal web analytics on the destination page.

4. Cost per outcome — batch cost ÷ scans (or conversions). This is the line that survives contact with a CFO, because it's directly comparable with your cost per click and cost per lead from paid channels.

A worked example

Say you order 1,000 chocolate squares for an event, and the batch costs you €260 all-in (illustrative — real pricing is per product and volume on each product page).

  • The wrappers get 180 scans → scan rate 18%, cost per scan €1.44.
  • The destination — a demo-booking page — converts 25 of those scanners → cost per booked demo: €10.40.

Whether €10.40 per demo is good news depends on your business — but for the first time the giveaway line item is in the same spreadsheet as your paid channels. That's the entire game. (Numbers above are made up to show the arithmetic, not benchmarks.)

Improving each stage

The funnel has three stages, and each one has its own fix:

More scans per unit — this is wrapper design and context:

  • Strong contrast between code and wrapper color (the editor warns you when it isn't).
  • A caption that promises something: "Scan & win" beats "Scan me" beats silence.
  • Human prompting — a handout with one spoken sentence dramatically outperforms an unattended bowl, as covered in the trade show playbook.

More conversions per scan — this is the destination:

  • Mobile-first, loads instantly, one action. Every scanner is on a phone, often standing up.
  • Match the promise: if the caption said "win", the page must open with the draw — not your homepage.

More value per batch — this is the re-pointable link:

  • Re-point the destination when a campaign ends instead of letting late scans hit a dead promo page. Candy keeps scanning for weeks after distribution; that tail is free reach if the code still leads somewhere current.

Attribution: make the scans traceable

  • Add UTM parameters to your destination URL (utm_source=qrcandy, utm_campaign=spring-fair). Scanner behavior then shows up in your normal analytics, attributed correctly.
  • One batch per channel. Splitting an order between, say, the event bowl and parcel inserts as separate batches gives each its own scan count — an A/B test with candy.
  • Name batches properly. "Stockholm fair May" beats "Batch 2" when you're reading the numbers a quarter later.

What a "good" scan rate is

Honest answer: there is no trustworthy public benchmark, and anyone quoting one is guessing. Scan rates swing wildly with context — an attended handout with a spoken prompt behaves nothing like an anonymous bowl, a prize draw nothing like a homepage link.

The practical approach: treat your first batch as the baseline, then compete with yourself. Same product, better caption — did the rate move? Same wrapper, richer offer? After two or three batches you'll have the only benchmark that means anything: your own.

FAQ

Can I see who scanned my candy?

No — and that's a feature. Scans are counted with timing and coarse geography, not personal identity, which keeps the measurement privacy-friendly. If you want identified leads, put a voluntary form behind the code and let the destination do the capturing.

How do I A/B test with physical products?

Two ways: order two batches with different wrapper designs pointing at the same destination (tests the creative), or one design whose destination you re-point between periods (tests the offer). Batch-level scan counts do the rest.

Do QR scans show up in Google Analytics?

The scan itself hits the short link, which forwards to your destination — so your analytics sees a normal visit. Add UTM parameters to the destination URL and those visits are cleanly attributed to the candy campaign.

What if my campaign changes after the candy is printed?

Nothing needs reprinting. The printed code points at a re-pointable short link, so you change the destination in the dashboard and every wrapper already in circulation follows — old candy, new campaign.

Keep reading