How to use deep links to pass UTM data into apps

Why use deep links?

Businesses often prefer to direct customers to mobile apps, rather than websites.

The benefits might be to:

  1. Give a more direct, faster and better customer experience

  2. Not be constrained by browser technology

  3. Capture first party app data (like where users come from, without cookies)

Marketers often want to direct the traffic into a specific part of the app, like a product or a form, but apps don’t have pages like websites do.

So how do they use a URL-based link to get a user to a URL-less point in an app?

To do this, marketers use something called deep links, which are URLs that have instructions in the query string to open an app at a specific point. Once inside the app, mobile analytics platforms, like Appsflyer or Google Firebase, can provide analytics on what the visitor does.

Depending on the user's device, these deep links can:

  1. Open the app on a specific screen, if it's already installed on the user's device

  2. Redirect to the app store if the app isn't installed, guiding the user to download it, and then opening it on a specific screen

  3. Open a fallback URL in a browser, if the user isn't on an Android/iOS device

The problems with deep links

However, passing campaign parameters through to mobile apps is a challenge.

When a user moves from a browser to an app, the original link is usually lost, especially if the journey has actually gone through App Store or Play Store. If the campaign parameters have been lost, it will be impossible to attribute in-app activity back to the marketing source.

Solutions for keeping UTM data intact through the whole journey, can be technically complex and expensive.

However, Uplifter supports deep linking in a simple and cost-effective way, using App Links for Android and Universal Links for iOS.

How does Uplifter manage deep links?

An Uplifter deep link (which is a modified version of our shortlink) points to an endpoint on our server. When a user clicks on an Uplifter deep link, the endpoint automatically detects the device and either:

  1. Opens the app (if it’s installed), or

  2. Redirects to the appropriate app store (if it’s not installed), or

  3. Falls back to a web page (if the device is not Android or iOS)

Once the app opens, it makes a quick request back to the Uplifter endpoint to retrieve the full analytics and redirection context for that link. The mobile analytics software can then pick up the UTM data — so preserving the complete attribution chain from the initial click through to in-app engagement.

Once configured, marketers only need to create a single link that works across both Android and iOS, without needing to involve app developers for every new campaign. Uplifter users can easily create deep links in the Track > Create Links page.

Setting this up for the first time often requires a developer, but instructions are below. Reach out to support@uplifter.ai if you need any additional support.

How to set up app deep linking

App deep linking requires Uplifter admin access and help from your developers.

Set up an app group in Uplifter (admin only)

We need to know what app(s) you want to open. You can put the details of your Android/iOS into an 'App group' which Uplifter users select as an app destination on the Track>Create links page.

  1. Login to Uplifter and go open Track > Edit App Destinations

  2. Click 'Add app' button

  3. Name your 'App group' 

  4. Enter your Android / iOS app details and click 'Add apps' button to save as an app destination dropdown in Track > Create links. App details for each store below:

    Android app details

Package name: Extracted from the app’s Play Store URL. For example, in the play store link for Google Maps, http://play.google.com/store/apps/details?id=com.google.android.apps.maps, the package name is com.google.android.apps.maps.

Play store link: Found by visiting the Play Store and searching for your app.

Asset Links file: See "How to set up App links for your Android" to generate this.

iOS app details

App Store ID: In the “Distribution” section of your Apple Developer account.

Bundle ID: In the “Distribution” section of your Apple Developer account.

Team ID: In the "Membership Details" on the homepage of your Apple Developer account. Link to Membership Details

Set up App Links for your Android App

Android App Links allow your app to open directly when a user clicks a deep link.

  1. Open Android Studio and go to Tools > App Links Assistant.

  2. Use the URL Mapping Editor to configure your domain (e.g., https://app.upl.inc).  If you have a custom domain, enter that here instead.

  3. Configure the Path Pattern to be .* and associate it with your app’s main activity.

  4. Generate the Digital Asset Links file and upload it to Uplifter under the "Asset links" in the App Group.

Set up Universal Links for your iOS App

Universal Links allow iOS apps to be opened via specific URLs.

  1. In Xcode, open your project and select the app target.

  2. Navigate to the Signing & Capabilities tab and add Associated Domains.

  3. Enter your associated domain (e.g., applinks:app.upl.inc). If you have a custom domain, enter that here instead.

Handling deep links in your apps

Once deep links are configured, your app needs to handle them correctly by implementing routing logic based on the server response.

  1. Detect the link: Your app should recognize when it's opened via a deep link.

  2. POST request to Uplifter: Send a POST request to Uplifter’s service to retrieve routing information (redirect_context) and analytics data (analytics_context).

  3. Route the user: Based on the redirect_context, navigate the user to the appropriate screen or content.

  4. Track analytics: Parse and send the analytics_context to your mobile analytics platform.

Next
Next

Problems with old-fashioned UTM spreadsheets