How a DTC brand drove 40% more app installs with smart packaging
A direct-to-consumer wellness brand embedded conditional QR codes in product packaging — routing iPhone users to the App Store and Android users to the Play Store, automatically.
The challenge
A fast-growing DTC wellness brand shipped 50,000+ units per month with printed QR codes on each box linking to their mobile app. The problem: a single URL can't direct users to both the App Store and the Play Store.
They were using a generic landing page with two buttons — "Download for iOS" and "Download for Android" — which added friction. Analytics showed a 35% drop-off on that intermediate page. Users scanned, saw an extra step, and abandoned.
They also had no visibility into which products or regions were driving the most scans, making it impossible to attribute app installs to specific packaging campaigns.
The solution
They replaced their static QR codes with ScanStack dynamic QR codes using conditional routing. Each scan is automatically detected and routed to the right destination — no landing page needed.
Conditional routing
iOS → App Store. Android → Play Store. Desktop → product page. Zero friction, zero extra clicks.
Bulk generation
Unique QR codes per SKU, generated via API and embedded into packaging templates automatically during the print run.
Webhooks
Every scan fires a webhook to their analytics pipeline. They can attribute app installs to specific products, batches, and campaigns.
Implementation
// Create a QR code with conditional routing rules
curl -X POST https://api.scanstack.dev/v2/qr \
-H "x-api-key: qr_your_key" \
-d '{
"type": "dynamic",
"target_url": "https://example.com/product/vitaboost",
"label": "VitaBoost Box - Q1 2026"
}'
// Add OS-based routing
curl -X POST https://api.scanstack.dev/v2/qr/:id/rules \
-H "x-api-key: qr_your_key" \
-d '[
{ "condition_type": "os", "condition_value": "ios",
"target_url": "https://apps.apple.com/app/example/id123" },
{ "condition_type": "os", "condition_value": "android",
"target_url": "https://play.google.com/store/apps/details?id=com.example" }
]'
The integration took their engineering team less than a day. QR codes are generated as part of their existing packaging pipeline via the bulk API, and scan events flow into their Mixpanel instance via webhooks.
// Set up a webhook to track scans in real time
curl -X POST https://api.scanstack.dev/v2/webhooks \
-H "x-api-key: qr_your_key" \
-d '{
"url": "https://api.example.com/scanstack-hook",
"events": ["scan.completed"],
"secret": "whsec_your_signing_secret"
}'
Results
Increase in app installs from packaging
Intermediate landing pages needed
QR codes generated per month via API
Scan attribution per SKU and region
Key takeaway
"We were losing a third of our potential app users to a dumb landing page. Conditional routing eliminated that step entirely. Now someone scans the box and they're in the App Store in under a second. That's it. The webhook integration was the cherry on top — we finally know which products actually drive installs."
— Head of Growth
ScanStack features used
Sell physical products?
Add smart QR codes to your packaging in minutes. 30-day money-back guarantee.