Context-Aware QR Codes: One Code, Many Destinations (Full Guide + Use Cases)
Context-aware QR codes send each scanner to a different destination based on their device, country, and the time of day — from one printed code. Here's how they work, every use case, and how to set them up.
Short answer: A context-aware QR code is one dynamic QR code that sends each scanner to a different destination based on their device (iPhone, Android, or desktop), their country, and the time of day. You print a single code, set a few "if this, then go here" rules, and it routes every scan to the most relevant place — no reprinting, ever. The classic example: one code that opens the App Store on iPhones and Google Play on Android.
What is a context-aware QR code?
A normal static QR code points everyone to the same fixed place. A normal dynamic QR code also points everyone to one place, but you can edit that place later and track scans.
A context-aware QR code goes a step further: it can send different people to different places at the same time, automatically, based on who they are and when they scan. It's sometimes called a smart QR code or a multi-URL QR code.
It's still one printed code. The intelligence lives in the routing rules behind it.
How context-aware routing works
When someone scans a dynamic qre.gg code, the scan passes through qre.gg for a few milliseconds before redirecting. In that instant, qre.gg knows three things about the scan:
- Device — iOS, Android, or desktop (read from the browser).
- Country — derived from network/CDN signals (e.g. US, IN, GB).
- Time — the current day and hour (in UTC).
You define an ordered list of rules. Each rule can combine any of those conditions, and they're checked top to bottom — the first rule that fully matches wins. If none match, the code uses a default destination. That's the whole model:
Rules are checked in order. First full match wins. Otherwise → default.
Because conditions in a single rule are combined with AND, you can be as specific as "Android users in India on weekday evenings → this link," and put it above broader rules.
The three conditions
| Condition | Options | Example |
|---|---|---|
| Device | iOS, Android, Desktop | iPhone → App Store |
| Country | Any country (ISO code) | India → in.example.com |
| Time window | Days of week + start/end (UTC) | Mon–Fri 09:00–17:00 → support page |
Leave a condition blank and it means "any." A rule with no conditions isn't allowed — that's what the default destination is for.
How to set one up on qre.gg (step by step)
- Create a dynamic QR code (context-aware routing is a Pro/Teams feature).
- Open the Context-aware QR editor for the code.
- Set the default destination — where scans go if no rule matches.
- Click Add rule. For each rule, pick any combination of country, device, and an optional time window (toggle it on, choose days + start/end in UTC), then enter the destination URL.
- Order your rules with the up/down arrows. Put the most specific rules first (remember: first match wins).
- Save. Your one code now routes every scan automatically — and you can edit the rules anytime without reprinting.
💡 Tip: always set a sensible default. It's the safety net for anyone whose device, country, or scan time doesn't match a rule.
Every use case (with examples)
1. App downloads — send each phone to the right store
The #1 use case. One code on your packaging, poster, or ad:
- Rule: iOS → App Store link
- Rule: Android → Google Play link
- Default → your website (covers desktop and anything else)
No more printing two codes or a "scan for iPhone / scan for Android" mess.
2. Country-specific destinations — localize automatically
Send each country to its own store, language, or pricing page:
- Rule: US → us.yourstore.com
- Rule: India → in.yourstore.com (₹ pricing)
- Rule: Germany → de.yourstore.com (German)
- Default → your global/English site
Great for international products, regional promos, and compliance (showing the right legal/return info per market).
3. Restaurant menus — change by time of day
One QR code on the table, three menus:
- Rule: 07:00–11:00 → breakfast menu
- Rule: 11:00–16:00 → lunch menu
- Rule: 16:00–23:00 → dinner menu
- Default → all-day menu
Add a happy-hour window (e.g. Fri 16:00–18:00 → cocktails) above the others. Update prices or swap menus anytime — the printed code never changes.
4. Retail & packaging — region + device combined
A product sold worldwide:
- Rule: iOS + US → App Store (US)
- Rule: Android + US → Google Play (US)
- Rule: India → in.brand.com/product
- Default → global product page
5. Events & conferences — route by day
A lanyard or signage code across a multi-day event:
- Rule: Day 1 (specific date window) → Day 1 schedule
- Rule: Day 2 → Day 2 schedule
- Default → event home / live agenda
6. Business hours — open vs. closed
A code on your shop door or invoice:
- Rule: Mon–Fri 09:00–17:00 → live chat / booking
- Default → "leave a message" / FAQ page
7. Marketing campaigns — test and target
- Send different countries to localized landing pages and compare scan analytics.
- Point mobile users to a tap-to-call or wallet pass and desktop users to a full pricing page.
- Run a flash sale window (time rule) that auto-reverts when it ends.
8. Real estate & auto — mobile-first
A yard sign or window sticker:
- Rule: iOS / Android → mobile listing with tap-to-call & photo gallery
- Default → full desktop listing
9. Education — schedule-based resources
A code in a classroom or handout:
- Rule: Class hours (time window) → today's materials / live session
- Default → course homepage
Context-aware vs. static vs. regular dynamic
| Static | Dynamic | Context-aware | |
|---|---|---|---|
| Editable after printing | ❌ | ✅ | ✅ |
| Scan tracking | ❌ | ✅ | ✅ |
| One destination for everyone | ✅ | ✅ | ❌ (routes by context) |
| Device-based routing | ❌ | ❌ | ✅ |
| Country-based routing | ❌ | ❌ | ✅ |
| Time-based routing | ❌ | ❌ | ✅ |
New to the difference between static and dynamic? Start with Static vs Dynamic QR Codes, then come back here.
Best practices
- Order matters. Put the most specific rules at the top; broad ones below.
- Always set a default. It catches every scan that doesn't match a rule.
- Keep device URLs exact. Use the real App Store / Google Play links for app codes.
- Remember time is in UTC. Convert your local open/close hours to UTC when setting windows.
- Test like a user. Scan from an iPhone, an Android, and (if you can) a VPN in another country to confirm each path.
- Watch your analytics. Use scan data by device and country to refine rules — if most scans are Android, make sure that path is perfect.
Common questions
Does the user notice the routing? No — it happens during the redirect, in milliseconds. There's no prompt and no app required.
What if I don't add any rules? Then it behaves like a normal dynamic code: everyone goes to the default destination.
Can I change the rules after printing? Yes — that's the point. Edit rules anytime; the printed code stays the same and updates on the next scan.
Put one code to work everywhere
Context-aware QR codes turn a single printed code into a smart router: the right store for each phone, the right language for each country, the right menu for the time of day. Set it up once, edit it forever.
Create a dynamic QR code → and open the Context-aware QR editor to add your first rules. Want the basics first? Try the free QR code generator or learn how to make an editable QR code.
Make a QR code that never breaks.
Create a free dynamic QR code in seconds — editable after printing.
Create your first QR →Keep reading
Static QR codes are fixed and free; dynamic QR codes are editable and trackable. Here's the difference, when to use each, and how to choose.
How to Generate QR Codes Instantly: The qre.gg URL HackThe fastest way to make a QR code: just type qre.gg/ before any URL in your address bar. No app, no sign-up. Step-by-step guide with examples.