Imagine someone taps a campaign link for a specific product. If the link opens only the app’s home screen—or sends the person to an irrelevant store page—the context behind the click is lost.
A well-designed link preserves the destination across the web and app. For example, https://links.example.com/products/42 can open product 42 in the app when the app is installed, and show a useful web page when it isn’t.
Choose the right kind of link
Custom URL schemes
App-specific links such as myapp://products/42. They can be useful for app-to-app workflows, but aren’t verified against a domain and don’t provide a dependable web fallback. Don’t use them as your only public campaign link.
Verified HTTPS links
Universal Links on iOS and App Links on Android associate a website domain with an app. They use regular HTTPS URLs, so the web can remain the fallback when the app isn’t installed or the link isn’t handled.
Use verified HTTPS links for links shared in ads, email, QR codes, and the web. Keep the URL structure stable and make sure the website can handle every path you publish.
A practical implementation sequence
Design predictable destinations
Choose readable paths that identify the content, such as /products/42 or /offers/summer. Resolve those paths to in-app screens, and decide what the web page should show if the content is unavailable. Treat IDs and query parameters as untrusted input—validate them before using them for navigation or data access.
Associate each platform with the domain
Both platforms need an association file on the exact public link domain. The files must be available over HTTPS at the standard locations:
/.well-known/apple-app-site-association/.well-known/assetlinks.jsonOn iOS, add the Associated Domains entitlement for each host, for example applinks:links.example.com. On Android, add a verified HTTPS intent filter with android:autoVerify="true"; the host must match the asset links file. Use the Android app-signing certificate fingerprint for the installed release.
Route incoming URLs inside the app
Parse the incoming URL into a known route, validate the path and parameters, then navigate to the matching screen. Handle unknown paths with a safe default or an in-app not-found state instead of silently dropping the link.
Keep the route mapping consistent with the domain association rules. A domain can be verified and still fail to open a particular destination if the app doesn’t handle that path.
What changes when the app isn’t installed?
A verified Universal Link or App Link can fall back to the website, but installing an app from the store does not automatically preserve the original URL for its first launch. That install-to-first-open journey is called deferred deep linking and needs a separate implementation.
- Capture a short-lived link or campaign reference when the person lands on the web fallback.
- Send them to the appropriate app store while preserving only the context your implementation can reliably recover.
- On first launch, resolve the reference to an allowed destination and route only after the app is ready.
Attribution and install-referral behavior varies by platform, browser, and privacy settings. Don’t promise that every query parameter will survive an app-store install. Test the actual acquisition path you plan to support, disclose tracking appropriately, and avoid putting personal or sensitive data in URLs.
Test the whole journey, not just the file
Check both the domain association and what a person experiences after tapping the link:
- App installed: the supported link opens the expected screen.
- App not installed: the web fallback is useful and keeps the intended destination.
- Unsupported or malformed path: the app handles it safely.
- Production signing, domain, and association files match the release build.
- Analytics distinguish link clicks, app opens, and completed outcomes.
Measure each stage separately. A click is not an app open, and an app open is not a conversion. This makes it easier to find whether a drop-off comes from domain verification, routing, or the experience after arrival.