Deep - Mobiloitte Blog

What is Deep Linking and How to Create Deep Link URLs?

What did change since June 2014 when Google announced that the Google bot will start crawling Google Play for indexing mobile apps just like webpages? Android developers were pleased with this change. However most of them do not seem to understand what is this all about and how it would benefit their app or their client’s apps.

What should most developers religiously consider whenever they hear or think about this update?

Answer – deep linking

Once again – Deep Linking

You may find it under the term Invoke URL, but it nevertheless refers to Deep link.

What is deep linking?

App deep linking is a fancy way to refer to a URL that points to a specific part of an app. It’s analogous to a URL that points to a subfolder of a website. For example if I wanted to send you an article on Tech Crunch, I would send you a URL that immediately brought you to the article, not send you to the main portal to navigate to it yourself from there.

Here is an example of how Instagram assigns a deep link to every user’s profile:

deep linking

Why deep link URLs matters so much?

Deep linking can serve as an integral part of user experience and growth efforts or in your overall marketing campaign.

Most developers and marketers consider deep linking with their push notifications. Consider for example a push notification for a sale on iPhone cases the owner of PostalPix may decide to run (thanks for the example Michael Sarlitt). Without deep linking, the recipient would get dumped into whichever view they last visited before closing our app. This could be the main shop view, a different product category etc.

With deep linking, we can send the recipient directly to the iPhone cases view, regardless of their last action in our app.

The benefits here are more than obvious. Sending the user directly to the product on sale can lead to a higher purchase conversion and far better user experience. It eliminates the hassle of remembering and searching for the product on sale.

Another common usage of deep linking is with the standard advertising campaign. If you are Amazon running book selling ad on Facebook mobile you will surely get better conversions if you direct the visitor to the product view of the book in the ad vs. dumping them into the main shop page, where they’d have to find the shoe among Amazon’s thousands of other products

Last but not the least, you can use deep linking to revise the on-boarding flow of your referral programs no matter the platform the referrer is coming from. One of the best example of this is the hack which the geeky folks from AirBnB derived. As per their words:

Word of mouth is a huge growth source for Airbnb, in part because Airbnb experiences are so personal. People use Airbnb to unlock incredible experiences–anything from weekend getaways with friends, cultural exchanges, and once in a lifetime events like honeymoons.

The referrals program encourages inviting friends by giving both the sender and recipient $25 of travel credit at Airbnb when the invited user completes their first trip. The idea is to leverage AirBnB community’s inherent tendency to tell their friends about Airbnb and amplify the effect.

In the new program, the Airbnb growth team decided to create an on-boarding flow that catered specifically to the referral. Now, the existing member would share a URL that would direct the referral to a personalized landing page inside the Airbnb app after downloading it. As result of this, AirBnB reported 25% increase of  signups coming from referrals.

deep linking definition


How does deep linking work?

In order for deep linking to perform the target app first has to be set up using the proper protocols, which is fairly simple and must be done for any deep linking to an app to work, whether from the mobile web, the Facebook app, etc. The advertiser must then provide the deep link to the specific location within the app they want as the destination. These URI (Uniform Resource Identifiers, of which URLs are a subset) formats will vary based on OS but look something like Yelp://12345.

Implementing deep linking requires you to:

  • Select the URI scheme you’ll be using, and declare it in the app’s manifest (discussed in more detail below). As discussed in Part 1.2, the scheme name must be unique to your app, otherwise conflicts with other apps may occur
  • Define the actions you want to launch by using a deep link. Make sure these actions are in accordance with the URI syntax you chose. As mentioned in Part 1.2, the use of the URL syntax is highly recommended (e.g. schemename://path?query_string)

Once that’s done, you can start implementing the code that will handle the path and query string sections of the URL to launch the intended action.

Developers can find this process easier (our team surely appreciated it) if they adhere to the instructions of the Mobile Deeplinking project, which has created a created a MobileDeepLinking library that provides a framework for mobile app deep linking for both iOS and Android. The basic implementation setup is the same for both platforms:

  • Create a deep linking URL scheme (e.g. mobiledeeplinkingprojectdemo://)
  • Update the MobileDeepLinking library JSON configuration file with the appropriate URL and parameter mappings
  • Update the app code to call the MobileDeepLinking library when the app is launched from a deep link

This specification is convoyed by libraries for both iOS and Android. Both libraries include a JSON file that configures the deep link mapping which you can find here

Once that’s done, you can start implementing the code that will handle the path and query string sections of the URL to launch the intended action.

If the setup is being done properly then the following set of rules will be valid:

deep link 3

Here is where the problem arise. If the ad is being launched from the app itself then everything will be OK. However what if the deep links comes from external source, say an email campaign which is being opened on mobile and the user does not have the app installed yet? That would mean taking the user to a dead end or getting a system generated response that the page does not exist or simply no response at all.

Here is what the guys from Exponential suggest – add one step and ask the user if they have the target app installed after clicking on the banner, with “Yes” being the deep link. Also include an option to take them to the relevant download page in the app store if they don’t. Here is how this would look like if we take Yelp as an example:

deep link 4

Developers growth hackers and online marketers can refer to several other great resources to upgrade themselves on the deep linking phenomena including this great Wiki and of course

Would you like to share your experiences? While our developers are getting ready with their deep linking experience, we invite some early birds to come aboard and share their challenges in creating deep linking URLs and some cool creative hacks boarded with deep linking.