Mobile App Deep Linking: How It Works and Why It Matters
How deep links, Universal Links and Android App Links work, how deferred deep linking and fallbacks behave, and how to route, secure, measure and test links.
Quick answer
A deep link opens a specific screen in an app instead of its home screen. On iOS, Universal Links use your normal HTTPS URLs verified by an apple-app-site-association file; on Android, App Links do the same using a Digital Asset Links file. If the app isn't installed, the link opens your website. Deferred deep linking, which carries the destination through an install, needs a third-party service or custom implementation. Good deep links route reliably, handle signed-out users, treat parameters as untrusted and are tested across sources.
Why Deep Linking Matters
Every link that dumps a user on a home screen asks them to find the content again. Deep links connect emails, ads, social posts, QR codes, shared content and notifications directly to the right screen, which improves conversion and makes the app feel connected to the rest of your product.
Types of Links
| Type | Platform | Format | If app not installed | Verified |
|---|---|---|---|---|
| Custom URL scheme | iOS and Android | myapp://path | Fails | No; other apps can claim it |
| Universal Links | iOS | https://yourdomain.com/path | Opens website | Yes, via apple-app-site-association |
| App Links | Android | https://yourdomain.com/path | Opens website | Yes, via assetlinks.json |
| Deferred deep links | Both | Usually HTTPS via a service | Store, then destination after install | Depends on implementation |
How It Works
The user taps a link. The operating system checks whether an installed app has verified ownership of that domain. If so, the app opens and routes to the destination screen. If not, the link opens in the browser, where your website shows the content or points to the app store.
Universal Links on iOS
Enable the Associated Domains capability in the app and host an apple-app-site-association file on your domain listing which paths the app handles. iOS verifies the association and then opens matching links in the app. Users can still choose to open links in Safari, so the web page must work too.
App Links on Android
Declare intent filters with autoVerify for your HTTPS paths, and host an assetlinks.json Digital Asset Links file at /.well-known on your domain with your app's package name and signing certificate fingerprint. Once verified, Android opens those links directly in your app.
URL Routing
Design one URL structure shared by the website and the app, so the same link works in both. Centralize routing in the app: parse the URL, validate parameters, and map it to a screen. Handle unknown or outdated paths gracefully rather than crashing.
Connecting your website and app?
ZSpace designs shared URL structures and deep linking across web and mobile, so every link lands in the right place.
Deferred Deep Linking
Universal Links and App Links don't remember a destination through an install. Deferred deep linking does, using an attribution or linking service, or your own server-side matching. Firebase Dynamic Links used to provide this but has been shut down, and Firebase now recommends App Links and Universal Links. Choose a replacement that respects platform privacy rules.
Authentication-Aware Links
If the destination requires sign-in, remember it, show sign-in, then continue to the destination. If the content belongs to another account or has been removed, show a clear message. See mobile app authentication.
Marketing, Sharing and Notifications
Campaign links, email and QR codes should point to specific content with campaign parameters for attribution. Shared content links should use the same URLs as the website. Push notifications should carry a route to the relevant screen; see push notifications.
Web-to-App Journeys and Fallbacks
Every deep-linkable path should have a useful web page, since the website is the fallback when the app isn't installed or the user chooses the browser. Where the app offers a better experience, a respectful app banner can invite installation without blocking content. See ZSpace's website development work for the web side.
Security Considerations
Treat link parameters as untrusted input: validate them and never trigger payments, account changes or data deletion directly from a link without user confirmation. Custom URL schemes can be claimed by malicious apps, so avoid sending sensitive tokens through them; prefer verified HTTPS links. See mobile app security.
Analytics
Track link opens by source and campaign, whether users landed in the app or on the web, and what they did next. See mobile app analytics.
Common Problems and Testing
- Association files served with wrong content type, redirects or missing paths
- Signing certificate fingerprint mismatch in assetlinks.json
- Links opened inside in-app browsers behaving differently
- Signed-out users losing the destination after login
- No web fallback page for app-only paths
- Test installed and not installed, signed in and out, from email, messages, browsers and notifications
- Use adb on Android and the simulator's openurl command on iOS for quick checks
Links not opening your app reliably?
Talk to ZSpace about diagnosing and fixing your deep linking setup across iOS, Android and web.
Conclusion
Reliable deep linking combines verified links on both platforms, a shared URL structure, central routing, a web fallback, sign-in awareness and careful handling of untrusted input. For the wider build context, see the mobile app development guide.
Common questions
A link that opens a specific screen or piece of content inside an app, rather than just launching the app's home screen.