QR codes had a long stretch of being a punchline, and then contactless menus made them ordinary. They now work well for app installs — with the caveat that most failures are not technical. They are physical.
The single most important decision
Never encode a store URL directly.
If your poster's QR code points at an App Store URL, every Android user who scans it hits a page for an app they cannot install. If it points at Google Play, every iPhone user does. There is no way to fix this after printing.
Encode a routing link instead — one URL that detects the device and sends each scanner to the right store. The printed artifact stays valid regardless of who scans it.
This also protects you from the second failure mode: a destination that changes. App Store URLs change when apps are re-listed. Campaign pages get retired. If the QR encodes a link you control, you re-point the destination and every printed copy keeps working. If it encodes the store URL, the print run is dead.
Physical constraints that decide success
Size. The usual rule is the code should be at least one tenth of the scanning distance. A code scanned from a metre away wants to be around 10cm. A billboard scanned from ten metres needs to be enormous — often the placement simply is not viable, and it is better to know that before printing.
Contrast. Dark code on a light background. Inverted codes work on some scanners and fail on others. Never place a code over a photograph or a gradient.
Quiet zone. The blank margin around the code is part of the spec, not decoration. Roughly four modules' width. Crowding it with a border or text is a common cause of scan failures.
Placement. Can a person physically hold a phone at the right distance and angle? Codes on floors, high on walls, or on moving vehicles routinely fail this test. So do codes on subway posters that riders pass at speed with no signal.
Lighting. Dim bars, direct glare, and reflective lamination all cause failures. Matte finishes scan better than gloss.
Tell people what they get
A bare QR code is a request for blind trust. Scans go up measurably when the code is accompanied by a short, concrete statement of what happens next:
Scan to download the app — free on iOS and Android
That is not marketing filler. It is the difference between "unknown code" and "I know what this does."
Logos in the middle
QR codes have error correction, which is why a logo in the centre usually works. But it is a budget you can overspend:
- Keep the logo under roughly 30% of the code area
- Use the highest error-correction level when adding one
- Test the actual printed output, not the on-screen preview
A logo that scans perfectly on a laptop display can fail on a 300dpi print at 5cm.
Where app QR codes earn their place
Packaging and inserts. The moment someone has your physical product is the highest-intent moment you will get.
Retail and point of sale. Shelf talkers, table tents, receipts.
Events. Badges, booth signage, session slides. Conference audiences scan readily.
Print advertising. The only reliable way to make print clickable.
On-screen. Presentation slides, TV, and video — where the audience has a phone in hand and cannot type a URL.
Desktop-to-mobile handoff. A visitor is on your desktop site but the product is a phone app. A QR code moves them to the device that can actually install it, without asking them to email themselves a link.
Measure the scan, not just the install
If the QR encodes a link you control, every scan is measurable: how many, from where, on what device, at what time of day. That turns physical placements into something you can compare, which is otherwise nearly impossible.
Placement A outperforming placement B by 3× is only knowable if both are instrumented.
How Bridgly handles it
Every Bridgly link has a QR code generated from the same routing URL, so scans and clicks land in the same place and appear in the same analytics.
There is also an embeddable QR widget for websites — useful for that desktop-to-mobile handoff — and QR logo uploads for branded codes.
Because the QR encodes your Bridgly link rather than a store URL, you can change the destination later without reprinting anything.
Start free · Read: what is a universal install link
The short version
- Encode a routing link, never a store URL — print cannot be fixed.
- Size ≈ one tenth of scanning distance. Go bigger.
- Preserve the quiet zone; keep contrast high; avoid gloss.
- Say what the code does in plain words next to it.
- Test the printed artifact on real phones, both platforms.
- Instrument scans so placements can be compared.
Frequently asked questions
- What should an app download QR code point to?
- A single routing link that detects the scanner's device and sends them to the App Store, Google Play, or a web fallback. Pointing a QR code directly at one store means every scanner on the other platform hits a dead end, and print cannot be changed once it ships.
- How big does a QR code need to be?
- A common rule of thumb is that the code should be at least one tenth of the expected scanning distance — roughly a 10cm code for a 1 metre scan. Err larger. The cost of a slightly bigger code is nothing; the cost of an unscannable one is the whole placement.
- Do QR codes expire?
- The code itself never expires — it is just an encoded URL. What breaks is the destination. If the URL it encodes stops working, every printed copy becomes dead. That is the argument for encoding a link you control and can re-point, rather than a store URL directly.
Read more
QR codes · 2 min read
QR code tracking: what you can measure and what you cannot
A QR code is just an encoded URL, so tracking scans means tracking that URL. Here is what a scan can and cannot tell you, how to tell print placements apart, and why static store links waste the whole exercise.
Fundamentals · 1 min read
Bitly vs Dub vs Bridgly: picking by job
Bitly shortens. Dub pays digital partners. Bridgly routes app installs and ties physical QR scans to attributed sales and commissions.
Growth · 2 min read
Web to app: moving mobile web visitors into your app
Most mobile visitors land on your website, not your app. The handoff between the two is where installs are won or lost. Here is what works, what annoys people, and how to measure it honestly.

