A user taps a product link in a WeChat conversation. The app is already installed. Instead of opening the home screen and forcing the user to search again, the link opens the exact product page inside the app. If the app is not installed, the user can install it first and still land on the original product after first launch.
That is the business value of deep linking: every click keeps its intent. For growth teams, it reduces post-click drop-off. For product teams, it makes user journeys feel continuous. For developers, it connects external URLs with specific screens inside a native mobile app.
What is a deep link?
A deep link is a URL that opens a specific screen, page, or piece of content inside a mobile app instead of opening only the app home screen. The word “deep” refers to routing users deeper into the app hierarchy, such as a product detail page, campaign page, article, checkout step, user profile, invite flow, or coupon page.
Without deep linking, a user taps a link, opens the app home screen, and then has to search manually. With deep linking, the same user taps a link and lands directly on the promised in-app page.
This difference matters because mobile users rarely give a campaign a second chance. If the destination does not match the message, many users simply leave. Deep links are used across email campaigns, paid ads, push notifications, SMS, QR codes, social sharing, referral programs, content sharing, and re-engagement flows.
Why deep linking matters for mobile growth
Deep linking matters because mobile conversion often fails after the click, not before it. A campaign may generate clicks, but if users are sent to a generic home screen, a browser fallback, or an app store page with no restored context, the original intent is lost.
For mobile teams, that gap creates three common problems:
- Activation loss: New users install the app but do not return to the page that persuaded them to install.
- Re-engagement friction: Existing users click a push, SMS, email, ad, or social link but must navigate manually.
- Attribution gaps: Teams cannot reliably connect clicks, installs, opens, and in-app events back to the original channel or campaign.
A complete deep linking setup should do more than open the app. It should route the user, restore context after install, provide fallback paths, and help the business understand which channel drove the result.
The three types of deep links
There are three major deep linking approaches: URI schemes, Universal Links or Android App Links, and deferred deep links. Most production apps use more than one, because each approach solves a different part of the user journey.
1. URI scheme links
URI schemes are the earliest form of mobile deep linking. They use a custom protocol registered by the app.
Example:
myapp://product/12345jmlinkdemo://page/product?id=12345
When a user taps the link, the operating system checks whether an installed app has registered that scheme. If it has, the app opens and receives the path and parameters. If the app is not installed, the experience usually fails or falls back poorly.
Best for: legacy support, controlled environments, internal routing, and cases where you know the app is installed.
Main limitations:
- URI schemes are not domain-verified, so scheme conflicts can occur.
- They do not preserve context if the app is not installed.
- They are often restricted inside in-app browsers, especially in China-market scenarios such as WeChat H5.
2. Universal Links and Android App Links
Universal Links on iOS and Android App Links on Android use verified HTTPS URLs instead of custom schemes.
Example:
https://www.example.com/product/12345
This link can open the app directly if the app is installed and the domain association has been verified. If the app is not installed, the same URL can open in a browser, creating a more graceful fallback.
Apple requires an apple-app-site-association file and Associated Domains entitlement for Universal Links. Android App Links require intent filters and a Digital Asset Links file at /.well-known/assetlinks.json. Google’s Android documentation notes that verified App Links can open corresponding app content without asking the user to choose an app on supported devices.
Best for: production app links, owned domains, web-to-app journeys, email, search, and channels where standard HTTPS links are safer than URI schemes.
Main limitations:
- They require correct domain verification and app configuration.
- They do not automatically restore the original page after a new install.
- Behavior can vary across browsers, in-app WebViews, and non-Google Android distributions.
3. Deferred deep links
Deferred deep linking solves the install gap. It preserves the destination and campaign context when a user clicks a link before the app is installed.
The flow usually looks like this:
- User taps a campaign, referral, ad, SMS, email, QR code, or WeChat link.
- The service detects that the app is not installed.
- The user is routed to the appropriate app store, landing page, or download path.
- After installation, the app SDK checks for the original click context on first launch.
- The app opens the original product, invite, campaign, coupon, or content page instead of the home screen.
In the Chinese mobile industry, this is often described as scene restoration. Instead of making a new user start over after installation, deferred deep linking helps the app continue the same journey the user began before install.
How deep linking works technically
A deep linking system connects four layers: link configuration, app-side handling, server-side routing, and analytics. The exact flow depends on whether the app is installed, which link type is used, and whether the click happens in a normal browser, an app store flow, or an in-app browser.
When the app is installed, the operating system receives the tapped URL and decides whether it should be handled by a browser or by the app.
- URI scheme: The OS checks the registered scheme and passes the URL to the app if a matching app exists.
- Universal Link: iOS checks the associated domain relationship and routes the link to the app if the domain and app are correctly associated.
- Android App Link: Android checks the intent filters and Digital Asset Links verification before routing a verified HTTPS link to the app.
After the app receives the link, the app parses the path and query parameters, maps them to an internal route, and opens the correct screen.
When the app is not installed, a standard deep link cannot complete the journey by itself. A deferred deep linking service needs to store the click context before the user installs the app, then match that context when the app launches for the first time.
A production-ready system usually includes:
- Link setup: URI schemes, Universal Links, Android App Links, domain association files, intent filters, and entitlements.
- Client SDK: App-side logic that receives links, retrieves deferred context, parses parameters, and triggers navigation.
- Link management: A console or API for creating campaign links, short links, QR links, and parameterized URLs.
- Attribution and analytics: Clicks, installs, first opens, App wake-ups, campaign source, and downstream conversion events.
Why deep linking is different in China
China-market deep linking is not just a translation of global deep linking. It has different channel behavior, Android distribution patterns, and WeChat-specific routing constraints. If your app needs to grow in China, Universal Links and Android App Links are important, but they are not enough by themselves.
WeChat H5 requires a different launch path
WeChat remains one of the most important mobile traffic environments in China. Tencent reported 1.418 billion combined monthly active user accounts for Weixin and WeChat as of December 31, 2025. Many app journeys begin inside a WeChat chat, Official Account article, Mini Program, campaign page, or H5 landing page.
Inside WeChat’s built-in browser, common app launch patterns behave differently from a normal mobile browser. WeChat provides an open tag mechanism, including wx-open-launch-app, for H5-to-app launch scenarios. This requires WeChat-side configuration, domain and JS-SDK setup, and app association work.
For teams operating in WeChat, deep linking should be tested inside WeChat itself, not only in Safari, Chrome, or emulator browsers. JMLink supports WeChat-oriented App wake-up scenarios and provides documentation for WeChat open tag usage in its developer resources.
China Android is fragmented across OEM ecosystems
Android App Links are designed around verified web-to-app associations. However, China’s Android ecosystem includes many OEM-customized systems, domestic app stores, and devices without Google Play Services. That means app link behavior, store fallback, and intent handling need real-device validation across major device families.
A deep linking implementation for China should test Huawei, Xiaomi, OPPO, Vivo, Honor, and other common domestic Android environments. Relying only on a Google Play Services test path can leave campaign traffic with inconsistent routing.
Mini Programs create another routing layer
WeChat Mini Programs are not the same runtime as native iOS or Android apps. Routing from a Mini Program to a native app requires Mini Program-specific handling and platform permissions. A complete China-market setup should treat Mini Program to App as its own user journey, not as a side effect of standard Universal Links or Android App Links.
Core deep linking use cases
The best deep linking use cases are moments where the user already has intent. The link should keep that intent intact until the user reaches the right app screen.
Email, SMS, and push campaigns
A campaign message should open the exact offer, coupon, product, content page, or checkout step mentioned in the copy. Sending users to the home screen adds friction at the moment they are ready to act.
Paid advertising
Ads work better when the click destination matches the creative. If an ad promotes a specific product, the click should open that product detail page in the app. Deep links also help attribute installs and downstream actions to campaign parameters.
Social sharing
When users share a product, video, article, listing, or invite from your app, recipients should open the same content. If the app is not installed, deferred deep linking can restore that shared context after install.
Referral and invite programs
Referral links can carry inviter, campaign, and reward parameters. After installation, the SDK can pass that context into the app, so the new user does not need to manually enter a referral code.
QR code to app content
Offline touchpoints such as packaging, receipts, posters, retail displays, event booths, and restaurant menus can use QR codes that route users to specific in-app content. For O2O growth, this turns physical attention into measurable mobile sessions.
Re-engagement
Dormant users can be brought back to where they left off: an abandoned cart, last viewed product, paused lesson, unread message, booking flow, or game level. Deep linking makes re-engagement feel like continuation instead of interruption.
How to choose a deep linking SDK or platform
The right deep linking approach depends on your market, channels, engineering capacity, and attribution needs. Teams usually choose from three options: build in-house, use a global mobile attribution platform, or use a China-ready deep linking platform.
Build in-house gives your team maximum control over routing and domain setup. It can work if your needs are narrow and your mobile infrastructure team has enough capacity. The challenge is that deferred deep linking, analytics, WeChat H5, OEM Android testing, and ongoing maintenance can become expensive quickly.
Global platforms are mature and well documented, especially for international attribution use cases. They are often a good fit for apps focused mainly on global markets outside China. The watchout is that China-specific requirements such as WeChat open tags, Mini Program flows, and domestic Android store routing need careful validation.
China-ready platforms are designed for WeChat H5, App wake-up, deferred deep linking, Mini Program flows, and domestic Android behavior. They are a better fit when Chinese users, WeChat traffic, local Android devices, or China-market campaign attribution are central to the growth plan.
For teams evaluating a deep linking platform, ask these questions:
- Does it support URI schemes, Universal Links, Android App Links, and deferred deep links?
- Can marketers create campaign links without asking developers to release code?
- Can the platform restore the intended page after a first install?
- Does it support WeChat H5 App wake-up and Mini Program related journeys?
- Can it attribute clicks, installs, opens, and in-app events by channel and campaign?
- Does it provide SDKs and documentation for Android, iOS, Web, Mini Program, and REST API use cases?
JMLink empowers enterprises and developers worldwide to route users from external links to the right in-app moment, with capabilities for intelligent short links, deferred deep linking, App wake-up, visual reporting, SDK integration, and campaign-level link management.
Implementation checklist for iOS and Android
A production deep linking launch should be treated as a cross-functional release, not only an SDK task. Developers configure the app and domain files. Growth teams define link parameters and campaign naming. Product teams confirm fallback behavior. QA tests real devices and real channels.
iOS checklist
- Register a URI scheme if you still need legacy scheme support.
- Create and host the
apple-app-site-associationfile for each domain or subdomain that should support Universal Links. - Add Associated Domains in Xcode with the correct
applinksdomain entries. - Handle incoming Universal Links in the app and map URLs to app routes.
- Test fresh install, existing install, app background state, app killed state, and browser fallback.
Android checklist
- Add intent filters for the deep link hosts and paths you need to support.
- Use
android:autoVerify="true"where appropriate for Android App Links. - Host
assetlinks.jsonat https://yourdomain.com/.well-known/assetlinks.json. - Handle incoming intents in your launch Activity and route parameters safely.
- Test Google Android devices and China-market OEM devices separately.
Deferred deep linking checklist
- Define which parameters must survive install, such as product ID, campaign ID, inviter ID, coupon ID, or content ID.
- Confirm user consent, privacy policy coverage, SDK behavior, and data retention rules.
- Test first launch after install with clean device states.
- Confirm fallback behavior when matching fails or the target content no longer exists.
- Measure click, install, first open, App wake-up, and downstream conversion events.
JMLink provides Android, iOS, Web, Mini Program, and REST API resources in its official documentation. Before publishing implementation code in a public article, verify the current SDK version and exact API names against the latest official JMLink documentation.
Frequently asked questions
How is JMLink different from a standard deep linking solution?
A standard deep link usually focuses on opening an installed app. JMLink is built for real growth journeys across WeChat H5, SMS, ads, QR codes, and social shares. It supports App wake-up, deferred deep linking, scene restoration after install, and channel-level attribution, helping users land on the right in-app page while teams measure where each conversion comes from.
Do deep links work if the app is not installed?
Standard URI schemes do not handle the not-installed case well. Universal Links and Android App Links can fall back to the web, but they do not automatically restore the original in-app destination after install. Deferred deep linking is designed for this gap. It stores the click context before install and retrieves it on the app’s first launch.
What is deferred deep linking?
Deferred deep linking is a method for preserving user intent across app installation. If a user clicks a campaign or referral link before installing the app, the service stores the destination and campaign context. After installation and first open, the SDK retrieves that context and routes the user to the intended app screen instead of the home screen.
Why do deep links fail inside WeChat?
WeChat’s in-app browser is not the same as Safari or Chrome. Common URI scheme and web-to-app behaviors can be restricted. WeChat provides open tag mechanisms such as wx-open-launch-app for H5-to-app launch scenarios, but they require WeChat-specific setup, domain configuration, JS-SDK work, and real-device testing.
What is the difference between Universal Links and Android App Links?
Universal Links are Apple’s iOS mechanism for linking verified web domains to app content. Android App Links are Android’s equivalent for verified HTTPS links. Both require a trusted relationship between your website and app, but the configuration files and app-side setup differ. iOS uses an Apple App Site Association file and Associated Domains. Android uses intent filters and Digital Asset Links.
Is Firebase Dynamic Links still a good option in 2026?
No for new projects. Google’s Firebase documentation states that Firebase Dynamic Links was scheduled to shut down on August 25, 2025. Teams that previously depended on Firebase Dynamic Links should review their current links, fallback paths, and install-to-open flows, then migrate to platform-native links or a dedicated deep linking provider.
Key takeaways
- Deep linking routes users to specific in-app content, not just the app home screen.
- URI schemes are useful for legacy routing but weak for fallback and verification.
- Universal Links and Android App Links are the standard foundation for verified HTTPS app links.
- Deferred deep linking is required when users click first, install second, and still need to land on the original page.
- China-market deep linking needs extra attention to WeChat H5, Mini Programs, domestic Android OEM behavior, and App wake-up flows.
- A complete platform should combine routing, deferred context, link management, fallback logic, and attribution reporting.
If your app depends on WeChat traffic, campaign links, referral journeys, QR codes, or China-market app installs, deep linking should be part of your growth infrastructure. Explore JMLink to see how Aurora Mobile supports deep links, deferred deep links, App wake-up, and mobile attribution for enterprise app journeys.
Further reading and sources
- JMLink product page, Aurora Mobile: https://www.jiguang.cn/en/mlink
- JMLink SDK downloads and resources, Aurora Mobile documentation: https://docs.jiguang.cn/jmlink/resources
- JMLink Android SDK overview, Aurora Mobile documentation: https://docs.jiguang.cn/jmlink/client/Android/android_sdk
- Supporting associated domains, Apple Developer Documentation: https://developer.apple.com/documentation/xcode/supporting-associated-domains
- About deep links and Android App Links, Android Developers: https://developer.android.com/training/app-links
- Verify Android App Links, Android Developers: https://developer.android.com/training/app-links/verify-applinks
- WeChat open tags, WeChat official documentation: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html
- Tencent 2025 annual and fourth quarter results: https://static.www.tencent.com/uploads/2026/03/18/c5a080d9b669f63b4e55182acee96bc2.pdf
- Firebase Dynamic Links deprecation FAQ, Google Firebase: https://firebase.google.com/support/dynamic-links-faq
Previous article:
GPTBots与MCP:让 LLM 从“会回答”走向“能办事”






