Blog How to implement deep links anywhere and...

A version of this post originally appeared as an editorial on VentureBeat.

Deep links are an incredibly useful tool to interact with your customers outside of your app, and provide a seamless experience in-app all the same. When you speak with customers outside of your app - on your website or through social media, for example - about a specific feature or product, you can create a little added magic by referring people to the right spot in the app using deep links.

An actual deep link is just a type of URL that, instead of starting with http://, starts with a custom phrase that allows smartphones to identify a specific app. You can redirect someone to a deep link in the same way as you can redirect someone to a web link - if the link starts with http://, you use the web browser, and if it starts with your-app:// (or whatever else you choose to register), it opens in your app.

The fundamental technology is just a feature of the smartphone’s operating system. Basic deep links are not something you have to buy from a service provider - you can implement it in your app very easily. It is, however, not very sophisticated. If you try to redirect a user to a deep link for an app they don’t have, their phone will just respond with an error. That hampers deep links as a feature, allowing you only to use it when you know that the user has the app installed.

We might think then that deep links are useless in many user acquisition or re-engagement campaign - because except in very specific circumstances, you can’t be fully sure that a user has your app on their device, and can still be deep linked into it. If you want to be able to use deep links in any context - which you do - you need to find a way to accommodate all users, regardless of whether they still have your app or not.


That’s where deep link functionality gets a little more complex. How do we find out if we can use a deep link or not, and have a backup plan if we can’t?

While there’s really no direct way to check whether or not an app is present on a device, there is a sneaky way. Using a little JavaScript, you’re able to “poll” your app by making the device try to access the deep link. When there’s a response, then you know the app is installed and you’re able to send users over to the deep link. If there’s no response, you can instead send customers to the App Store, to your website, or any other location that allows you to keep your customer in the loop.

You implement this as a “race” of sorts. You need to asynchronously request both URLs, giving the deep link a little head start over the app store URL. If the deep link doesn’t respond, the app store link will win the race and redirect the user to the store.

The key is to do this in a subtle and unobtrusive way, and this takes a lot of trial-and-error. If you do it right, the logic will be executed quickly in the background. Don’t bother sending users to a browser page to execute this logic - as you’ve then already lost the magic.

That’s the guide on how to build it yourself - but of course, we’ve decided to build it for you. Deep links and fallbacks come by default as part of our tech - whenever you add a deep link to an adjust tracker URL, we’ll automatically figure this out for you. It’s one of the finer points of building the most sophisticated systems for driving user acquisition and re-engagement.

Want to know more about deep links?


Want to get the latest from Adjust?