← All posts
Out-of-Home

How to Put a QR on a Billboard So People Actually Scan It

Adscano Team · 2 July 2026 · 8 min read

Slapping a QR code on a billboard is easy. Getting anyone to scan it is where most campaigns quietly fail. I've seen beautiful hoardings with a code so small, so high, and so poorly reasoned that its scan count for the month was, generously, single digits.

The good news is that a scanned QR isn't luck, it's a set of conditions you can engineer. Get the conditions right and the same code that got ignored can pull hundreds of scans. Here's the field-tested checklist, ordered roughly by how badly each mistake kills your results.

First, understand the physics of a billboard scan

A billboard QR is not a print-ad QR. On a magazine page the reader is close, still, and holding the page. On a billboard the "reader" is a commuter, often in a moving vehicle, twenty to forty metres away, with maybe a few seconds of attention. Every rule below flows from that reality.

Two things you need for a scan to even be possible:

  • The code has to be big enough to resolve at the viewing distance.
  • The viewer needs enough dwell time to notice, decide, and lift their phone.

If either fails, nothing else matters. So start there.

Size it for the distance, not the design mockup

The single most common failure is a code that looked fine at 100% on a laptop and is unreadable from the road. A rough working guide: the QR's width should be roughly a tenth of the viewing distance. Seen from 20 metres, you want a code around 2 metres wide. That sounds enormous until you remember the whole board is 12 metres across.

When in doubt, print a test at scale and check it from across a car park before it goes to the vendor. Cheaper than a wasted month of rent.

Placement is dwell time in disguise

Where the billboard is determines whether a scan is even physically possible. Rank your sites by dwell:

Location type Scan potential
Traffic signal / toll plaza Excellent, stationary viewers, phones often already out
Slow arterial / market road Good, low speed, repeated exposure
Metro exit / footfall zone Good, pedestrians can stop and scan
Highway at speed Poor, no time to scan safely; use for recall, not scanning

The lesson: put your scan-dependent creative where people are stopped or slow. A highway board at 80 km/h is fine for brand recall, but don't expect scans from it, nobody's fishing out their phone at that speed, and you don't want them to.

Give a reason to scan, this is half the battle

A naked QR code says "extra work, unknown payoff." Almost nobody accepts that trade. The scan needs an explicit reason, stated bigger than the code itself:

  • "Scan for ₹500 off your first order"
  • "Scan to book a free test drive"
  • "Scan to check today's rate"

The offer is the hook; the code is just the mechanism. In India you have a structural advantage here, UPI trained the entire country to point a camera at a square and trust what happens next. That habit is doing half your work. Don't waste it with a mystery square.

One more nudge that lifts scans: a short, literal instruction. "Open your camera and point here." Obvious to you, genuinely helpful to someone who's never scanned an ad before.

Lean on the native camera, don't send people to an app

A crucial practical point: standard QR codes are read by the phone's built-in camera with no app to download. That zero-friction path is why QR works for cold, broad billboard audiences, a stranger at a signal can scan and land on your page in seconds.

There's a slicker-looking alternative, image triggers, where the artwork itself is scannable and no QR square is needed. It keeps the creative clean, but it only works inside the Adscano scanner or an app embedding it, and it's in beta. So it fits engaged audiences who already have the app, not the general commuter. For a billboard trying to reach everyone driving past, a plain QR code is the right default. Save image triggers for campaigns aimed at an audience you know is app-equipped.

The landing page makes or breaks the scan you earned

Here's where campaigns throw away hard-won scans. Someone scanned, congratulations, that's the hard part, and then your homepage takes eight seconds to load on 4G in a moving auto and they bounce. You paid for that scan and got nothing.

Rules for the page behind the code:

  1. One screen, one offer, one action. No navigation, no hero video, no cookie wall.
  2. Fast on weak mobile data. Assume patchy signal and an older phone. Lightweight beats pretty.
  3. Match the promise. If the board said "₹500 off," the page's first line is "₹500 off", not a generic homepage the scanner has to hunt through.
  4. Ask for the minimum. One field to capture the lead. Every extra field costs you conversions.

We go deeper on this in our guide to mobile landing page best practices, worth a read before you build the page, because it's where most of the leakage happens.

Tag every code so you learn something

A scan you can't attribute teaches you nothing. If you run the same creative on five boards, use five unique tracked links, each tagged to its location. Otherwise you'll know you got 900 scans but never which flyover earned them, which is the exact decision you're trying to inform for next quarter. Per-placement codes turn "we got some scans" into "the Hebbal board out-scanned the Whitefield board three to one."

Quick pre-flight checklist

Before the file goes to the printer:

  • Code sized for actual viewing distance (test at scale)
  • Board location has real dwell time
  • A clear offer, stated bigger than the code
  • "Open your camera" instruction included
  • Standard QR (native camera), unless audience is known to have the app
  • Unique tracked link per board
  • Fast, single-screen, promise-matching landing page
  • High contrast, quiet zone around the code intact

Miss the first two and nothing else counts. Nail all eight and your billboard stops being a poster and starts being a lead source you can measure.

Want your next hoarding's QR to actually pull scans, and prove it? Start free and generate a tracked code in a couple of minutes.