How to set up adaptive QR code routing
Adaptive routing lets one printed square behave differently for each scanner: iPhone to the App Store, Android to Google Play, French speakers to your French page, a launch code to a countdown before the drop and the product page after it.
- 1
Open a Pro code
Adaptive rules live on the code detail page in your dashboard. Static codes cannot do this — their destination is physically inside the pattern.
- 2
Turn adaptive rules on
Enable the rules panel. Until you add a rule, everything continues going to the code's normal destination.
- 3
Understand rule order
Rules are evaluated top to bottom and the first match wins. Put the most specific rule first — a device rule above a catch-all language rule, for example.
- 4
Add a device rule
Match ios, android, mobile or desktop. Useful for app-store splits and for sending desktop scanners to a page that makes sense on a large screen.
- 5
Add a language rule
Matches the scanner's Accept-Language header. A rule for 'en' also matches 'en-CA' and 'en-GB', so you don't have to enumerate regions.
- 6
Add a campaign window
Give a start and end and the rule only applies between them. After the window closes, scans move to your fallback — ideal for printing drop material weeks ahead of the launch.
- 7
Add a scan cap
A cap routes the first N human scans to one destination — a limited offer, a first-hundred discount — and everything after it to the fallback.
- 8
Set a fallback
The fallback catches closed windows and exhausted caps. If you leave it empty we use the code's normal destination. A ForeverQR code never resolves to nowhere.
- 9
Test every branch before printing
The test page replays a scan and shows exactly which rule fired and where it sent the scanner. Check each branch there — a printed label is expensive to be wrong about.
Retired or mistyped codes still land on a branded ForeverQR page rather than a browser error, so a printed square never reads as broken.
