Test your deep link
Supports iOS Universal Links, Android App Links, custom schemes, and regular web URLs
Why test deep links?
Deep link testing is essential to ensure your app links work correctly across iOS, Android, and web. Broken deep links frustrate users and damage your campaign performance.
Consequences of broken deep links
- ✕Users land on wrong screen or home page
- ✕Campaign tracking data is lost
- ✕Lower conversion rates and engagement
- ✕Poor user experience and app uninstalls
Benefits of tested deep links
- ✓Catch issues before launching campaigns
- ✓Ensure campaign tracking works correctly
- ✓Improve conversion rates and user experience
- ✓Verify platform-specific behavior
When to test deep links
- Before launching any campaign with deep links
- When creating new deep link schemes or routes
- After updating your app's deep link configuration
- When adding new campaign parameters or UTM values
Common deep link issues
Missing AASA File (iOS)
The Apple App Site Association (AASA) file is required for Universal Links to work on iOS. Without it, links open in Safari instead of your app.
Solution:
Host an AASA file at https://yourdomain.com/.well-known/apple-app-site-association
Missing assetlinks.json (Android)
Android requires an assetlinks.json file to verify the association between your app and domain. Without it, App Links won't work.
Solution:
Host an assetlinks.json file at https://yourdomain.com/.well-known/assetlinks.json
Using HTTP Instead of HTTPS
iOS Universal Links and Android App Links require HTTPS. HTTP links won't work for verified deep linking and will fall back to browser opening.
Solution:
Always use https:// for deep links, not http://
Incorrect Scheme Name
Custom scheme deep links (myapp://) must match exactly the scheme registered in your app's configuration. Typos or mismatches cause the app not to launch.
Examples:
- Your app registers:
myapp - Deep link uses:
myapp://✓ Correct - Deep link uses:
my-app://✗ Won't work
Spaces in URLs
URLs with spaces are invalid and won't be recognized by browsers or apps. All spaces must be encoded as %20.
Example:
myapp://products/summer salemyapp://products/summer%20saleHow to debug deep links
Follow these steps to identify and fix deep link issues:
Step 1: Test with the Deep Link Tester
Paste your deep link URL into this tool to see if it parses correctly and check for obvious issues.
Look for:
- • Invalid URL format
- • Missing or incorrect components
- • UTM parameter capture issues
Step 2: Verify Platform Configuration
For iOS: Check if your AASA file is properly configured and accessible.
Validate your AASA fileFor Android: Check if your assetlinks.json file is properly configured and accessible.
Validate your assetlinks.jsonStep 3: Test on Real Devices
The best way to test deep links is on actual iOS and Android devices. Install your app and try tapping the deep link from various sources (email, SMS, browser, etc.).
Note: Some deep link functionality (like Universal Links on iOS) only works when tapping links from external apps or browsers, not when testing in Xcode.
Step 4: Check App Logs
Review your app's logs to see if the deep link is being received by your app and parsed correctly. Add logging to your deep link handling code:
// In your app's deep link handler
console.log('Received deep link:', url);
console.log('Parsed parameters:', params);
console.log('UTM source:', params.utm_source);Step 5: Verify Analytics Integration
Make sure your analytics SDK is properly initialized and configured to capture deep link parameters. Test a deep link and check if the UTM data appears in your analytics dashboard.
Related tools and guides
Continue debugging and optimizing your deep links:
Frequently asked questions
How do I test a deep link?
Paste your deep link URL into this tester tool, click "Test Link", and the tool will analyze it. It will show you the parsed URL components, detected platform, and any potential issues.
What are common deep link issues?
Common issues include: using http:// instead of https://, missing AASA file for iOS, missing assetlinks.json for Android, incorrect scheme names, spaces in URLs, and missing app configuration.
What is an AASA file?
The Apple App Site Association (AASA) file is a JSON configuration file that you host on your server at /.well-known/apple-app-site-association. It tells iOS that your app is associated with your domain, enabling Universal Links.
What is assetlinks.json?
The assetlinks.json file is an Android configuration file that you host on your server at /.well-known/assetlinks.json. It tells Android that your app is associated with your domain, enabling App Links.
Why isn't my deep link opening the app?
This can happen for several reasons: the app is not installed, the deep link scheme is not registered in the app manifest, the domain is not verified for Universal Links/App Links, or there's a URL encoding issue. Use this tester to identify the problem.