Comparing the Deep-Linking Strategies of Google, Apple and Facebook

Better communication between applications will improve the mobile experience. In the past several months, Google, Apple and Facebook have announced deep-linking initiatives that vary based on company goals. In this article we’ll discuss the motivations behind them and a brief technical overview of each solution.

AppLinks1B650Better communication between applications will improve the mobile experience. In the past several months, Google, Apple and Facebook have announced deep-linking initiatives that vary based on company goals. In this article we’ll discuss the motivations behind them and a brief technical overview of each solution.

Google

The rise of native mobile apps challenged Google’s supremacy on the Web. With content hidden inside apps and not indexable, the app store replaced search as the primary discovery mechanism for new mobile experiences. Google’s core business depends on organizing content and providing relevant search results, so it is extremely motivated to surface app content alongside Web content across Google properties.

Google made its strategy clear at I/O: It wants to be able to search app content and provide results alongside the Web, and direct users into apps if they offer the most relevant experience. The goal is to blur the line between Web and apps and seamlessly interact between them. And as Google Now evolves into an important discovery mechanism, it will provide contextual-based results for both Web and apps.

Technically, Android is built to hand links into Android apps the same way as the Web. This is achieved by registering an application to respond to the HTTP protocol and a particular domain (and possibly a path, as well). When a URL is being opened on the device (either by the browser or app), the operating system checks to see if there is an app registered that can respond to that particular URL, and, if so, lets the user decide whether to launch the app or the browser.

In the ideal scenario of Android apps responding to HTTP, Google can provide relevant linking to apps as it does to web sites. All a site must do to get this working is to add Google’s app-indexing link tag to its page or use the new app-indexing application-programming interface. If a page has this tag, Google will recognize that there is an Android app with a corresponding page. Today this is only used in an “Open in App” button on Google search results, but this would be incredibly powerful if app search results were integrated into Google Now.

It’s worth calling out that Android apps don’t have to register the HTTP protocol for deep-linking; they can register a custom protocol like iOS. This, however, doesn’t have the built in fallback of the Web that responding to the HTTP protocol does. For apps that don’t have corresponding websites, unfortunately, this is the only option.

Apple

Since the introduction of the iTunes App Store, apps have helped Apple sell a lot of iPhones, and the health of the ecosystem has become of paramount importance. Apple views apps as being independent from one another with very little interaction between them. This is in contrast to Android, which has embraced third-party apps communication between apps for years.

Apple has gotten some flack for not supporting deep-linking effectively; however, deep-linking has existed on iOS since iOS 3. Aside from a couple of standardized examples (e.g., mailto:, torrent:, ftp:), deep-linking in the form of custom protocol handlers never really took off on desktop (Spotify is a notable exception). It just took time for developers on mobile to appreciate the value of deep links with the heavy focus on driving installs in the first years of the App Store. While Apple may have supported deep-linking, it never focused on its adoption or highlighted it for developers in its documentation.

At 2014’s WWDC, Apple announced Extensions, which allow app developers to expose a bit of interface in other apps while the user is handling certain contexts. Some examples of these contexts are the “share” menu (which can be presented with different types of data that apps can choose to respond to), the “today” section of notification center, or while editing a photo in the Photos app. The main extensions of interest are “share” and “action” Extensions, which are used in the context of other apps (technically “Storage Provider” and “Custom Keyboard” do as well).