Skip to content

Deep linking

Deep links, universal links and app links explained

Deep linking targets content inside an app. The mechanism, domain setup and launch context matter; none of them replaces testing the web fallback or browser handoff.

By Tim GeithnerUpdated 4 min read

In mobile app linking, a deep link targets content such as a product, album or profile inside an app. Different mechanisms can express that destination. The URL format alone does not prove that the app is installed, the association is configured or the source browser will allow the launch.

Custom URL schemes

A custom scheme uses a format such as myapp://product/123 that an app registers to handle. Android's deep-link overview explains that intent-based deep links can use custom schemes or web URLs and may involve app selection. A custom scheme is not a verified website-to-app association.

Keep a usable web destination available. An absent handler, a blocked launch or an unsupported route can prevent the intended app screen from opening. Test the exact target and source context rather than assigning a universal success rate to the scheme.

Universal links connect a website URL with content handled by an associated app. Apple's implementation guide requires a two-way app/website association and app-side handling of the incoming URL. Apple also calls for validation of URL parameters. Merely putting an HTTPS address in a linkpage does not configure those associations for you.

Android App Links establish a verified association between an app and its website. Once verified, they can open matching app content without an app-selection dialog. The Android documentation describes this separately from unverified deep links. Verify the association and test the actual device configuration rather than promising an app launch for every tap.

Chrome intent URLs

Chrome on Android supports intent: URLs that can identify a target app and carry a browser_fallback_url. Chrome's documentation explains fallback handling and conditions that prevent launching, including unresolved intents and missing user gestures. Those rules do not establish support in every social app's internal browser.

A comparison of mechanisms, not a ranking of success rates inside TikTok or Instagram.
MechanismMain distinctionCheck before relying on it
Custom schemeAn app registers a schemeA suitable handler and the intended route exist; provide a web alternative.
Apple universal linkWebsite and app are associatedAssociation and URL handling are configured; test the source journey.
Android App LinkA verified website/app associationVerification and matching behavior on the intended device.
Chrome intent URLExplicit launch information with an optional fallbackGesture requirements, a valid target and the fallback in the browser used.
A comparison of mechanisms, not a ranking of success rates inside TikTok or Instagram.

Build and test the fallback path

  1. 1

    Validate the web destination

    Use a destination for the intended content and check its public availability. A fallback to an unavailable or unrelated page is not a useful recovery path.

  2. 2

    Try the native target where appropriate

    Use a configured app target and the relevant platform mechanism. Test with the app installed and absent, from the real source app as well as a regular browser.

  3. 3

    Exercise failure and return paths

    Check a refused or cancelled launch, unsupported routes, manual opening and the visitor's return to the page. Do not assume one fallback mechanism behaves identically in every host app.

  4. 4

    Verify the action at the destination

    A tap, focus change or timer is not proof that the intended app screen opened. Use destination-side evidence where available and distinguish an opening attempt from a completed action.

How this relates to OpenOut

OpenOut's routing can select configured native targets for supported destinations and retain a validated web URL as the fallback. Browser guidance adds opening attempts, copy and manual instructions for in-app contexts. It cannot guarantee that another app opens or that the destination completes a purchase or signup.

Free includes a linkpage; browser guidance requires Pro. See the deep links page for the product flow and pricing for the plan comparison. For browser-context differences, read in-app browsers explained.

Frequently asked questions

What is the difference between a deep link and a universal link?

Deep linking describes reaching specific app content. Apple universal links are a mechanism using associated website URLs and app-side URL handling. Custom schemes and Android App Links are other mechanisms with different requirements.

Does an HTTPS link automatically become a universal link or App Link?

No. Website/app association and app-side handling must be configured. Test verification and behavior on the intended devices and source contexts.

Does an Android intent URL always use its fallback?

Do not assume so across every browser. Chrome documents its intent and browser_fallback_url behavior, but another host app can handle navigation differently. Test that context and provide a usable manual path.

Can a universal link guarantee escape from an in-app browser?

No. Routing to associated app content and moving into an external browser are different outcomes. Test the one your visitor actually needs.

Can a click prove the app opened?

No. Record it as an attempt unless you have suitable evidence from the destination. Even a successful app opening does not establish that a purchase, signup or other intended action completed.

Go deeper

One link that gets people to the real web

Build a link-in-bio page with a breakout flow that guides visitors out of restricted in-app browsers. Free to start, no credit card.

Claim your handle