Deep linking has long been a crucial component of modern Android applications, enabling seamless navigation from web content directly into app experiences. With Android 15, Google introduces Dynamic App Links, a powerful evolution that shifts deep linking configuration from static app manifests to flexible server-side management.
Understanding Dynamic App Links
Dynamic App Links build upon the foundation of Android App Links, introducing server-side configuration capabilities through your Digital Asset Links JSON file. This architectural shift means you can now control which URLs open in your app without deploying new app versions—a game-changer for teams managing complex linking strategies.
The Traditional Challenge
Previously, modifying your app's deep linking behavior required:
- Updating your app's manifest configuration
- Going through the complete development and testing cycle
- Publishing a new version to Google Play
- Waiting for users to update their apps
This process could take days or weeks, making it difficult to respond quickly to changing business needs or fix linking issues.
The Dynamic Solution
With Dynamic App Links, you configure deep linking rules directly in your Digital Asset Links JSON file hosted on your server. Changes take effect immediately for all users running Android 15 or higher, without requiring any app updates.
Core Capabilities
1. Exclusion Rules
One of the most powerful features is the ability to exclude specific URL patterns from app linking. This is invaluable for several scenarios:
Unsupported Content
Perhaps your website has sections like press releases, investor relations, or legal documents that don't have corresponding app screens. Previously, clicking these links on Android would awkwardly try to open your app. Now you can explicitly exclude these paths:
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints": ["..."]
},
"exclude": {
"paths": ["/press", "/investors", "/legal"]
}
}
Legacy URL Management
As apps evolve, certain URL structures become deprecated. Exclusions let you gracefully handle these transitions without breaking existing links or confusing users.
Campaign-Specific Routing
Marketing campaigns often require custom landing pages that work better as web experiences. You can temporarily exclude campaign URLs during specific promotions, then remove the exclusion when the campaign ends.
2. Query Parameter Control
Query parameters provide granular control over linking behavior. This enables sophisticated use cases:
A/B Testing
Test whether users engage better with your app or mobile web by routing different user segments differently:
{
"exclude": {
"query_parameters": ["variant=web"]
}
}
Users with ?variant=web stay in the browser, while others open the app, allowing you to measure comparative performance.
Gradual Rollouts
Roll out app linking to a subset of users by excluding specific tracking parameters, then progressively expand as you validate the experience.
Analytics Preservation
Certain analytics platforms work better when users remain in the browser. You can exclude URLs containing specific UTM parameters or tracking identifiers.
3. Real-Time Configuration Updates
Perhaps the most transformative aspect is instant configuration propagation. Update your Digital Asset Links file, and Android 15+ devices immediately recognize the changes. This enables:
Rapid Issue Resolution
Discovered a problematic URL pattern causing crashes? Exclude it within minutes, not weeks.
Seasonal Adjustments
Modify linking behavior for holiday campaigns, product launches, or special events, then revert when they conclude.
Continuous Optimization
Iterate on your deep linking strategy based on user behavior analytics without the friction of app releases.
Implementation Guide
Step 1: Verify Current App Links Setup
Ensure your existing Android App Links configuration is working correctly:
- Your app's manifest declares intent filters with
android:autoVerify="true" - Your Digital Asset Links JSON file is accessible at
https://yourdomain.com/.well-known/assetlinks.json - The file correctly references your app's package name and certificate fingerprints
Step 2: Enhance Digital Asset Links JSON
Add dynamic configuration to your existing file. Here's a comprehensive example:
[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.yourapp.android",
"sha256_cert_fingerprints": ["AA:BB:CC:..."]
},
"include": {
"paths": ["/products/*", "/articles/*", "/user/*"]
},
"exclude": {
"paths": ["/legal/*", "/sitemap.xml", "/admin/*"],
"query_parameters": ["web_only=true", "test_group=control"]
}
}
]
Step 3: Test Your Configuration
Use Android's App Links Assistant in Android Studio to verify your setup:
- Open Tools > App Links Assistant
- Verify your domain associations
- Test specific URLs to ensure they route correctly
You can also test using ADB:
adb shell am start -a android.intent.action.VIEW \
-d "https://yourdomain.com/products/123"
Step 4: Monitor and Iterate
Deploy your configuration and monitor user behavior:
- Track app open rates from links using analytics
- Monitor for any unexpected routing issues
- Iterate based on user engagement metrics
Real-World Use Cases
E-Commerce Applications
An online retailer might use Dynamic App Links to:
- Route product pages to the app for better conversion
- Keep checkout flows in the browser for payment security
- Exclude size guides and shipping information that work better on web
- A/B test app vs. web experiences for different product categories
Content Platforms
News or media apps can:
- Open articles in the app for logged-in users
- Keep subscription signup flows in the browser
- Exclude advertiser landing pages that require web tracking
- Route breaking news to the app for push notification integration
Financial Services
Banking and fintech apps benefit from:
- Opening account summaries and transactions in the app
- Keeping document uploads and verification in the browser for security
- Excluding regulatory disclosures that need specific web formatting
- Gradual rollout of new features by routing specific user segments
Performance and User Experience Benefits
Reduced Friction
Every redirect or navigation delay increases user drop-off. Dynamic App Links eliminate unnecessary browser hops, getting users to content faster.
Higher Engagement
Users who land directly in your app spend more time engaged with your content compared to those who start in a mobile browser.
Improved Conversion Rates
Whether your conversion goal is purchases, subscriptions, or content consumption, reducing steps in the user journey improves conversion rates.
Flexible Strategy
Market conditions change, user preferences evolve, and new features launch. Dynamic App Links let your deep linking strategy adapt as quickly as your business needs.
Best Practices
Start Conservative
Begin by including only well-tested app screens in your linking strategy. Expand coverage as you validate each section.
Monitor Analytics
Track deep link performance metrics:
- Click-through rates from links
- Time spent in app after deep link entry
- Conversion rates compared to web entry
- User retention for deep link vs. other entry points
Document Your Rules
Maintain clear documentation of your exclusion and inclusion rules. As your team grows and strategies evolve, this documentation becomes crucial.
Test Thoroughly
Before deploying configuration changes:
- Test on multiple Android 15+ devices
- Verify behavior for included and excluded paths
- Check edge cases like URLs with multiple query parameters
- Validate that web fallback works correctly for excluded URLs
Plan for Older Android Versions
Remember that Dynamic App Links only work on Android 15+. Ensure your traditional App Links configuration still works for users on older Android versions.
Technical Considerations
Caching Behavior
Android caches your Digital Asset Links configuration, but updates propagate relatively quickly. Plan for a brief propagation window when making changes.
HTTPS Requirement
Like traditional App Links, your Digital Asset Links file must be served over HTTPS with a valid SSL certificate.
File Size Limits
Keep your Digital Asset Links JSON file reasonably sized. Extensive rule lists may impact parsing performance.
Wildcard Support
Use wildcards strategically in path patterns. "/products/*" is efficient, but overly broad wildcards may match unintended URLs.
Debugging Tips
Verification Failures
If links aren't routing to your app:
- Check that your Digital Asset Links file is publicly accessible
- Verify your SHA-256 certificate fingerprints match your app
- Ensure no typos in package names or paths
- Confirm you're testing on Android 15+
Unexpected Exclusions
If URLs you expect to open the app are staying in the browser:
- Review your exclusion rules for overlapping patterns
- Check for query parameters that match exclusion criteria
- Verify the path structure matches your intent filters
Testing Tools
Use these tools to validate your configuration:
- Google's Digital Asset Links Tester
- Android Studio's App Links Assistant
- Chrome DevTools for debugging redirect chains
Migration Strategy
For Existing Apps
If you already use Android App Links:
- Review your current manifest-based configuration
- Identify which URLs would benefit from dynamic control
- Add exclusion rules for problematic or unsupported paths
- Gradually shift complex routing logic to server-side configuration
For New Apps
Build Dynamic App Links into your architecture from the start:
- Design your URL structure with app linking in mind
- Plan which sections will be app-exclusive vs. web-exclusive
- Implement comprehensive analytics to measure linking success
- Build server-side infrastructure to manage your Digital Asset Links file
Looking Forward
Dynamic App Links represent a significant maturity in Android's deep linking ecosystem. By moving configuration to server-side control, Google acknowledges the reality of modern app development: teams need flexibility to respond quickly to changing requirements.
As Android 15 adoption grows, we can expect Dynamic App Links to become the standard approach for managing deep linking. The combination of granular control, instant updates, and reduced development overhead makes it compelling for apps of all sizes.
Getting Started Today
If your app targets Android 15+, there's no reason not to implement Dynamic App Links:
- Review your current deep linking setup
- Identify URLs that would benefit from dynamic control
- Update your Digital Asset Links JSON file
- Test thoroughly on Android 15 devices
- Monitor analytics and iterate based on user behavior
The investment is minimal, and the flexibility you gain is substantial.
Conclusion
Dynamic App Links solve a long-standing pain point in Android development: the inability to quickly adjust deep linking behavior without app updates. Whether you're managing a complex e-commerce catalog, a content platform with evolving sections, or a fintech app with strict routing requirements, Dynamic App Links provide the control you need.
By enabling server-side configuration through Digital Asset Links, Android 15 empowers developers to create more responsive, user-friendly deep linking experiences. As you plan your app's navigation strategy, consider how Dynamic App Links can help you deliver smoother user journeys and respond more quickly to changing business needs.
Start experimenting with Dynamic App Links today, and discover how this powerful feature can elevate your app's deep linking experience.
Credit: This article is inspired by the official Android Developers Blog post on Dynamic App Links. We encourage you to read the original announcement for additional technical details and official documentation.