What is deep linking?
A feature that directs users from a link directly to a specific location inside an app they already have downloaded. This allows users to quickly go from one location (email, web, social) straight to the content they want. By creating a seamless user experience, deep linking makes it easier for users to make a purchase within the app.
Mobile app deep links (also known simply as “deep links”) point to content that exists inside an app. If you want to share a pair of shoes from the Cole Haan app 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 Cole Haan 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. By removing friction from the user experience and taking users directly to app content, deep links improve user acquisition, conversion rates, engagement, and retention.
One of the biggest problems with mobile deep links is the multitude of standards and platforms. Each of these platforms has come up with a deep linking standard that works with their platform only, but takes neither the substantially more complicated, more intricate overall mobile ecosystem, nor the accompanying linking needs into consideration. The recent trend in multi-platform linking, including iOS Universal Links, Android App Links, and Facebook App Links, has been distorting web links to also accommodate apps. With this approach, a regular mobile web link points to multiple destinations simultaneously, and the local client is responsible for determining which one to load. It’s fundamentally confusing, a hack on the existing system, and it breaks as soon as content exists on one platform but not another.
As mobile ecosystems have evolved, large mobile platforms (e.g., Facebook, Twitter, Gmail, etc.) have started a war over users — each fighting to be the ultimate platform where users channel their attention and spend their time. In response, each platform has designed experiences in vacuum, as if the some or all of the other platforms weren’t in existence. Since there is no unification, and following the emergence of deep linking standards for each individual platform, it has become nearly impossible for a brand to create a standard that fit all these standards.
Apple and Google both try to pretend that mobile deep linking is a simple thing. A check-the-box, “nice to have” feature that can be implemented by following a few guides buried deep in the developer documentation for each platform. Unfortunately, this couldn’t be further from the truth, and more importantly, it misses the true scale of the problem: if links are to be used everywhere, they need to work everywhere. The true complexity of how difficult this is to accomplish only becomes clear with much painful experimentation.
Today, there are numerous competing mobile deep link standards, all with different functionality and requirements for implementation:
- URI schemes: Custom Uniform Resource Identifier (URI) schemes were the original form of deep linking for mobile apps. A URI follows the same format as a URL but is just used as an identifier, not necessarily to locate a resource like in a URL. URI schemes have significant drawbacks, including the inability to handle when an app isn’t installed.
- Universal Links: Universal Links were introduced by Apple in iOS 9 to solve the lack of fallback functionality in custom URI scheme deep links. They were intended to be Apple’s standard method of launching mobile apps when linked from a website, even if the app is not installed on a user’s phone. Universal Links also have several limitations; they don’t work for email campaigns, are easily broken by users, and are difficult to debug and test.
- Android App Links: Google built App Links as the Android equivalent to Universal Links. They are unique mobile URLs that direct app users to specific pages when the app is already installed. App Links are supported by iOS, Android, and Windows.
- Chrome intents: Chrome intents are the deep linking replacement for URI schemes on Android devices within the Chrome browser. They are a set of structured APIs that allow users to open apps and perform specific actions directly within the browser window. Because you cannot use the basic URI scheme to open an app within Chrome, you instead need Chrome intent strings.
- Facebook App Links: Facebook App Links, which are HTML meta tags that connect content in the Facebook app to specific content in an app or the app store, are Facebook’s attempt at creating a deep linking standard. The most significant drawback of Facebook App Links is that they do not work in many cases.
Note: iOS and Android together control 99.3% of the mobile market. Because of this, Branch has very limited support for other platforms, and they are omitted here for simplicity.
Even within each platform, every web browser does things differently. This matters, since the majority of link clicks still happen in browsers, and every link routing system relies on browsers for at least some core functionality:
Things get even messier outside the web browser sphere. So many other apps are capable of opening links that attempt to generate a comprehensive list would be an impossible task, but here are a few notable highlights: