Skip to main content
Most QR Code campaigns fail for reasons you can fix before anything goes to print. The destination changes and the code can’t follow. The code is too small for the distance people stand at. Nobody knows why they should scan it. None of that is bad luck — each one is a decision made early, usually without realizing it was a decision.

Choose Dynamic before you print anything

This is the one that cannot be undone later. A Static QR Code encodes its destination into the pattern itself, so the destination is fixed the moment the code exists. A Dynamic QR Code resolves through Scanova, so you can point it somewhere else at any time — after the packaging is printed, after the banner is hung, after the campaign has already started. Campaigns change. Landing pages get renamed, offers expire, microsites get retired. With a Dynamic QR Code, that’s an edit. With a Static one, it’s a reprint. Dynamic is also the only way to get scan data at all. A Static code produces none — there’s no server-side step for Scanova to count. Size follows viewing distance, not the space left on the layout. A billboard code and a business-card code are solving different problems, and the billboard one loses if it is sized to look tidy rather than to be read from across a street.
  • Put it at eye level and where people already stop walking
  • Keep it off curved, reflective, or textured surfaces, which distort the pattern
  • Leave the quiet zone — the clear margin around the code — free of other artwork
  • Keep contrast strong: a dark code on a light background survives bad lighting, a low-contrast one doesn’t
Then check it before the print run, not after. Test QR Code confirms a code resolves, and if you’ve customized the design, Custom QR Code design covers how far you can push colors and logos before scannability suffers.

Tell people what they get

A bare QR Code on a poster asks for effort and promises nothing. Name the reward next to it — Scan for 10% off, Scan to see the menu, Scan to register — in text large enough to read from the same distance the code is scanned from.

Make the destination survive a phone

Whoever scans is standing up, on mobile data, with one hand. A slow page loses them before it renders. Send them to something built for that: a page built in Scanova renders on mobile by default, or point the code at a page you already know is fast. Either way, deliver what the call to action promised, immediately — not a homepage they have to navigate from. A scan preview showing your own domain reads as legitimate in a way a generic short link does not, and on packaging or signage that difference matters. Custom domains replace the default short URL with one of your own.

Know whether it worked

Scan counts alone won’t tell you much. Three things make the numbers usable:
  • UTM parameters carry the campaign into your own analytics, so QR Code traffic sits beside your other channels instead of arriving as direct traffic
  • Bot scan exclusion filters out link previewers and crawlers, which otherwise inflate early numbers and make launch day look better than it was
  • Scheduled reports put the same figures in front of the people who asked for them, without anyone logging in
Give each placement its own QR Code rather than reusing one everywhere. Two codes on two channels tell you which channel worked; one code across both tells you nothing. Folders and tags keep that manageable once a campaign runs to dozens of codes.

Keep control after launch

A printed code is permanent. What it does doesn’t have to be.
  • Scheduling turns a code on or off at a set date, which suits a seasonal offer or an event that ends
  • Conditional redirection sends scanners to different destinations by country, language, device, or time
  • QR Health Center surfaces codes that have stopped working without anyone noticing — expired schedules, unpublished drafts, broken form links — across the whole account at once
Check the Health Center during a campaign, not after it. A code that stopped resolving in week one is only expensive if nobody notices until week six.