Short answer
Create a dynamic QR code in Linkbreakers with device-based routing: iOS scans go to your App Store URL, Android scans go to your Google Play URL. Because it's a single code, you print one image but each platform gets the right destination automatically. Scan analytics show you which placements drive installs, broken down by device type.
How it works
A QR code for an app download is a standard dynamic QR code with a conditional routing rule. When someone scans it:
- Linkbreakers detects the device OS from the scan request.
- iOS users are redirected to your Apple App Store listing.
- Android users are redirected to your Google Play listing.
- Any other device (desktop, tablet, unknown OS) hits a fallback URL you define — typically your app's marketing landing page.
This works because dynamic QR codes encode a short redirect URL, not the App Store URL itself. All routing logic runs on the server, invisible to the scanner.
Why not link directly to one store URL?
If you paste your App Store URL into a static QR code, Android users who scan it will land on a page their device can't open. A store URL doesn't cross platforms — Apple links only work on iOS, Google Play links only work on Android. Device-conditional routing solves this with one printable code.
| Approach | iOS | Android | Desktop |
|---|---|---|---|
| Static link to App Store | ✓ Works | ✗ Error page | ✗ Error page |
| Static link to Google Play | ✗ Error page | ✓ Works | ✗ Error page |
| Linkbreakers device routing | ✓ App Store | ✓ Google Play | ✓ Fallback page |
Step-by-step
1. Gather your store URLs
Before you create the QR code, collect both store links:
- App Store: Open your app listing in App Store Connect, or search your app in a browser and copy the
https://apps.apple.com/...URL. - Google Play: Find your app in the Play Store and copy the
https://play.google.com/store/apps/details?id=...URL. - Fallback URL: Your app's website or a universal landing page that works on any device.
2. Create a link with device conditions in Linkbreakers
- In your Linkbreakers dashboard, create a new Link and open the workflow editor.
- Add a Device condition step. See how to use device conditions for the full walkthrough.
- Set the condition to route iOS traffic to your App Store URL.
- Add a second branch for Android traffic pointing to your Google Play URL.
- Set the fallback destination to your marketing landing page.
- Name the link something descriptive like "App download – conference flyer" so it's identifiable in analytics later.
3. Create one link per placement
Each physical surface — a flyer, a poster, a product box, a slide — should have its own Linkbreakers link. This lets you compare scan volume and install rates by channel:
| Placement | Scan intent |
|---|---|
| Product packaging | High — customer already holds the product |
| Conference or event flyer | Medium — depends on event relevance |
| In-store POS display | High — purchase-moment intent |
| Direct mail piece | Medium — depends on audience quality |
Using separate links per placement takes an extra minute to set up and gives you data that's otherwise impossible to reconstruct later.
4. Generate and download the QR code
Once the link is configured, open the QR code designer in Linkbreakers:
- Download as SVG for print materials (scalable, no pixelation at any size).
- Download as PNG for digital surfaces: website banners, email campaigns, slide decks.
- Add your app icon or brand logo in the center of the code to increase recognition.
- Use high-contrast colors — dark module color on a light background. Avoid low-contrast combinations that reduce scannability. See QR code scanability best practices for full guidance.
Minimum print size for reliable scanning: 2 × 2 cm (about 0.8 × 0.8 inches). For large-format prints like posters, increase proportionally.
5. Track scans and installs
Every scan is logged in your Linkbreakers dashboard with:
- Device type (iOS vs Android) — shows your actual platform mix.
- Timestamp — identify peak scan times by placement.
- Geographic location — see which cities or regions drive the most engagement.
- Unique vs. repeat scans — distinguish genuine new users from repeat interactions.
Linkbreakers tracks scans, not installs. To close the loop, use UTM builder in Linkbreakers to append campaign parameters to your store URLs, then match them to install events in AppsFlyer, Adjust, or Firebase.
Limits and caveats
App Store links require iOS to open correctly. Even with device routing, if a desktop user scans and your fallback is an App Store URL, they'll see an error. Always set a working fallback URL.
Routing relies on the User-Agent header. Custom browsers or OS spoofing can cause misroutes, but this is rare for typical consumer devices.
Scan count ≠ install count. Someone can scan your code and close the App Store without installing. Scan metrics measure interest, not conversions. Pair Linkbreakers scan data with your app analytics platform to calculate scan-to-install conversion rates.
App Store and Play Store redirects add one step. The OS-level prompt to open the store app adds friction. Test the full flow on both iOS and Android before printing any materials.
Dynamic codes require an active Linkbreakers account. If your subscription lapses, all printed codes stop working. A branded short domain (e.g., get.yourapp.com) makes the code look more trustworthy in marketing materials.
Frequently asked questions
Can I use one QR code for both iOS and Android?
Yes — that's exactly what device-based routing in Linkbreakers does. One code, one image to print, two destinations based on the scanner's OS. See how to use device conditions for setup details.
What should I do if my app is only on one platform?
Set the QR code destination to your single store URL and use the fallback for the other platform. For example, if you're iOS-only, route Android users to a page that explains the app isn't available on Android yet (or prompts them to sign up for a waitlist). Don't send Android users to a broken App Store link.
How do I track which marketing channel drives the most installs?
Create a separate Linkbreakers link for each campaign placement. In your store URLs, append UTM parameters using the UTM builder to pass campaign data into your mobile attribution platform. This connects scan events in Linkbreakers to install events in AppsFlyer, Adjust, or Firebase.
Can I update the store URL later without reprinting?
Yes. Because the QR code points to a Linkbreakers dynamic link, you can update the destination URLs in your dashboard at any time. If your app's Play Store ID or App Store URL changes, update the link — the printed QR code automatically follows the new destination.
What size should I print the QR code for packaging?
For product packaging, aim for at least 2 × 2 cm on smaller surfaces and 3 × 3 cm or larger when space allows. Smaller codes work but are unreliable in poor retail lighting. See QR code size and print dimension benchmarks for detailed size-to-scan-reliability data.
About the Author
Laurent Schaffner
Founder & Engineer at Linkbreakers
Passionate about building tools that help businesses track and optimize their digital marketing efforts. Laurent founded Linkbreakers to make QR code analytics accessible and actionable for companies of all sizes.
Related Articles
Advanced contact card strategies for business networking
Leverage contact card analytics, automation, and integration features to transform networking from chance encounters into systematic relationship building
Are QR codes safe? Risks, scams, and how to scan securely
QR codes can’t steal data by themselves, but scams can. Learn the threat model, mitigations, and a quick safety checklist.
Best free QR code trackers: features, limits, and when to upgrade
How to evaluate free QR tracking tools, what limits matter, and clear thresholds for moving to a paid plan.
On this page
Need more help?
Can't find what you're looking for? Get in touch with our support team.
Contact Support