Overview
QR deep links convert offline intent into measurable app engagement. When a user scans your QR code, SDDL records the click, keeps UTM parameters and any custom metadata, and then opens the app or—if the app is not installed yet—sends the user to the App Store or Google Play. On first launch, your app retrieves the payload and navigates to the appropriate screen such as a product page, coupon view, onboarding step or event details.
You control domains, fallbacks and optional intermediate pages to maximize reliability across scanners and built-in camera apps. SDDL supports Universal Links (iOS) and App Links (Android) using either your verified custom domain or an SDDL subdomain.
Use cases
- Retail & packaging: scan to redeem a coupon, open a PDP or a loyalty screen.
- Events & OOH: posters and badges that open the event schedule or ticket details.
- Restaurants & travel: menu, booking flow, or location-aware offers inside the app.
- After-sales & support: QR on invoices that opens warranty, return status or chat.
- Education & onboarding: scan to unlock a module, a course or a tutorial step.
How the flow works
- A user scans your QR code that points to an SDDL link (you can append standard UTM parameters).
- SDDL stores context and routes to the app if present; otherwise the user is sent to the store.
- On the first app launch, the payload is available so you can open the right screen and apply coupons or IDs.
- Click data, referrers and geo summaries appear in your SDDL analytics; optional webhooks notify your backend.
For camera apps and third-party scanners that prefetch URLs, enabling an intermediate page can help ensure the intent is captured before the store jump.
Setup & domains
Configure Universal Links and App Links once and reuse them across all QR campaigns. SDDL can host
apple-app-site-association
and assetlinks.json
from your settings—no extra hosting.
Use a verified custom domain for branding, or {YOUR_ID}.sddl.me
to get started quickly.
Integration (SDK or REST)
Choose the integration style that matches your stack. The SDKs simplify runtime links and cold-start handling. If you prefer minimal dependencies, you can call the REST endpoint directly to retrieve the payload on launch.
- With SDK: official SDKs for iOS, Android and Flutter handle Universal/App Links and cold-start automatically.
- Without SDK: extract the
{key}
from the scanned URL and request the payload via API. If the key isn’t present, resolve via the fallback endpoint.
QR best practices
- Readable design: keep enough contrast and quiet zone; test on common print sizes and distances.
- Short URLs: use SDDL links to keep QR density low; avoid excessive query params in the code itself.
- Consistent UTM: add
utm_source
,utm_medium
,utm_campaign
and optionalutm_content
for reporting. - Intermediate page when needed: helps counter prefetching and preserves the payload before the store.
- Clear CTA: tell users what happens after the scan (e.g., “Open in app to redeem”).
- Test scanners: verify with native camera apps and popular third-party QR apps on iOS and Android.
Analytics & webhooks
SDDL aggregates per-link clicks, device breakdown, top referrers, countries and cities. UTM parameters are preserved so you can attribute scans to specific offline placements. If you need server-side workflows, subscribe to webhooks and reconcile conversions in your backend. SDDL focuses on reliable deep linking, payload delivery and first-party link analytics.
FAQ
Do I need a special QR generator?
No. Any QR tool that encodes a standard URL will work.
Point it to your SDDL link (custom domain or {YOUR_ID}.sddl.me
), and we handle the rest.
Will users land on the correct screen after install?
Yes. The payload is delivered on the first app launch so you can route to the intended screen and apply coupons or IDs.
Is an SDK required?
No. You can integrate through REST only. SDKs are available if you prefer less custom code for cold-start and runtime links.
How do I avoid issues with camera apps that prefetch URLs?
Enable the optional intermediate page for QR campaigns. It helps ensure the intent is captured before sending users to the store.
Related guides
Continue exploring-
Deep Links — The Complete Guide
Guide -
Deferred Deep Links — How They Work
Guide -
Universal Links (iOS) — Setup & Troubleshooting
Guide -
Firebase Dynamic Links Alternative
Guide -
Branch.io Alternative
Guide -
App Links (Android)
Guide -
Troubleshooting Playbook
Guide -
QA Playbook
Guide -
E-commerce Deep Links
Guide -
Deep Links for Ads
Guide -
Email & SMS Deep Links
Guide -
Creator & Affiliate Deep Links
Guide -
Gaming Deep Links — Rewards, Quests
Guide -
No-SDK Deep Links — REST-Only
Guide -
Deferred Deep Links in React Native — Setup Guide
Guide