Deep Linking

Deep linking is the practice of using a URL to open a specific screen or piece of content inside an app, rather than merely launching the app to its home view. A plain link opens the app; a deep link routes the user to a particular product, conversation, or page within it. This matters on mobile because apps are otherwise opaque to the web: search results, emails, and shared links naturally point at web URLs, and deep linking is what lets those URLs land users in the right place inside an installed app.

The original mechanism was custom URI schemes, where an app registers a scheme such as myapp:// and the operating system routes matching links to it. That worked but was fragile and insecure: any app could claim a scheme, there was no verification of ownership, and a link would fail awkwardly if the app was not installed. The platforms therefore introduced verified web links that use ordinary https URLs tied cryptographically to a domain.

Apple calls its version Universal Links. Its documentation explains that “when you support universal links, iOS users can tap a link to your website and get seamlessly redirected to your installed app without going through Safari,” and that “when a user taps a universal link, iOS launches your app and sends it an NSUserActivity object” describing how it was launched. Setup requires two halves of a verified association: the app declares the domains it handles in its com.apple.developer.associated-domains entitlement (prefixed applinks:), and the website hosts an apple-app-site-association JSON file, placed “at the root of your server or in the .well-known subdirectory,” that names which app and paths it authorizes.

Android offers the parallel feature as Android App Links. Its documentation distinguishes ordinary deep links, which work on all versions but may trigger a disambiguation dialog asking the user which app should open the link, from App Links, which verify ownership of the website so that “deep links to your website open content directly in your app without a disambiguation dialog.” Because the same web URL works whether or not the app is installed, falling back to the browser when it is not, verified app links unify the web and the app around a single addressable namespace.