Deep link vs App Link on Android: the difference that costs installs.
Both send a URL into your app. Only one proves you own the website, and that proof is what removes the "Open with" dialog between a click and your app.
Deep link vs App Link is a question every Android team hits when links from email, ads or search open a chooser instead of the app. The difference is verification, and it is a one-file fix on your website.
Deep link vs App Link on Android
| Deep link | Android App Link | |
|---|---|---|
| What it is | A URI your app registers for with an intent filter | A deep link to your own https website, verified |
| Schemes | Any, e.g. myapp:// or https:// | http/https only |
| Verification | None | Digital Asset Links file on your domain |
| Chooser dialog | Can appear | Skipped once verified |
| Android versions | All | Android 6+ with Google services |
Android's documentation describes deep links as a standard capability that routes links through the intents system, subject to the disambiguation dialog. App Links add a verified association between your app and your website, so links to your site can open the app immediately.
How App Link verification works
First, mark the intent filter for verification:
<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="www.example.com" />
</intent-filter>
Then publish a Digital Asset Links file at https://www.example.com/.well-known/assetlinks.json listing your package name and signing certificate fingerprint:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints": ["AA:BB:..."]
}
}]
Use the fingerprint of the key that signs the app users install. With Play App Signing, that is Google's app signing key, shown in Play Console, not your upload key.
How to test it
- Re-run verification:
adb shell pm verify-app-links --re-verify PACKAGE_NAME. - Check the result:
adb shell pm get-app-links PACKAGE_NAMEshould show your domain asverified. - Make sure the file is served over https, at that exact path, without redirects.
Why it matters for growth
Every chooser or browser detour between a click and the right screen loses people. App Links let one URL serve both web and app, which also keeps your website as the canonical, crawlable version of the content. On Android 15, dynamic App Links let you adjust URL matching without shipping an update. For iOS, see universal links vs deep links.
Questions people ask
What is the difference between a deep link and an App Link?
A deep link is any URI that opens your app and may show a chooser. An App Link is an https deep link to your own verified website that opens your app directly.
Why does my App Link still show a chooser?
Usually verification failed: the assetlinks.json file is missing, redirected, served without https, or lists the wrong certificate fingerprint. Check with adb shell pm get-app-links.
Do App Links work on all Android versions?
No. App Links need Android 6 or later on devices with Google services. Plain deep links work on all versions.
Is Firebase Dynamic Links still an option?
No. Firebase Dynamic Links shut down on 25 August 2025, and its links stopped working.
Want this mapped onto your product?
See how our growth consulting work runs, or send your store link and a founder will reply personally.