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
Types of Deep Links
1. Standard Deep Links (URL Schemes)
The simplest form using custom URL schemes.
Format: myapp://path/to/content
How it works:
- App registers custom scheme (e.g.,
myapp://) - Operating system associates scheme with your app
- 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
2. Universal Links (iOS) & App Links (Android)
Modern, platform-native deep linking using regular HTTPS URLs.
Format: https://yourdomain.com/path/to/content
How it works:
- You own a domain (e.g.,
go.yourapp.com) - You host a verification file on that domain
- Operating system verifies you own both the domain and app
- 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-associationfile) - Android: App Links (requires
assetlinks.jsonfile)
Best for: Public sharing, marketing campaigns, social media
3. Deferred Deep Links
The most powerful type: routes users to content even after installing the app.
The "Magic" Flow:
-
User clicks link (doesn't have app installed)
https://go.yourapp.com/products/shoe-123 -
Redirected to App Store/Google Play
- System detects app not installed
- Link data is "remembered" (via fingerprinting or device ID)
-
User installs app
-
User opens app for first time
-
App retrieves original link data
- Knows user came from the shoe-123 link
-
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
4. Contextual Deep Links
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
iOS (Universal Links)
Requirements:
- Owned domain (e.g.,
go.yourapp.com) - HTTPS hosting for verification file
apple-app-site-associationfile hosted at/.well-known/- Associated Domains capability in Xcode
- 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)
Android (App Links)
Requirements:
- Owned domain
- HTTPS hosting
assetlinks.jsonfile hosted at/.well-known/- Intent filters in AndroidManifest
- 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
2. Keep Links Simple
Good: https://go.app.com/products/123
Bad: https://api.internal.prod.app.com/v2/entities/product?id=123&session=xyz
3. Use HTTPS Universal/App Links
- 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:
- Set up domain and HTTPS hosting
- Create and host verification files (AASA for iOS, assetlinks for Android)
- Configure Xcode (iOS) or AndroidManifest (Android)
- Implement SDK code to handle links
- Build fingerprinting for deferred deep linking
- Create link management system
- 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):
- Sign up at linkforty.com
- Create your first link
- Integrate SDK (5 minute setup)
- Start tracking
Self-Hosted (Free):
- Install
@linkforty/corefrom npm - Deploy to your infrastructure
- Integrate SDK
- Full control
Next Steps
Now that you understand deep linking, explore these related topics:
- What is Deferred Deep Linking? - Deep dive into install attribution
- Universal Links vs App Links - Platform comparison
- How to Implement Universal Links - iOS tutorial
- How to Implement App Links - Android tutorial
- Deep Linking Best Practices - Implementation guide
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.
Can deep links work without the app installed?
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
Questions?