Traditional deep links can route users to app content as long as the app is already installed when the link is opened. This means traditional deep links don't work if the user doesn’t have the app, and will show either an error or a fallback page.
The simplest explanation of deep links and what makes a good deep link.
Web links don’t work with native mobile apps. If you use your mobile device to open a link to a pair of shoes on Jet.com, you are taken to the destination in your web browser even if you have the Jet app installed. This is a problem because the Jet app is a better user experience than the mobile version of Jet.com.
Mobile app deep links (also known simply as “deep links”) point to content inside an app. If you want to share a pair of shoes from the Jet with a friend, you can send a deep link that brings your friend directly to those shoes in the app. Without a deep link, your friend would have to find the Jet app on the App Store or Play Store, open the app to the homepage, locate the Search function, and then try to find the same pair of shoes you did.
Traditional deep links can route users to app content as long as the app is already installed when the link is opened. This means traditional deep links don't work if the user doesn’t have the app, and will show either an error or a fallback page.
Deferred deep links can route users to content even if the app is not installed when the link is opened. The link will first redirect to the App Store or Play Store to download the app, and then take the user to the specific “deferred” content immediately after first launch.
Contextual deep links have all the functionality of deferred deep links, plus much more. Contextual deep links store information about where a user wants to go, where the link was clicked, who originally shared the link, and an almost unlimited amount of custom data.
Contextual links add value for both app developers and users. App developers can build powerful features beyond just simple content linking, including personalized welcomes (where you see your friend's recommendation in the app if they share an item with you) and referral programs. App users benefit because apps can provide better experiences and more relevant information.
Custom URI schemes were the original form of deep linking for mobile apps. They are like creating a “private internet” for your app, with links that look like myapp://path/to/content. The advantage of custom URI schemes is they are easy to set up and most apps already have one. The disadvantage is a user’s device only knows about this “private internet” if the corresponding app is already installed, and there is no graceful fallback option by default.
The workaround approach to deep linking with URI schemes involves using a traditional http:// link to launch a web browser. This link contains a JavaScript redirect to a custom URI scheme, which is executed by the web browser to launch the app. If the redirect attempt fails because the app is not installed, the JavaScript then takes the user to the App Store or Play Store.
This is still the primary approach to deep linking on Android, but Apple began blocking this approach on iOS in 2015 with the release of Universal Links.
Apple introduced Universal Links in iOS 9 as a solution to the lack of graceful fallback functionality in custom URI scheme deep links. Universal Links are standard web links (http://mydomain.com) that point to both a web page and a piece of content inside an app. When a Universal Link is opened, iOS checks to see if any installed device is registered for that domain. If so, the app is launched immediately without ever loading the web page. If not, the web URL (which can be a simple redirect to the App Store) is loaded in Safari.
A study of the thousands of apps on the Branch platform found that Universal Links increased conversion to open by 40%.
Google built App Links as the Android equivalent to iOS Universal Links, and they operate in a very similar way: a standard web link that points to both a web page and a piece of content inside an app. This results in a smoother user experience, but since custom URI schemes are still fully supported by every version of Android, App Links have seen very low adoption.
Facebook created App Links in 2014 as an open standard to solve the limitations of URI scheme deep links. App Links have two main components:
The App Links standard has a critical flaw: it requires work by both the origin and destination apps. While the meta tags component saw wide adoption, the only major implementations of the routing engine were in the core Facebook and Messenger apps.
Facebook now prefers to keep users inside its platform, and has removed the App Links routing engine from everywhere except the main Android app. Since Facebook also blocks iOS Universal Links, this leaves no reliable way to open third-party apps from Facebook or Messenger on iOS. Branch has implemented a solution to help work around these limitations.
Branch combines every deep linking standard into a single, simple package. Easy to implement, and always up to date.