Need to show an image shared earlier in chat to a friend?
It is convenient if users can just provide their friends with a link to it instead of explaining its exact location in chat.
Deep linking can help with this task.
There are several types of mobile deep linking: URI schemes, Android app links, universal links, Chrome intents, Facebook app links.
So, what’s the difference between them?
URI Schemes
URI schemes utilize a uniform resource identifier (URI) that links to a particular location within the app. Just like URL is a website address, URI is the address for an app on a mobile device.
URI schemes can look as follows:
twitter://some_link myapp://some_link fb://profile/12345567
The advantage of this approach is that it is easy to set up. However, the user’s device can recognize it only if the app is already installed on the device.
There was a workaround for fallback using a https link to launch a browser, but Apple has blocked it in 2015 with the release of Universal Links solution.
Android App Links
These are deep links based on your website URL. It’s a normal https link and should be recognized everywhere. Therefore this URL must be verified to belong to your website in order to be used.
Here is an example how it may look:
https://chat.your_domain.com/some_link
Android app links are supported in Android 6.0 (API level 23) and higher versions.
However, this solution offers the following benefits:
– these links are secure and specific;
– seamless user experience;
– compatible with other platforms;
– fallback URL if app is not installed;
– Android Instant Apps support;
– engage users from Google search.
Apple iOS Universal Links
Universal links are iOS standard of the app links. It was introduced in iOS 9 as a solution supporting fallback functionality. These links are standard web links pointing to both the website and a particular content inside the app. If the app is installed on the device, the link opens it. Otherwise, the web URL is opened in Safari and redirects the user to download the app from App Store.
In fact these links are not universal, since major platforms like Facebook and Twitter do not support them.
And yet, Universal links have the following benefits:
– don’t ask for permission;
– don’t open the browser;
– these links are secure and specific;
– seamless user experience;
– compatible with other platforms;
– fallback URL if app is not installed.
Chrome Intents
Chrome intents are custom URI schemes built by Chrome team intended to provide fallback behavior when the app is not installed.
Nevertheless, Chrome intents are supported only by Android version of Chrome browser and some third-party apps.
As a result this complicates deep linking implementation since the app needs to support both the standard technologies and Chrome-specific ones.
Facebook App Links
Facebook app links are an open standard to solve the limitations of URI scheme deep links. Though it was very promising in the beginning, currently it can be used only by Facebook on Android, since facebook has removed the app links routing engine from everywhere except the main Android app.
Let’s check the core differences in the standards:
URI schemes | Universal links | Android app links | Chrome intents | Facebook app links | |
Destination app must be installed |
✩ |
✩ |
✩ |
✩ |
✩ |
Fallback behavior |
Error |
Opens link in web browser via separate server-side redirection | Opens link in web browser via separate server-side redirection | Opens Play Store link in a web browser, if used with Android Chrome and applications supported | Opens link in a web browser if used with Facebook on Android |
Link format | myapp://some_link | https://mydomain.com/path_to_content | https://mydomain.com/
path_to_content |
intent://path_to_content#intent;
scheme=myapp;package=com.myapp;end |
https://mydomain.com/
path_to_content |
Mobile platform support | – iOS < 9 *
– Android all versions |
iOS 9 and higher | Android 6.0 (API level 23) and higher | ✩** | ✩*** |
Requires server-side support | ✩ | ✩ | ✩ | ||
Validation method on server | apple-app-site-association file in JSON format hosted on the server | assetlinks.json file hosted on the server | Meta tags in <head> section of web page destination of standard https link |
*In iOS 9.3 Apple started blocking javascript in Safari which caused errors when the user tried to open URI scheme in browser if the app is not installed on the device
**Used by Android Chrome and a few other third-party apps only
***Supported only by Facebook on Android currently.
Other options
Deferred Deep Links
Standard deep links work only if the application is already installed on the device. If the app is not installed, standard deep links can lead the user to App Store or Play Store.
Unlike standard deep links, deferred deep links can keep the context of specific app content through the installation process and then take the user to the right place in the app after installation is completed.
However, deferred deep links are supported not by all platform currently:
– iOS does not support them;
– Android supports them only on the Google play store and does not support on non-Google app stores;
– Facebook’s Deep Linking for Mobile Install Ads technology. The developer can choose a specific place in the app where the user should be taken after app download, if a user taps on mobile app install ads on Facebook.
Contextual deep links
Contextual deep links are kind of deferred deep links with additional functionality.
These links store also information about the user’s target in the app, where the link was clicked, who shared the link originally and some other custom data you need.
These deep links were introduced by Branch company specialized in deep linking solutions.
Contextual deep links can help showing more relevant information to users.
Read more on this matter in upcoming articles.