Deep Linking definition
Deep linking is the use of a URL that opens a specific screen or piece of content inside a mobile app, rather than just launching the app's home screen. Modern deep links use standard web URLs, through Universal Links on iOS and App Links on Android, so the same link opens the app when installed and the website when not.
How does deep linking work?
The oldest approach uses custom URL schemes such as myapp://product/42. They are easy to set up but unverified, so another app can claim the same scheme, and they fail with an error when the app is not installed. Universal Links on iOS and App Links on Android solve both problems by using ordinary https links on a domain you own.
Ownership is proven with small files hosted on the website: apple-app-site-association for iOS and assetlinks.json for Android, both under the /.well-known/ path. When a user taps a verified link, the operating system opens the app directly and passes it the URL. The app's router then parses the path and navigates to the right screen, handling cases such as a logged-out user or content that no longer exists.
Types of deep links
- Standard deep links: open specific content when the app is already installed.
- Deferred deep links: send new users to the app store, then open the intended content after the first launch.
- Contextual deep links: carry extra data such as a referral code or campaign source.
Common deep linking use cases
Deferred deep links need help from an attribution service, because the app store install breaks the direct connection between the click and the first launch. Providers such as Branch, Adjust and AppsFlyer handle this matching. Firebase Dynamic Links, once a popular free option, has been shut down by Google, so apps that used it need an alternative.
- Marketing emails and SMS that open a product or offer page in the app.
- Push notifications that land on the exact order or message.
- Referral and invite links that credit the referrer.
- Password reset and magic sign-in links.
- Shared content links on social media and messaging apps.
- QR codes on packaging, receipts and in-store displays.
Implementation pitfalls
The association files must be served over HTTPS, without redirects and with the right content type, or verification silently fails. Some in-app browsers, such as those inside social and email apps, may open links in a web view instead of the app, so the website version of each deep-linked page must work well too. Navigation libraries such as Expo Router, React Navigation, Navigation Compose and Flutter's go_router need explicit route configuration for incoming links.
Test on real devices with the app installed and not installed, logged in and logged out, from email, SMS, browsers and social apps. Deep link failures are easy to miss because they often fall back to opening the home screen, which looks like success.
Example: a promotional SMS
A food delivery company sends an SMS offering a discount at a specific restaurant. Existing users tap the link and land on that restaurant's menu with the coupon applied. New users are taken to the app store, and after installing, the app opens directly to the same menu with the offer intact. Nexzem configures deep links with routing, fallbacks and analytics so each campaign's journey from click to order can be measured.