Company prints 5,000 flyers, distributes through 3 channels (street handouts, magazine insert, freebies), and at the end of the month the classic question: "which channel converted?" Without tracking, nobody knows. Next campaign decision is a guess.
QR Code solves this — but only if you do it the right way. This article shows the strategy: how to instrument each channel with a different QR, connect with Google Analytics, and measure CPA (cost per acquisition) by source.
The problem QR solves in offline marketing
Digital media is natively traceable: every click on Google Ads is recorded with source, device, geo. Offline media has historically been blind. How much did each lead from a magazine insert cost? Hard to say.
Dynamic QR Code becomes that bridge. Each scan is captured with:
- Exact time
- IP/city
- Device (Android/iOS, brand)
- Browser
- Source (which flyer/channel — you control)
With this you compare: magazine insert = $500, generated 87 scans → CPA = $5.75. Street flyer = $300, generated 23 scans → CPA = $13.04. Channel 1 wins. Next month, double investment in the insert.
The golden rule: one QR per channel
The biggest temptation is to use the same QR on all channels. Don't do it. You lose the ability to compare.
Create a separate dynamic QR for each channel/piece:
code2scan.com/q/flyer-street→ handed-out flyercode2scan.com/q/insert-magazine→ NYT magazine insertcode2scan.com/q/freebie-fair→ mug distributed at fair Xcode2scan.com/q/billboard-highway→ highway billboard
All point to the same landing page, but each QR has a different URL. Result: you see how many scans came from each channel.
In the Code2Scan dashboard you see it like this:
| QR | Scans this month | CPA |
|---|---|---|
| flyer-street | 23 | $13.04 |
| insert-magazine | 87 | $5.75 |
| freebie-fair | 12 | $20 |
| billboard-highway | 156 | $13 |
Immediate insight: insert is winning.
Plus: instrument with UTM for Google Analytics
For complete insight, the destination URL the QR redirects to should have UTM parameters. Example:
https://mysite.com/promo?utm_source=qr_flyer_street&utm_medium=offline&utm_campaign=launch_jun26
In Google Analytics you see not just scans, but:
- Bounce rate by channel (does channel X bring traffic that leaves fast?)
- Pages visited
- Conversions (if you have checkout/form)
Combination Code2Scan (scans) + GA (traffic quality) gives you the complete picture.
Strategy by media type
📰 Magazine/newspaper insert
- QR minimum 2.5cm (1in) (read at ~30cm)
- Put a clear call: "📱 Scan to get 20% OFF"
- Use unique coupon per QR to incentivize scan
- Print on the half-page, not on the edge (some readers cut the edge)
🚶 Street-handed flyer
- QR minimum 2cm (0.8in) (read at 30cm with person stopped at the corner)
- Catchy text on the front. QR on the back (doesn't pollute design)
- Clear incentive: coupon, freebie, limited offer
- Distribute at strategic times (subway exit, lunch hour)
🛋️ Direct mail (envelope in mailbox)
- QR minimum 3cm (1.2in) (customer reads at home, more relaxed)
- Good for subscription services, plans, financial
- Include recipient name (personalized printing) — elevates engagement
🚌 Billboard / bus ad / outdoor media
- QR minimum: viewing distance ÷ 10
- Avenue billboard (15m distance) → QR 1.5m
- Bus ad (5m while stopped at light) → 50cm
- Simple designs, high contrast — customer has ~3 seconds to scan
🎁 Physical freebie (pen, mug, notebook)
- QR minimum 1.5cm (0.6in) (small objects)
- Use vCard or short link to profile/landing
- Laminated/UV material to last (mug goes through dishwasher)
- Laser application or high-quality silk
Practical ROI calculation
For each channel:
ROI = (Channel revenue attributed - Channel cost) / Channel cost × 100
Attributed revenue: you count at checkout how many conversions came from that QR's utm_source. Multiply by average ticket.
Example:
- Magazine insert cost: $500
- Scans: 87
- Conversions (purchases): 12
- Average ticket: $90
- Revenue: $1,080
- ROI: (1,080 - 500) / 500 × 100 = 116%
Insert returned 2.16× the investment. Continues in next campaign.
Common mistakes in print marketing with QR
- Same QR on all channels → you lose comparison
- Generic QR pointing to homepage → very low conversion. Always point to dedicated landing
- No clear offer/CTA → customer scans, doesn't see value, leaves
- QR without testing → high fail rate, customer gives up
- Not comparing month over month → you don't learn which channel scales
Campaign checklist
Before printing:
- 1 dynamic QR per channel/piece
- Each QR points to dedicated landing (not homepage)
- Destination URL with complete UTM
- QR size adequate for reading distance
- Visible CTA next to QR
- Test on 3 phones + weak light
- Monitoring dashboard active
After 30 days:
- Compare scans by channel
- Cross-reference with conversions in GA
- Calculate CPA per channel
- Calculate ROI per channel
- Decide budget reallocation
Summary
Offline marketing with dynamic QR Code = data that traditional media never gave you. The rule is simple: 1 QR per channel, each with a unique URL, all pointing to dedicated landing with UTM.
In 60 days you know exactly which channel is worth scaling.
Create dynamic QRs for your campaign — dashboard shows scans per QR in real time.