Deep links
A deep link is a link that opens the app directly on specific content (a product, a category, a page) instead of opening the home screen or the browser.
Without deep links configured, a notification or an email sends the user to the web version even if they have the app installed.
How to tell whether you already have them
Section titled “How to tell whether you already have them”On a phone with the app installed, open a link to your domain from outside the app, for example from a note or a message. If the app opens on that content, deep links are active for that domain. If the browser opens, they are not, or the link does not meet one of the requirements below.
How they work on iOS and Android
Section titled “How they work on iOS and Android”On iOS they are implemented with Universal Links and on Android with App Links. The mechanism is equivalent: the operating system associates your domain with the app, and when someone opens a link from that domain, the app opens if it is installed.
That association requires two things: publishing a verification file on your domain and declaring the domain in the app. It is an operating system requirement, not a Reskyt one.
Who does what
Section titled “Who does what”Your web team publishes the verification files on your domain, because they live on your server:
| System | File | Where it is published |
|---|---|---|
| iOS | apple-app-site-association | https://yourdomain.com/.well-known/apple-app-site-association |
| Android | assetlinks.json | https://yourdomain.com/.well-known/assetlinks.json |
Reskyt declares the domain in the app. The contents of those files depend on the app’s identifiers, and are settled with the Reskyt team during project configuration.
Declaring a new domain, or changing it, is part of the binary: it requires publishing a new version of the app, and users who do not update keep the previous behaviour.
How to test that they work
Section titled “How to test that they work”- Check that both files respond from a browser, at the URLs in the table above.
- On a phone with a version of the app that already includes the domain, open a link to that domain from outside the app.
- Repeat the test with a link sent from your email tool and from a push notification, which are the most used channels.
Links from push notifications
Section titled “Links from push notifications”A notification can open a URL when tapped: that is the url field of the
push API. If that URL belongs to an associated
domain, it opens the content inside the app.
Links from email and campaigns
Section titled “Links from email and campaigns”Many email tools rewrite links with their own tracking domain. A rewritten link no longer belongs to your domain, so the operating system does not associate it with the app and it opens in the browser. If your email tool allows a custom tracking domain, that is the way to keep the behaviour.
When the app is not installed
Section titled “When the app is not installed”The link opens in the browser, at the same URL. That is why deep links should point to URLs that exist on your website: the link also works for people without the app, and there is no need to maintain two sets of links.
If a deep link does not open the app
Section titled “If a deep link does not open the app”Checks, from the most frequent to the least:
- The URL does not belong to an associated domain, or it has been rewritten. How to check: the final link must start with your domain, not with a tracking tool’s.
- The verification file is not published or not reachable. How to check: open the URLs from the table above in a browser.
- The installed app predates the declaration of that domain. How to check: update the app from the store and try again.
- The user turned off link opening in the app. On Android it is a per-app option. How to check: Settings › Apps › app name › Open by default.
- The link is opened from another app’s in-app browser, which is common in social networks and messaging apps. That browser does not always hand the link to the system. Alternative: the in-app browser’s menu usually offers “Open in browser”, from where the link does open the app.
For technical teams: parameters
Section titled “For technical teams: parameters”When a deep link opens the app that is already installed, all URL parameters are propagated as they are to the WebView.
The app does not add UTM parameters on its own. If your analytics needs to
attribute campaigns, include your own utm_source and utm_medium in the
link. See technical reference.