Marketing campaigns
Attribute offline marketing with one QR code per placement
If two placements share a QR code, you cannot tell which one drove the scan. Generate a separate code for every physical location or ad unit, name it for where it lives, and read the scan data as directional evidence, not proof of a sale.
Marketing teams already know not to run one UTM link across five channels. The same discipline applies to QR codes: the code is the tracking unit, so it has to map one-to-one with a placement you can act on independently.
Why one code per placement, not per campaign
A campaign usually runs across several physical or digital placements at once: a bus shelter poster, a direct mail insert, a magazine ad, a shop window. If all of them carry the same QR code, the scan count tells you the campaign got attention somewhere, but not which placement earned its budget.
Issue a distinct code per placement instead. The destination page can be identical across all of them — same landing page, same offer — because the code, not the URL text, is what's doing the tracking.
A naming convention that survives a busy quarter
- Structure names as placement-location-date: "busshelter-highstreet-oct" beats "QR3" once you have thirty codes running.
- Keep a shared spreadsheet mapping code name to physical location and installation date, separate from the QR tool itself. When a placement comes down, note the date there.
- Reuse the same naming pattern across teams so a scan report from three months ago is still legible without asking who set it up.
Print vs digital-out-of-home
| Print (flyers, posters, mailers) | Digital-out-of-home (screens, billboards) | |
|---|---|---|
| Lead time | Days to weeks | Often changeable same-day |
| Cost of a mistake | High — reprint or reprint run | Low — swap the creative file |
| Typical dwell time | Seconds to minutes (mail, leaflet) | Seconds (drive-by, transit) |
| Code size needed | Depends on read distance | Large — scan distance is long and often from a moving position |
| Best use of a dynamic code | Avoiding a reprint if the offer changes | Swapping the destination between dayparts or audiences |
Connecting an offline scan to an online result
The scan record shows you time, coarse location, device and referrer — the same signals you'd expect from any short-link click. It does not know who scanned, and it does not know what they did after the redirect unless your destination page has its own analytics or conversion tracking.
To connect a scan to a result, land the code on a page with a clear, trackable next step: a form, a discount code entry, a booking widget with its own analytics. Then you can say "this placement generated N landing page views" and, if the landing page tracks conversions, "and M of those converted."
What a scan number does and does not prove
- It proves someone's phone camera pointed at that code and their browser opened the link. It does not prove they read the ad, understood the offer, or intended to buy anything.
- A high scan count on a low-traffic placement is a stronger signal than the same count on a high-traffic one — normalize by estimated impressions or footfall where you can.
- Multiple scans from the same rough location and short time window are often the same person trying again, not multiple people.
- A scan with no further action on the landing page is still useful data: it tells you the code and placement work, even if the offer didn't land.
Practical setup for a launch
- 01
List every placement
Write down each physical or digital spot the campaign will appear before generating anything.
- 02
Create one code per placement
Name each one for its location, not for the campaign as a whole.
- 03
Point them at the campaign landing page
Destinations can be identical; the code is what separates them in your reporting.
- 04
Check scans against install dates
Compare scan timing to when each placement actually went live, since delivery schedules slip.
- 05
Re-point or retire at the end
When the campaign ends, either point the code at a successor offer or retire it so late scans don't land on a dead promotion.
Common questions
- Should every ad placement get its own QR code?
- Yes, if you want to know which one performed. A shared code across placements only tells you total scans, not which location or medium drove them.
- Can a QR scan prove a sale happened?
- No. A scan record shows the redirect happened, not what the person did afterward. Pair the code with a landing page that has its own conversion tracking if you need that link.
- What should I name my campaign codes?
- Something that describes the physical placement and rough date, like "mailer-northregion-nov", rather than a generic campaign name, so reports stay readable months later.
- Can I reuse a QR code across two different campaigns?
- You can re-point the destination, but keep in mind old printed material carrying that code will also follow the new destination. Retire codes tied to specific print runs instead of reusing them.
- Does digital-out-of-home need a different code strategy than print?
- The attribution logic is the same, but screens let you change the destination and creative same-day, so it's worth re-pointing codes between dayparts or audiences rather than leaving one static offer up.
Keep reading
- QR code analyticsSee when, where and on what device your printed material gets scanned.
- Flyers and postersMeasure which print drop actually produced scans.
- Dynamic QR codesHow editable QR codes work and why they beat static codes in print.
- How QR scan tracking worksWhat a scan record can and cannot tell you, and how to read the numbers.
Print once. Change the destination anytime.
Create a free account, generate your code and edit where it points whenever you need to.
