# Mobile deep linking

In the context of mobile apps, deep linking consists of using a uniform resource identifier (URI) that links to a specific location within a mobile app rather than simply launching the app. Deferred deep linking allows users to deep link to content even if the app is not already installed. Depending on the mobile device platform, the URI required to trigger the app may be different.

## Deep linking and mobile operating systems

Unlike the Web, where the underlying technology of HTTP and URLs allows for deep linking by default, enabling deep linking on mobile apps requires these apps be configured to properly handle a uniform resource identifier (URI). Examples of URIs that launch a mobile app:
* twitter:// is the iOS URI to launch Twitter's mobile app
* YouTube:// is the iOS URI to launch YouTube's mobile app
The format of the URI used to trigger or deep link an app is often different depending on the mobile operating system. Android devices work through intents, BlackBerry 10 devices work through BB10's invocation framework, Firefox OS devices work through Web Activities, iOS devices work through the open(_:options:completionHandler:) application method, and Windows Phone 8 devices work through the UriMapper class.
* fb://profile/33138223345 is an example of a mobile deep link URI. The URI contains all the information needed to launch directly into a particular location within an app, in this case the profile with id '33138223345', i.e., the Wikipedia page, within the Facebook app, instead of simply the info for launching the Facebook app fb://.
* eBay's apps demonstrate the use of different schemes by platform. eBay://launch?itm=360703170135 is the URI of a deep link into eBay's iOS app while eBay://item/view?id=360703170135 is the URI of a deep link into eBay's Android app.

## Complexity of mobile deep linking and the need for a streamlined solution

The greatest benefit of mobile deep linking is the ability for marketers and app developers to bring users directly to a specific location within their app with a dedicated link. Just as deep links make the web more usable, mobile deep links do the same for mobile apps.
Unlike deep links on the web, where the link format is standardized based on HTTP guidelines, mobile deep links do not follow a consistent format. This causes confusion in development because different sets of links are required to access the same app on a different mobile operating system.

## Passing search data via deep linking

Google allows app developers who have both iOS and Android apps to surface in-app content via mobile Google searches. Developers will need to submit their apps and deep linking apps on both iOS and Android to be indexed by Google. Alternatively, developers can use Google's short links to deep link mobile app users if the app is installed and direct others to the webpage.
One example of a better user experience made possible because of the deep link and data passing through the install solution is one in which search information is passed into an app to bring the user to the exact information that drove them to the app. Compared to a common web link, this implementation may reduce the number of steps required. For example, to search for hotels in Boston, a user currently needs to:
* Perform a Google search for a term
* See that a company has relevant content in its app
* Manually switch from the browser to the app (download the app first if required)
* Perform the search again in the app
That can be shortened to:
* Search on Google
* Select the in-app search result to view in-app (if app is installed)

## Deferred deep linking

Deferred deep linking is one aspect of mobile deep linking. It describes the principle of deep linking into an app that is not yet installed. In this case, deep linking will be "deferred" until the application is installed by the user. This implies that clicking (or otherwise invoking) the deep link causes:
* An app store to open (Google Play/iOS or Windows App Store depending on the user's device) to enable the user to install the app
* Once the app is installed, the link is invoked with its original URL and parameters so that the newly installed app can handle the invocation.
A common use case is to drive installs; linking to functionality in a not-yet-installed app provides the user with an incentive to install it.
Deferred deep linking allows mobile developers and mobile marketers to deliver a seamless and automated user experience, whether the app was previously installed or not, improving conversion rates and user retention.
While there is currently no industry standard for deferred deep linking, various platform providers offer differing levels of support:
* Apple iOS: No official support. Workarounds include using Pasteboard (Apple's clipboard) to hold the parameters of the deep link while the app installs. Then after the app is installed, read from the Pasteboard and handle the linking accordingly.
* Android support on the Google Play store: Google gives app developers the option of passing the original deep link through the Google Play App Store using the Intent: "The deep link should take users directly to the content, without any prompts, interstitial pages, or logins. Make sure that users can see the app content even if they never previously opened the application.”
* Android support on non-Google app stores: No support. This is the majority of Android app installations, since Google Play makes up less than 1/4 of the volume of Android apps downloaded.
* Installs driven by Facebook ads (iOS and Android): Developers can bring users to the content inside the installed app by using Facebook's Deep Linking for Mobile Install Ads technology: "When a person taps on a mobile app install ad on Facebook, the developer can choose to send them to a specific place in their app after it's downloaded, such as a product page rather than the homepage."