Deep Linking

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.

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 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.

deep linking example

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:

deep linking edge case comparison

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: