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.
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.
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).
Apple has always been concerned with data privacy on iOS, and its implementation is a bit on the extreme side. Apps are very much silos of data, and their ability to talk to one another is extremely limited. In the case of Extensions, this means that Extensions only have access to the data provided to them by the caller app. So if you’re Amazon, and you want to have an Amazon Extension, it will not be able to access the user data you may be saving in the Amazon app.
We have yet to see how this will ultimately play out for iOS 8, as all of the APIs and documentation are still in beta. Apple may yet allow for access to apps data, but it seems that Apple’s focus with Extensions is to allow apps to share their utility in transforming data (such as the Bing Translate extension for websites example given at the WWDC keynote).
Facebook aims to be a discovery platform of its own and leverage that to sell ads both on and off Facebook itself. It wants users to follow articles, take actions, engage with apps from Facebook seamlessly and then be able to return after they are finished. If Facebook is able to map deep links across mobile platforms, it could create effective mobile re-engagement campaigns both on Facebook and throughout the Facebook Audience Network.
App Links is Facebook’s answer to mapping URLs to deep links. Adding App Links meta tags to a website allows users on Facebook to deep-link directly to content in an app when resolving a link. Additionally, Facebook has introduced its Index API, which allows developers to get deep links through Facebook’s Graph API.
Facebook’s solution doesn’t let it send links to users, but instead, allows native clients using its Index API (such as Facebook’s app or a third-party app) to go to their app instead of their website. In order for two developers to link to each other, they both need to implement the App Links standard. Additionally, App Links only works from app to app — it doesn’t support linking from Web to app. See URX Head of Product Chris Sell’s post for more details on App Links.
As the app environment continues to lead the mobile experience, you can expect to see continued investment from the major technology players in deep-linking.
James Turner is the co-founder of deep-linking provider URX.