Launch offer: the first 1,000 users get Business free. Claim your spot →
All posts
Deep linkingBy the directinapp team6 min read

Android App Links vs deep links: which one should you use?

“Deep link” and “App Link” sound interchangeable on Android. One silently fails and pops random app-chooser dialogs; the other doesn't. Here's the difference and when it matters.

An Android home screen full of app icons
Photo by Sebastian Bednarek on Unsplash

On Android, a deep link usually means a custom-scheme link (myapp://) that any app can claim and that fails silently when the app is missing. An App Link is a verified https deep link — you host an assetlinks.json file proving your app owns the domain, so Android opens your app with no chooser and falls back to the web page when the app isn't installed. App Links are the upgrade; deep links are the old default.


On Android these two terms get used as if they're the same feature. They're not, and if you pick the wrong one your users get a random Open with… dialog or a link that does nothing. Here's what separates them.

Side by side

Deep link (custom scheme)App Link (verified https)
Looks likemyapp://product/42https://myapp.com/product/42
Ownership proofNoneassetlinks.json on your domain
Opens your appSometimes a chooser firstDirectly, no prompt
App not installedError / nothingBrowser loads the page
Another app can hijack itYesNo
Setup effortMinutesA file + verification

What a plain deep link actually does

A custom-scheme deep link registers myapp:// in the manifest. Tap it and Android looks for anyone claiming that scheme. If exactly your app claims it and it's installed, great. If two apps claim it, Android shows a chooser. If nobody claims it, you get an error. There's no built-in fallback and no ownership check — the scheme is a free-for-all.

What an App Link adds

An App Link is a real https URL your app has verified. You publish /.well-known/assetlinks.json listing your package name and app-signing fingerprint. Android fetches it, confirms your app is authorized for that domain, and from then on opens your app for those links automatically — no chooser, no Open with. Because it's https, a missing app just loads the web page. The verification is the point: nobody else can claim your domain's links.

The gotcha that breaks App Links quietly

App Links are wonderful when they verify and infuriating when they don’t. A wrong signing fingerprint, a redirect on the assetlinks.json path, the wrong content-type, or the file simply unreachable — any of these silently drops you back to the old behavior, and Android won’t shout about it. Test with the verification tooling; don’t assume.

Which to use

For anything a real user taps, App Links. Keep a custom scheme as an internal or debug convenience if you like, but don't rely on it in the wild. And if you're linking to an app you don't own, you can't set up its App Links at all — that's where a routing layer like directinapp does the per-platform open-or-fall-back logic for you, without an SDK.

Found this useful? Tell Google to show you more of it.

Add us as a preferred source

Related guides

Put this into practice

Create smart short links that open the right app, with analytics built in. No credit card required.

Start free