How Deep Linking Works in Mobile Apps

Deep links send users to specific pages within your app, not just the home screen. Learn how they work and why they matter for user acquisition.

Justin Sampson
How Deep Linking Works in Mobile Apps

How Deep Linking Works in Mobile Apps

A user clicks your Facebook ad. The app opens directly to the product they saw in the ad, not your home screen.

That's deep linking.

Without it, users click your ad, install your app, open to the home screen, and have to search for what they just saw advertised. Most don't bother.

Deep linking connects the promise in your ad to the experience in your app. Here's how it works.

What Deep Linking Does

Standard app behavior without deep linking:

  1. User clicks ad for "20% off running shoes"
  2. App Store opens
  3. User installs app
  4. App opens to home screen
  5. User has to navigate to running shoes manually

With deep linking:

  1. User clicks ad for "20% off running shoes"
  2. App Store opens
  3. User installs app
  4. App opens directly to running shoes with discount applied

The friction between ad click and desired content disappears.

Types of Deep Links

There are three main types:

1. Basic Deep Links (URI Schemes)

Custom URL schemes that open your app.

Format: yourapp://path/to/content

Example: shoestore://products/running-shoes

How it works:

  • Your app registers a custom scheme (e.g., shoestore://)
  • Links using this scheme trigger your app to open
  • Your app reads the path and navigates accordingly

Limitations:

  • Only works if the app is installed
  • If app isn't installed, link breaks (user sees error)
  • iOS shows confirmation dialog asking if user wants to open the app
  • No fallback to web or App Store

2. Universal Links (iOS) / App Links (Android)

Standard HTTPS URLs that open your app when installed, fall back to web when not.

Format: https://yourapp.com/products/running-shoes

How it works:

  • Your website hosts a verification file (apple-app-site-association or assetlinks.json)
  • This file tells the OS which URLs should open your app
  • When installed: Link opens the app
  • When not installed: Link opens in browser (where you can redirect to App Store)

Benefits:

  • Seamless fallback experience
  • No confirmation dialogs
  • Works across platforms
  • Same URL works for web and app

Requirements:

  • Control over your website's domain
  • HTTPS hosting
  • Proper verification file configuration

3. Deferred Deep Links

Deep links that work even when the app isn't installed yet.

Format: https://yourapp.com/products/running-shoes (processed by an MMP or deep linking platform)

How it works:

  1. User clicks link (app not installed)
  2. Link records intended destination
  3. User redirects to App Store
  4. User installs and opens app
  5. App retrieves saved destination
  6. App routes user to intended content

Use case:

Paid advertising, referral programs, email campaigns—anywhere you're driving new users.

We'll cover deferred deep linking in detail separately.

How Deep Links Work Technically

The flow for an installed app:

1. User clicks link

Link format: yourapp://product/123 or https://yourapp.com/product/123

2. Operating system intercepts

iOS or Android recognizes the URL scheme or domain as registered to your app.

3. OS opens your app

Your app launches (or comes to foreground if already running).

4. App receives the URL

The URL gets passed to your app's code via system callbacks.

5. App parses the URL

Your routing logic extracts parameters:

URL: yourapp://product/123?discount=20
Parsed:
- Screen: Product detail
- Product ID: 123
- Discount: 20%

6. App navigates to content

Your app displays the product with the discount applied.

Implementation Requirements

To make deep linking work, you need:

On iOS:

  1. Register URL scheme in Info.plist
  2. (For Universal Links) Create apple-app-site-association file on your server
  3. Implement URL handling in AppDelegate
  4. Add routing logic to navigate based on URLs

On Android:

  1. Declare intent filters in AndroidManifest.xml
  2. (For App Links) Create assetlinks.json file on your server
  3. Implement URL handling in your Activity
  4. Add routing logic to navigate based on URLs

Most developers use deep linking platforms (Branch, Adjust, AppsFlyer) that handle much of this automatically.

Parameter Passing

Deep links can include parameters that customize the experience:

URL: https://yourapp.com/product/running-shoes?color=blue&size=10&discount=20

Parameters extracted:

  • Product: running-shoes
  • Color: blue
  • Size: 10
  • Discount: 20%

Your app reads these and:

  • Displays the blue running shoe, size 10
  • Applies 20% discount automatically
  • Customizes the view based on campaign context

This lets you create personalized experiences for different traffic sources.

Deep Linking for Attribution

Deep links serve two purposes:

1. User experience: Route users to relevant content

2. Attribution: Track which campaigns drive installs

When you click a deep link from a Facebook ad:

  • The link includes campaign identifiers
  • Your MMP (via the deep link platform) records the click
  • When the app opens, attribution connects the install to that specific Facebook campaign

This is how MMPs attribute installs to specific ads, even without device IDs.

Common Use Cases

Paid advertising:

  • Facebook ad for specific product → App opens to that product
  • TikTok ad for discount → App opens with discount applied
  • Google ad for content → App opens to that article

Referral programs:

  • Friend shares product → App opens to product with referral credit applied

Email marketing:

  • Email about abandoned cart → App opens to cart

Push notifications:

  • Notification about order update → App opens to order details

QR codes:

  • Physical poster with QR code → App opens to event details

Fallback Strategies

When the app isn't installed, deep links need fallback behavior:

Option 1: Redirect to App Store

User clicks link → Redirected to App Store → After install, opens to home screen

Limitation: Loses context. User doesn't get to the intended content.

Option 2: Show web version

User clicks link → Opens mobile website → Shows product on web → Banner prompts install

Benefit: User sees content immediately, can install if interested.

Option 3: Deferred deep link

User clicks link → Redirects to App Store → After install, opens to intended content

Benefit: Best of both worlds. User installs and gets to the right content.

Analytics and Tracking

Deep links enable granular tracking:

  • Which ad sent users to which content
  • Conversion rates from specific product pages
  • Drop-off points in deep-linked funnels
  • A/B testing different deep link destinations

Your MMP dashboard shows:

  • Clicks on deep links by campaign
  • Install rates from deep-linked campaigns
  • Conversion from deep-linked content vs. generic home screen
  • Revenue attributed to specific deep link destinations

Testing Deep Links

Before launching campaigns:

1. Test with app installed:

  • Click deep link
  • Verify app opens to correct screen
  • Confirm parameters pass correctly

2. Test without app installed:

  • Click deep link
  • Verify fallback behavior (App Store, web, etc.)
  • Check that deferred deep link works after install

3. Test across devices:

  • iOS and Android
  • Different OS versions
  • Various browsers

4. Test from each traffic source:

  • Facebook ads
  • Email clients
  • SMS
  • QR codes

Each environment can handle links differently.

Common Issues

App doesn't open:

  • Universal Link verification file not properly configured
  • URL scheme not registered correctly
  • HTTPS required but using HTTP

Opens to home screen instead of specific content:

  • Routing logic not implemented
  • Parameters not being parsed
  • Invalid destination path

Works in testing, not in production:

  • Development and production use different URL schemes
  • Verification file on staging server, not production
  • Ad platform stripping parameters

FAQs

What is deep linking?

Deep linking is a technique that sends users directly to specific pages or features within a mobile app, rather than just opening the app to the home screen. It creates seamless navigation from external sources into your app.

How do deep links work?

Deep links use custom URL schemes or universal links that the mobile operating system recognizes. When clicked, the OS routes the user to the specific content in your app, passing along parameters that tell the app what to display.

What's the difference between deep links and deferred deep links?

Regular deep links work when the app is already installed. Deferred deep links also work for new users—they remember the intended destination during app installation and route the user there after the first app open.

Do I need a deep linking platform or can I build it myself?

You can build basic deep linking yourself using native iOS and Android capabilities. Platforms like Branch, Adjust, or AppsFlyer add deferred deep linking, attribution, analytics, and cross-platform consistency that are complex to build.

Why aren't my deep links working?

Common issues include: verification files not properly configured, URL schemes not registered, HTTPS not used for Universal Links, routing logic not implemented, or parameters being stripped by intermediary platforms.


Deep linking transforms disconnected touchpoints into seamless user journeys. It's essential for paid acquisition, retention campaigns, and any scenario where you're driving users into your app from external sources.

deep linkingmobile appuser experienceattributionapp links

Related Resources