× Our Work

Implementing and Searching Deep Links with the URX API

Implementing and Searching Deep Links with the URX API

Date : Jan 13, 2020
Brainvire was a proud part of Imagine 2016

Deep links are the solution to the one of the biggest limitations of native mobile applications - the inability to link directly to a specific place. URLs let us share the websites with others, navigate directly to where we want to go, and easily connect website experiences together. These connections tell us how web relate to all five relevance needed to power search engines.

These links are sorely missed in mobile and we’re left with a poor navigation from application to application and a challenging search experience. Thanks in large part from support by Twitter, and Google, deep link adoption is developing rapidly, Facebook. Developers with deep links can drive traffic directly to the most relevant place in their application from push notifications, complementary applications, or advertising campaign, social networks.

When developers expose their application structure, we can organize the information inside applications in latest ways and can build better ways to find information.

URX is creating a knowledge graph that organizes the content inside applications and the actions they allow users to take. The URX Application Search API lets you access this graph with specific details about the user’s context (e.g. keywords, intended action, location). The API then replies with deep links and other meta data of relevant applications that you can display to the client.

This article shares information on how to set up deep links in your application and gives details on how to use the URX platform to find deep links to other relevant applications.


Implementing deep links

A deep link is simply a link into a specific part, page, or state of a mobile application. It’s similar to a web URL that lets user navigate to a particular page in a web instead of the homepage.

·         Website URL: www.ebay.com/product123

·         iOS deep link: ebay://product123

Adding deep links to your application is platform specific. For Android applications, register the URL scheme in your manifest file. After you register your scheme, you need to map routes to in-application activities using intents.  Detailed information on how to add deep links to your Android application can be found in the Android Developer Portal.

For iOS applications, register the URL scheme in your project settings or in your I-Softinc list file. Then implement the open URL method in your Application Delegate.You can use Turnpike, our open-source framework, to map the URL to defined routes.

When you are setting up your deep link structure there are a few things to keep in mind.

First, the syntax of your application deep links should match the URL structure of your webs if you have one. This makes it easier for you to send the user to your application and fallback to the webs gracefully if they don’t have it installed.

·         Web URL: http://www.gilt.com/category/women/handbags-wallets

·         Deep Link URL: gilt://category/women/handbags-wallets

Second, set up your application to handle query parameters. This will allow you to send data to your analytics system on things such as traffic source. It will also allow you to pass in coupon codes to forms in your application.

·         Web URL:http://www.gilt.com/category/women/handbags-wallets?utm_source=twitter

·         Deep Link URL: gilt://category/women/handbags-wallets/?utm_source=twitter


Third, consider if you want to use deep links before someone has installed your application. Deferred deep linking is the ability to take someone to a specific page in your application directly after download. For example if a user clicks on a specific promotion but hasn’t yet installed the application, you would want send them to a specific page after the installOn iOS, you need to setup a redirect to the Application Store through a click server to store the relevant information. more information on implementing deferred deep linking can be found on our blog.


Exposing Your Link Structure

 Your application has deep links you need to expose your deep link structure so that third parties can drive traffic to the relevant place inside your application. This is accomplished by adding tags to the section of your website that identifies the deep links associated with that content.

The URX Application Search API

URX is creating an application search engine for developers. We believe the search opportunity is bigger than any single application can take advantage of, so we opened up our knowledge graph

to developers to create into their own experience. In this section, we’ll cover how we create our index and walk through how to structure a query and interpret the results.

Building our Index

·         Android deep link URI. For example, sample://page1

·         iOS URI. For example, sample://page1 (can be various from Android URI, but typically it’s similar)

·         iPad URI. For example, sample://page1 (can be various from Android URI, but typically it’s similar)

·         Android Play Store ID. For example, com.sample.android

·         iOS Application Store ID. For example, 456788990

From there, we crawl the content of the page and associate it with the deep links. In particular, we index actions as they are important to helping organize applications by actions they let user take (e.g. listen, watch, buy, etc).

Constructing a Query

Let’s walk through a sample search on our API. Let’s say you want to search for an application that lets you listen to Ellie Goulding. The query would be:

where “Ellie Goulding” is the keyword, and “Listen Action” represents the intended action. Note that if you submitted a simple text query for “Ellie Goulding”, you would pull all relevant content and actions pertaining to Ellie Goulding: music videos to watch, concert tickets to buy, articles to read, and songs to listen to.

Interpreting the Response

For the above query, the URX API returns a result that looks such as:


The response contains multiple links, with the most relevant results at the top. The results are ranked based on their relevancy to the query, the relative popularity of the entries, and preferences of similar users.

Search results can contain multiple types of results such as songs, and events. Every result has a name, description, image, and url Template field that are guaranteed to have values. Additional fields are returned if the web or application has additional information available for that entity type.

Displaying the Result

URX provides developers complete flexibility to display the search results however you want to. In the example above, you could create a simple native card using the details found in the first JSON response body above.


Below is an example of a card layout for the query for a listen action of the song “Lights”.


In an iOS app, you would bind all of the variables above to a display element in a UI View Controller. In an Android app, you would bind these to View elements within an Activity or a Fragment.

Resolve the user

URX provides you the opportunity to decide whether you want to direct your user to an application, an application install page, or a webs. To do this you send a request to the URX resolution endpoint (https://beta.urx.io/) using the URL indicated by Music Recording potential Action target URL Template. The Resolution endpoint returns a response containing three types of links:

·         The original website link

·         The deep link corresponding to the appropriate application.

·         The application installation URL for the user’s platform.

URX has SDKs with helper methods to allow you to easily send the user to the application if they have it installed and fallback to website.


Broad deep linking adoption will bring many of the benefits of the website to the mobile application experience. Developers need to implement deep links now to ensure they take advantage of latest ways to be discovered and engage their users in the near future.

The URX Application Search API is currently in beta - sign up here or view full documentation at developers.urx.com for more information.

We are always ready

Request a call back