Generate dynamic QR codes in seconds & track scans in real time.Generate dynamic QR codes in seconds & track scans in real time.Generate dynamic QR codes in seconds & track scans in real time.Generate dynamic QR codes in seconds & track scans in real time.Generate dynamic QR codes in seconds & track scans in real time.Generate dynamic QR codes in seconds & track scans in real time.
← All posts

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

ConditionOptionsExample
DeviceiOS, Android, DesktopiPhone → App Store
CountryAny country (ISO code)India → in.example.com
Time windowDays 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)

  1. Create a dynamic QR code (context-aware routing is a Pro/Teams feature).
  2. Open the Context-aware QR editor for the code.
  3. Set the default destination — where scans go if no rule matches.
  4. 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.
  5. Order your rules with the up/down arrows. Put the most specific rules first (remember: first match wins).
  6. 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

StaticDynamicContext-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