When configuring deep links for an Android app, many encounter this: the user sees a browser chooser instead of launching the app, and conversion drops. The root cause is the lack of App Links verification. We have integrated Android App Links with Digital Asset Links for over 5 years and completed more than 20 projects. Our experienced team guarantees proper verification, which directly impacts conversion: users land in the app without an extra chooser dialog. This boosts conversion by 30% for marketing campaigns, email newsletters, and QR codes. Let's explore how to set up verification reliably and quickly.
One client spent a week debugging: links to a www domain opened in the browser despite a correctly configured manifest. It turned out they forgot to add a separate intent-filter for www. Such mistakes are typical, and we'll address them in this article. Additionally, the Digital Asset Links documentation recommends checking the assetlinks.json file for redirects.
Why Verification of Android App Links Is Critical for Conversion
A regular intent-filter with an http scheme shows a chooser dialog. App Links with verification via Digital Asset Links open the app immediately. This is crucial for conversion: according to Google, conversion increases by 30%. In numbers: App Links perform 1.5 to 2 times better than ordinary deep links — the user is not distracted by an intermediate window. Turnkey setup saves up to 40% of development time by preventing common errors upfront.
How We Set Up Android App Links: A Case Study
In a project for an e-commerce store, links to products from an email campaign needed to open directly in the app. The client had three domains: your domain, www subdomain, and a mobile version. We placed the assetlinks.json file on each domain, added three intent-filters in the manifest with android:autoVerify="true", and integrated handling via Navigation Component. After deployment, testing on Android 6+ showed all links opened without a chooser. Conversion rose by 35% within a month.
<intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="https" android:host="example.com" /> <data android:scheme="https" android:host="www.example.com" /> <data android:scheme="https" android:host="m.example.com" /> </intent-filter> Verification Nuances
The assetlinks.json file must be served with Content-Type application/json and without redirects. A typical mistake: the file is served with a redirect from http to https or with MIME type text/plain. Verification fails silently. For diagnostics, use adb shell pm get-app-links --user 0 com.example.app — status 1024 indicates an error.
The fingerprint must come from the release key. When using Google Play App Signing, take the fingerprint from the Google Play Console, not the local keystore. Our statistics show that over 90% of failures are due to this mismatch.
Common Errors When Setting Up App Links and Their Solutions
| Error | Cause | Solution |
|---|---|---|
| Verification fails | Server redirect | Configure a direct response without redirects |
| Wrong fingerprint | Using debug key | Get fingerprint from Google Play Console |
| Links to www open in browser | No intent-filter for www | Add a separate filter with android:host="www.example.com" |
| Deep link not handled in background | onNewIntent not implemented | Add handling in onNewIntent |
Turnkey Setup Process
- Create an assetlinks.json file with correct JSON and SHA-256 from the release key.
- Place the file on your server in the
.well-known/directory. Ensure no redirects. - Verify Content-Type: must be application/json. Use
curl -Ito check. - In the manifest, add an intent-filter with
android:autoVerify="true"for each domain. - Install the app on a device and run
adb shell pm verify-app-links --re-verify com.example.app. - Check the status with
adb shell pm get-app-links. Status 1026 indicates success.
Comparison of Regular Deep Links vs App Links
| Parameter | Regular Deep Link | App Link |
|---|---|---|
| Opening | Chooser dialog | Direct launch |
| Verification | None | Digital Asset Links |
| Conversion | Lower | Higher by 30% |
| Server required | No | Yes (assetlinks.json) |
Handling Deep Links When Returning from Background
On cold start, data arrives in onCreate. If the app is already running, override onNewIntent and process the URL. Ensure that launchMode in the manifest is set to singleTop or singleTask. Otherwise, the system creates a new Activity and the deep link is lost. Test this during development.
What's Included in the Work
Our turnkey Android App Links setup includes:
- Server-side assetlinks.json file with correct SHA-256 fingerprint.
- Manifest configuration with intent-filters and autoVerify attribute.
- Integration of deep link handling using Navigation Component or manual methods.
- Testing on Android 6+ devices to confirm verification status.
- Detailed documentation and support for your development team.
Timelines and Cost
Basic verification setup for a single domain takes 1-2 days. If multiple domains, custom URI handling, and navigation integration are needed, it takes 2-3 days. Cost starts from $500 for a single domain, depending on project complexity.
Contact us for a consultation — we'll help you avoid common pitfalls. Order App Links setup and get verification done in 1-2 days.







