Skip to main content

What is Deep Linking?

Deep linking is a technique that allows you to create links that open specific content or pages within a mobile app, rather than just opening the app's homepage. Think of it as the mobile equivalent of hyperlinking to a specific page on a website.

The Problem Deep Linking Solves

Without deep linking, when users click a link to your app:

  • ❌ The app opens to the home screen (poor UX)
  • ❌ Users must manually navigate to find content
  • ❌ Context from the original link is lost
  • ❌ Conversion rates suffer

With deep linking:

  • ✅ Users land directly on the intended content
  • ✅ Seamless transition from link to app
  • ✅ Context is preserved (campaign data, product ID, etc.)
  • ✅ Higher conversion rates and better user experience

How Deep Linking Works

Basic Flow

User clicks link → Link contains destination data → App opens → App reads data → Routes user to content

Example

Standard web link:

https://example.com/products/shoe-123
→ Opens in mobile browser
→ User must find and open app manually
→ Context lost

Deep link:

myapp://products/shoe-123
→ Opens app directly
→ Navigates to product page automatically
→ User sees shoe-123 immediately

The simplest form using custom URL schemes.

Format: myapp://path/to/content

How it works:

  1. App registers custom scheme (e.g., myapp://)
  2. Operating system associates scheme with your app
  3. Links with that scheme open your app

Example:

myapp://products/shoe-123
myapp://profile/user456
myapp://settings

Limitations:

  • ❌ Only works if app is installed
  • ❌ If app not installed → error or nothing happens
  • ❌ Not great for sharing publicly
  • ❌ Can have scheme conflicts (multiple apps using same scheme)

Best for: Internal app-to-app communication


Modern, platform-native deep linking using regular HTTPS URLs.

Format: https://yourdomain.com/path/to/content

How it works:

  1. You own a domain (e.g., go.yourapp.com)
  2. You host a verification file on that domain
  3. Operating system verifies you own both the domain and app
  4. Links from that domain open your app (if installed) or website (if not)

Example:

https://go.yourapp.com/products/shoe-123

If app installed → Opens app to product page
If app NOT installed → Opens website product page

Advantages:

  • ✅ Graceful fallback to website
  • ✅ No broken links
  • ✅ Works as regular web links
  • ✅ No scheme conflicts
  • ✅ Better for sharing (looks like normal URL)

Platform specifics:

  • iOS: Universal Links (requires apple-app-site-association file)
  • Android: App Links (requires assetlinks.json file)

Best for: Public sharing, marketing campaigns, social media


The most powerful type: routes users to content even after installing the app.

The "Magic" Flow:

  1. User clicks link (doesn't have app installed)

    https://go.yourapp.com/products/shoe-123
  2. Redirected to App Store/Google Play

    • System detects app not installed
    • Link data is "remembered" (via fingerprinting or device ID)
  3. User installs app

  4. User opens app for first time

  5. App retrieves original link data

    • Knows user came from the shoe-123 link
  6. App routes user to shoe-123 product page

    • User sees the exact product they clicked
    • Seamless experience

How it "remembers" the link:

  • Fingerprinting: Matches device characteristics (IP, user agent, screen size, timezone, etc.)
  • Accuracy: 70-80% with good fingerprinting (like LinkForty uses)
  • Privacy-friendly: No persistent device IDs required

Use cases:

  • 📱 Marketing campaigns targeting new users
  • 🎁 Referral programs ("Install and get reward")
  • 🛍️ Product-specific ads for non-users
  • 📧 Email campaigns to acquire new users

Best for: User acquisition campaigns


Deep links that carry additional context or data beyond just routing.

Example:

https://go.yourapp.com/products/shoe-123?
utm_source=instagram&
utm_campaign=summer-sale&
referrer=user789&
discount=SUMMER20

The app receives:

  • Destination: Product shoe-123
  • Traffic source: Instagram
  • Campaign: summer-sale
  • Referrer: user789
  • Discount code: SUMMER20

The app can then:

  • Apply the discount automatically
  • Credit user789 with referral
  • Track campaign performance
  • Personalize the experience

Best for: Advanced attribution and personalization


Platform Differences

Requirements:

  1. Owned domain (e.g., go.yourapp.com)
  2. HTTPS hosting for verification file
  3. apple-app-site-association file hosted at /.well-known/
  4. Associated Domains capability in Xcode
  5. AppDelegate implementation

Verification file example:

{
"applinks": {
"apps": [],
"details": [
{
"appID": "TEAMID.com.yourapp.bundle",
"paths": ["*"]
}
]
}
}

Advantages:

  • Native iOS feature (secure)
  • No custom URL scheme needed
  • Graceful web fallback

Limitations:

  • Requires domain ownership
  • Setup complexity
  • Cached by iOS (changes take time to propagate)

Requirements:

  1. Owned domain
  2. HTTPS hosting
  3. assetlinks.json file hosted at /.well-known/
  4. Intent filters in AndroidManifest
  5. SHA-256 fingerprint of signing key

Verification file example:

[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.yourapp",
"sha256_cert_fingerprints": ["FA:C6:17:..."]
}
}]

Advantages:

  • Native Android feature
  • Automatic verification
  • No disambiguation prompts

Limitations:

  • Requires signing key fingerprint
  • Domain verification needed
  • More complex than custom schemes

Common Use Cases

1. E-commerce

Product deep links:

https://go.mystore.com/products/winter-jacket-2024
  • Click from Instagram ad → App opens to product
  • User can buy immediately
  • Increases conversion by 3-5x

2. Content & Media

Article deep links:

https://news.myapp.com/articles/breaking-news-123
  • Share news article on Twitter
  • Readers with app installed → Opens in app
  • Readers without app → Opens mobile web

3. Referral Programs

Referral deep links:

https://go.myapp.com/invite?code=FRIEND20&referrer=user456
  • User shares invite link
  • Friend clicks, installs app
  • Friend gets $20 credit
  • User456 gets referral credit

4. Email & Push Notifications

Contextual deep links:

https://go.myapp.com/orders/12345?source=email
  • Email: "Your order has shipped"
  • User clicks tracking link
  • App opens to order details
  • Track that email drove engagement

5. QR Codes

Offline-to-online:

https://go.myapp.com/menu/table-7?venue=downtown
  • QR code on restaurant table
  • Scan to view menu in app
  • Table number pre-filled for ordering

Benefits of Deep Linking

For Users

  • Seamless experience - Direct access to content
  • Faster navigation - No manual searching
  • Context preserved - Discounts, referrals, etc. work automatically

For Businesses

  • 📈 Higher conversion rates - 2-5x improvement typical
  • 📊 Better attribution - Know what drove installs/engagement
  • 💰 Lower acquisition costs - More efficient campaigns
  • 🎯 Personalization - Deliver targeted experiences

For Developers

  • 🔧 Unified links - Same URL for app and web
  • 📱 Cross-platform - Works on iOS and Android
  • 🔗 Shareability - Normal HTTPS links work everywhere

Deep Linking Best Practices

1. Always Provide Fallbacks

If app installed → Open app
If app NOT installed → Open website or App Store
Never → Show error or dead link
Good: https://go.app.com/products/123
Bad: https://api.internal.prod.app.com/v2/entities/product?id=123&session=xyz
  • More reliable than custom schemes
  • Better user experience
  • Works as regular web links

4. Test Thoroughly

  • Test with app installed
  • Test without app installed
  • Test on both iOS and Android
  • Test fallback scenarios

5. Track Everything

  • Click events
  • Install attribution
  • In-app navigation
  • Conversion rates

How to Implement Deep Linking

DIY Approach

What you need:

  1. Set up domain and HTTPS hosting
  2. Create and host verification files (AASA for iOS, assetlinks for Android)
  3. Configure Xcode (iOS) or AndroidManifest (Android)
  4. Implement SDK code to handle links
  5. Build fingerprinting for deferred deep linking
  6. Create link management system
  7. Set up analytics tracking

Time investment: 2-4 weeks of development

Challenges:

  • Complex setup (especially verification files)
  • Platform-specific code
  • Fingerprinting accuracy
  • Link management at scale

Using a Platform

What platforms provide:

  • ✅ Automatic verification file generation
  • ✅ Simple SDK integration
  • ✅ Fingerprinting for deferred deep links
  • ✅ Link creation and management UI
  • ✅ Analytics and attribution tracking
  • ✅ Universal fallback handling

Available Solutions:

Enterprise Platforms:

  • AppsFlyer, Branch, Adjust
  • Comprehensive features, integrations
  • Expensive (usage-based pricing, $$$$)
  • Best for: Large enterprises

Open Source & Privacy-First:

  • LinkForty - Open-source mobile attribution and deep link platform
  • Self-hosted (free) or managed cloud ($29/month)
  • Full deferred deep linking support
  • Privacy-friendly fingerprinting (no persistent IDs)
  • Complete link management and analytics
  • Best for: Privacy-conscious companies, cost-conscious teams, developers

Time investment: 1-2 days of integration


Why LinkForty for Deep Linking?

LinkForty provides everything you need for deep linking:

Features

  • Deferred deep linking - Routes users after install (70%+ accuracy)
  • Universal Links & App Links - Auto-generates verification files
  • Link management - Create, edit, track thousands of links
  • Analytics - Click tracking, install attribution, conversion metrics
  • QR codes - Generate codes for offline campaigns
  • UTM tracking - Full campaign attribution

Why Choose LinkForty?

Open Source:

  • Full source code access (MIT license)
  • Community-driven development
  • No vendor lock-in
  • Self-host for free

Privacy-First:

  • No persistent device IDs required
  • GDPR compliant fingerprinting
  • Data ownership (self-hosted option)
  • No third-party data sharing

Developer-Friendly:

  • Simple SDK integration (5 minutes)
  • React Native, iOS, Android support
  • Clear documentation
  • API access for automation

Cost-Effective:

  • Free forever (self-hosted)
  • $29/month cloud (vs $$$$ enterprise)
  • Unlimited links
  • No usage-based pricing surprises

Get Started with LinkForty

Cloud (Managed):

  1. Sign up at linkforty.com
  2. Create your first link
  3. Integrate SDK (5 minute setup)
  4. Start tracking

Self-Hosted (Free):

  1. Install @linkforty/core from npm
  2. Deploy to your infrastructure
  3. Integrate SDK
  4. Full control

View Quick Start Guide →

View SDK Integration Guide →


Next Steps

Now that you understand deep linking, explore these related topics:


Frequently Asked Questions

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

Deep linking routes users to content in an installed app.

Deferred deep linking routes users to content after they install the app (remembers the link through the install process).

Do I need a domain for deep linking?

For Universal Links (iOS) and App Links (Android): Yes, you need a domain.

For custom URL schemes: No, but they have significant limitations.

Best practice: Use a domain for production deep linking.

Standard deep links (custom schemes): No - will fail if app not installed.

Universal/App Links: Yes - fall back to website if app not installed.

Best approach: Always use Universal Links or App Links for public sharing.

How accurate is deferred deep linking?

Accuracy varies by method:

  • Fingerprinting: 70-80% (LinkForty uses this)
  • Device ID matching: 90-95% (requires user consent post-iOS 14.5)
  • Universal Links (iOS only): 100% (requires app installed before click)

LinkForty achieves 70%+ accuracy using privacy-friendly fingerprinting.

Is deep linking GDPR compliant?

Yes, when implemented properly:

  • ✅ Fingerprinting doesn't use persistent IDs
  • ✅ No personal data collected
  • ✅ IP addresses processed for routing only

LinkForty's fingerprinting is GDPR compliant.

What happens if two apps use the same URL scheme?

This is called a scheme conflict. The operating system may:

  • Prompt user to choose which app to open
  • Open the most recently installed app
  • Open a default app

Solution: Use Universal Links / App Links (domain-based) instead of custom URL schemes.


Summary

Deep linking transforms the mobile app experience by enabling direct navigation to specific content. Whether you're building an e-commerce app, content platform, or any mobile product, deep linking is essential for:

  • User experience - Seamless navigation
  • Marketing - Higher conversion rates
  • Attribution - Track campaign performance
  • Growth - Efficient user acquisition

Ready to implement deep linking?

LinkForty provides everything you need:

  • Deferred deep linking for install attribution
  • Universal Links / App Links support
  • Link management and analytics
  • Open source & privacy-first
  • Free to self-host or $29/month managed

Get Started with LinkForty →


Questions?