Mastering iOS Universal Links and Android App Links

Mastering iOS Universal Links and Android App Links

Learn how iOS Universal Links & Android App Links connect web content to mobile apps. This guide covers deep linking implementation, pitfalls, best practices.
Luu Thi Van Kieu
Luu Thi Van Kieu
February 20, 2025
Product Mobile

Table of Contents

Imagine clicking a link in an email and landing directly on a product page in an app—or a website if the app isn’t installed. That’s the magic of iOS Universal Links and Android App Links. These tools connect web and mobile experiences seamlessly, driving engagement, improving user satisfaction, and increasing app installs.

This guide unpacks how they work, why they’re critical, and how to implement them effectively—whether you’re a Product Manager shaping strategy or a developer building the solution.

Deep Linking: The Foundation

Deep linking lets users jump straight to specific content or features in a mobile app, rather than just opening the home screen. It links web pages, emails, or other sources to in-app destinations, cutting out manual navigation and delivering a frictionless experience.

The implementation of deep linking varies based on platform and technology. Here are two common approaches:

  1. Custom URL Scheme: A widely used method for deep linking on both iOS and Android. Apps register unique schemes like myapp:// to trigger specific in-app actions. When a user clicks a link with this scheme, it launches the app and directs them to specific content.
Custom URL Scheme Flow
Custom URL Scheme Flow
  1. Universal Links (iOS) & App Links (Android): For a more seamless and secure deep linking experience, Apple introduced Universal Links for iOS, while Google developed App Links for Android. These methods use standard HTTPS URLs (e.g., https://myapp.com) tied to in-app content. If the app is installed, it opens to the linked content; if not, the web version loads instead.
Universal Links/Android App Links Flow
Universal Links/Android App Links Flow

Here’s how they stack up:

Feature Custom URL Scheme Universal Links/App Links
Link Format Use a custom URL scheme, e.g. myapp:// Use a standard HTTP/HTTPS hyperlink, e.g. https://myapp.com
Link Verification No built-in verification mechanism Links are verified with the app’s associated website
Security Limited security, no built-in features Strong verification, HTTPS requirement, and protection against malicious attacks
Setup Complexity Simple setup, registering a unique URL scheme in the app Additional configuration required, including hosting specific files
Backend Configuration Not required Required
Web Fallback No automatic fallback to the web Open the website if the app is not installed
App Store Fallback Feasibility No Yes, via separate server-side redirection
Hosting & Maintenance Can be self-hosted or hosted by the app developer Requires hosting of the associated website
App Store Review Compliance May have compliance issues due to URL usage Aligns with app store guidelines
SEO and Indexing Not SEO-friendly or easily indexable by search engines Supports indexing and search engine optimization
User Experience May cause an interruption when switching between apps Provides a seamless user experience

Why It Matters: Universal Links and App Links are the modern choice—secure, scalable, and user-centric. The extra setup pays off for long-term success.

Making these links work takes coordination between web and app teams. Here’s the rundown:

Requirements: Host an apple-app-site-association file at https://myapp.com/.well-known/ and configure the app.

Steps:

  1. Enable Associated Domains in Xcode.
  2. Upload the association file with valid HTTPS (no redirects).
  3. Handle incoming links in AppDelegate or SceneDelegate.
  4. Test on iOS 9+ devices.

Resources:: Apple Developer: Handling Universal Links

Requirements: Host an assetlinks.json file at https://myapp.com/.well-known/ and update the app.

Steps:

  1. Define the assetlinks.json file with app identifiers.
  2. Add intent filters to the app’s manifest.
  3. Code link handling in the app.
  4. Test on Android 6.0+ (API 23).

Resources: Android Developer: Handling App Links

⚠️ Universal Links are supported on iOS 9 and later, while Android App Links are available on Android 6.0 (API level 23) and above.

Best Practices

  1. Host Files Properly: Use /.well-known/ paths with HTTPS and no redirects.
  2. Define Precise Paths: Use specific patterns (e.g., /product/*) and avoid broad wildcards; use exclusions like "NOT <path>" (iOS) or specific pathPrefix (Android).
  3. Secure Handling: Implement strong validation and error handling to prevent security risks and unexpected behavior.
  4. Test Widely:: Check functionality across different devices, OS versions, and browsers to ensure a consistent experience.
  5. Design Fallbacks: Handle failed link openings with clear error messages and alternative navigation options.
  6. Track Effectiveness: Use attribution tracking to measure deep link performance and analyze user acquisition sources.

Takeaway: Start with a key use case (e.g., campaign links) and scale from there. It’s a team effort—web, app, and analytics all play a role.

Limitations and Issues: What Can Go Wrong

Even the best tools have quirks. Here’s what to watch for:

  • Social Media Challenges: Some social media apps modify or open links in internal browsers, disrupting Universal Link functionality.
  • Link Wrapping Issues: Redirecting links through services like URL shorteners can break the direct association Universal Links depend on.
  • Browser Address Bar Behavior: Universal Links activate when tapped within an app or website but won’t trigger when pasted directly into a browser’s address bar.
  • JavaScript Restrictions: Automatically redirecting users via JavaScript can bypass required user interaction, preventing Universal Links from working as intended.

The 404 Risk

When a user clicks a Universal Link or App Link without the app installed, they may land on a 404 error page—an instant conversion killer. This issue becomes even more critical if the link is received via SMS or, worse, clicked from an ad, leading to a frustrating dead end.

To prevent this, implement 301 redirect for all Universal Links that may not be handled on the web version. This ensures users are seamlessly guided to the appropriate web content instead of encountering an error page, preserving engagement and improving conversion rates.

Why It Matters: These hiccups can derail a smooth experience. Plan ahead to keep users on track.

Social Apps Restrictions: The Blocking Game

Social apps like Facebook (for posts, not ads), LINE, and others open links in their in-app browsers, including HTTP-based Universal Links and App Links. However, they block these links from opening the associated app, keeping users within their ecosystem—unless they’re paid to allow it (e.g., Facebook ads).

Facebook Workaround

No solution fully restores Universal Link and App Link behavior inside Facebook’s app, but here are two workarounds:

A workaround for Facebook is to implement Facebook App Links, which allow Universal Links and App Links to open the app instead of staying in Facebook’s in-app browser.

However, this approach breaks the attribution chain if the app isn’t installed. Instead of passing attribution data, the user is sent directly to the App Store. While Facebook offers an option to redirect users to a custom webpage first (for proper attribution), this feature has reportedly been broken in their SDK for years. For more details, see How to Deep Link Off of Facebook, particularly the section “What Broke in 2015 on Facebook?”

Landing Page

Facebook controls link behavior inside its app but not within its in-app browser, which is powered by the OS (e.g., Safari, Chrome).

By directing users to a landing page first, they can click the Universal Link or App Link again—this time within the in-app browser, allowing the OS to open the app as intended. This approach ensures proper deep linking while preserving attribution data.

Takeaway: Test these scenarios. Landing pages are a solid workaround for organic posts; ads can cut through the block.

Deferred Deep Linking: Bridging the Install Gap

Deferred deep linking allows users to land on a specific location within a mobile app even if the app isn’t installed when they click the deep link. It ensures a smooth transition from web or external sources to in-app content after installation.

Regular vs. Deferred Deep Linking

The key distinction between regular and deferred deep linking is how they handle app installation scenarios:

Regular Deep Linking Deferred Deep Linking
Requires the app to be installed before clicking the link. Works even if the app is not installed at the time of click.
Immediately opens a specific location within the app. Stores the deep link and applies it after installation.
Does not support new user installations. Guides new users to the intended destination post-install.
Deferred Deep Linking
Deferred Deep Linking

Deferred deep linking can be implemented through various approaches, including Smart App Banners and Smart Links.

Smart App Banners

Smart App Banners
Smart App Banners

Smart app banners are a secret weapon for shining a spotlight on a mobile app. When users land on your website from a mobile device, this clever banner slides in at the top—right in the browser—dangling a one-tap invite to download or open the app. It’s a slick way to snag users mid-browse and gently nudge them toward installation.

Quick Notes: These banners are an iOS specialty—Android doesn’t get the native treatment.

Apple’s Smart App Banner

Apple’s version brings some slick perks that third-party tools can’t quite mimic:

  • The “View” button flips to “Open” when the app’s installed—smart and intuitive.
  • A progress bar tracks the download, keeping users in the loop.

But it’s not all sunshine—here’s where it stumbles:

  • Safari-Only Club: Works exclusively in Safari on iOS—Chrome, Firefox, and other browsers are left out.
  • No Customization: Apple controls the design and placement, meaning no tweaks to colors, text, size, or style.
  • No Deep Linking: It directs users to the App Store or opens the app if installed, but doesn’t support deferred deep linking to specific in-app pages.
  • No Analytics: No built-in tracking—zero data on impressions, clicks, or conversions.
  • Native Apps Only: Supports iOS apps only—PWAs and web apps need a custom solution.

Learn more: Setting up iOS and Android Smart App Banners

Safari remembers when a user dismisses the banner and won’t show it again unless cookies are cleared.

Making Smart App Banners Work

For official Apple guidelines, check out: Promoting Apps with Smart App Banners

Since native banners are an iOS-only party, here’s how to go cross-platform:

  1. Custom Banners – Create platform-specific banners for iOS and Android, allowing full control over design and placement. Use device detection to display the right banner based on the user’s device.
  2. Third-Party Services – Tools like Branch, Adjust, and AppsFlyer provide cross-platform smart banners with built-in tracking, analytics, and deep linking, ensuring a seamless user experience.

Smart links are the savvy navigators of the mobile world, directing users based on their device and app status with pinpoint accuracy. They read the room in real time and adjust the path seamlessly. Here’s how they roll:

  • App Installed: Smart links whisk users straight to the in-app content via a slick deep link—no fuss, just a fast track to the good stuff.
  • App Not Installed: They nudge users to the App Store or Play Store for a quick install, then fire up the deep link after setup to drop them right where they need to be.

This clever routing is powered by deferred deep linking SDKs like Branch, Firebase Dynamic Links, and AppsFlyer OneLink, which come loaded with smart link smarts out of the gate.

Smart Links Flow Source: AppsFlyer

Universal Links and App Links are the MVPs of seamless deep linking, bridging the gap between web and mobile apps with finesse. But to truly ace the user experience—for both app veterans and newbies alike—Product Managers can level up with these two powerhouse strategies:

  • Universal Links/App Links + Smart Banners: For users with the app, deep links zip them straight to the action. For those without, smart banners pop up with a friendly nudge to install, turning browsers into adopters.

  • Smart Links: These brainy links do the thinking for you—spotting whether the app’s installed in a flash. They whisk existing users to in-app content and steer newbies to the App Store or Play Store, keeping the journey silky-smooth either way.

By blending Universal Links, Smart Banners, and Smart Links, you’re not just connecting dots—you’re crafting a user journey that’s seamless, adoption-friendly, and engagement-ready. It’s a winning playbook for any app aiming to shine.

References

If this is the kind of challenges you wanna tackle, Nimble is hiring awesome web and mobile developers to join our team in Bangkok, Thailand, Ho Chi Minh City, Vietnam, and Da Nang, Vietnam✌️

Join Us

Recommended Stories:

Accelerate your digital transformation.

Subscribe to our newsletter and get latest news and trends from Nimble