How does Branch handle app deep linking?

How does Branch handle app deep linking?

Smartphone displaying a glowing map pin icon connected by a luminous thread to an app screen on a white desk beside a laptop.

Branch handles app deep linking by creating smart links that detect a user’s device, operating system, and context, then route them to the correct in-app destination automatically. When a user already has your app installed, Branch sends them directly to the relevant screen. When they don’t, Branch stores the destination and delivers it the moment the app opens after install. The sections below unpack each part of how that works, from link types and routing logic to iOS versus Android behavior and attribution.

What types of deep links does Branch support?

Branch supports three main types of deep links: standard deep links, deferred deep links, and contextual deep links. Standard deep links open a specific screen in an already-installed app. Deferred deep links do the same, but for users who don’t have the app yet. Contextual deep links carry additional data, such as a promo code or referral ID, that personalizes the in-app experience after the user arrives.

In practice, most Branch links combine all three capabilities. A single Branch link can route an existing user directly to a product page, guide a new user through install and then land them on that same product page, and pass along campaign data throughout the whole journey. This flexibility is what makes Branch useful for campaigns ranging from paid acquisition to referral programs and re-engagement flows.

How does Branch route users to the right in-app destination?

Branch routes users by reading the context of a link click, checking whether the app is installed, and then applying a set of routing rules to deliver the user to the correct destination. This happens within milliseconds. Branch inspects the device type, operating system version, and app installation status, then selects the most appropriate path from a hierarchy of routing options you configure in the Branch dashboard.

If the app is installed, Branch opens it directly and passes the destination parameters to the app, which handles the final navigation to the right screen. If the app is not installed, Branch redirects the user to the App Store or Google Play. Once the user installs and opens the app, Branch retrieves the stored destination data and completes the routing. You can also configure fallback URLs for cases where the app cannot be opened, such as sending users to a mobile web page instead.

What is deferred deep linking and how does Branch handle it?

Deferred deep linking is the ability to route a user to a specific in-app destination even when they don’t have the app installed at the time of the link click. Branch handles this by storing the intended destination when the link is clicked, tracking the user through the install process, and then retrieving that destination the first time the app opens. The user lands on the correct screen without any extra steps.

This matters enormously for paid acquisition and onboarding. When a user clicks an ad for a specific product or feature, gets sent to the App Store, installs the app, and then lands on the generic home screen, that friction causes drop-off. Deferred deep linking closes that gap. The user’s intent is preserved across the install, so the experience they expected is the experience they get. This directly reduces app onboarding drop-off and improves conversion rates for first-time users.

Branch achieves deferred deep linking through a combination of fingerprinting and, where available, more deterministic matching methods such as Google’s install referrer on Android or Apple’s StoreKit Ad Network signals on iOS. The matching logic is designed to be as accurate as possible within the privacy constraints of each platform.

How does Branch handle deep linking on iOS versus Android?

Branch uses different technical mechanisms on iOS and Android because each platform has its own standards for opening apps from links. On iOS, Branch uses Universal Links, which are standard HTTPS links associated with your app through an Apple-hosted entitlement file. On Android, Branch uses App Links, which work on a similar principle. Both allow the operating system to open the app directly without passing through a browser redirect, which improves reliability and speed.

iOS deep linking specifics

On iOS, Universal Links are the preferred method because they bypass the URI scheme approach, which requires the browser to attempt an app open and fall back to the App Store if it fails. Universal Links are more reliable, but they require correct configuration of the Associated Domains entitlement in your app and a valid apple-app-site-association file hosted on Branch’s domain. When this is set up correctly, tapping a Branch link on iOS opens the app immediately without any visible redirect.

Android deep linking specifics

On Android, Branch uses App Links for verified deep linking, which works similarly to Universal Links. Android also supports URI schemes as a fallback. One important difference is the Google Play Install Referrer API, which gives Branch a reliable way to pass campaign and destination data through the install process on Android. This makes deferred deep linking more deterministic on Android than on iOS, where privacy changes introduced in recent years have reduced the availability of device-level signals.

What happens when a Branch deep link is clicked on the web?

When a Branch deep link is clicked on the web, Branch’s servers receive the click, log it, and then evaluate the routing logic in real time. Within milliseconds, Branch determines whether to open the app directly, redirect to the App Store or Google Play, or send the user to a fallback web destination. The entire process is invisible to the user and happens before any page loads.

For users on desktop browsers where no app is available, Branch can redirect to a web URL you specify, such as a product page or a campaign landing page. For mobile users, Branch attempts to open the app using Universal Links or App Links first, then falls back to URI schemes if needed, and finally redirects to the store if the app is not installed. You configure these fallback rules in the Branch dashboard, giving you precise control over every scenario.

This routing logic is particularly relevant when users disappear after install or land on the wrong screen after clicking an ad. If the link is not configured correctly, or if the fallback rules send users to the home screen rather than the intended destination, the campaign loses the context it was designed to deliver.

How does Branch deep linking connect to attribution data?

Branch deep linking and attribution are built into the same link. Every Branch link carries parameters that identify the campaign, channel, ad set, and creative that generated the click. When a user clicks a Branch link, installs the app, and opens it, Branch matches the install back to the original click and records the full attribution path. This means your deep link destination and your attribution data come from the same source, keeping them in sync.

This connection solves a common problem in mobile marketing: retargeting ads that open the wrong page, or attribution data that doesn’t match the in-app behavior you’re measuring. When Branch routes a user to a specific screen, it also records which campaign drove that user there. You can then see not just which channel drove installs, but which channel drove users who completed meaningful in-app events, such as a purchase or a registration.

Branch integrates with major mobile measurement partners including Adjust and AppsFlyer, which means attribution data can flow into whichever measurement platform you use. The deep link parameters Branch passes are readable by these platforms, so campaign-level reporting stays consistent across your stack.

Getting this setup right from the start makes a significant difference to the quality of your attribution data and the effectiveness of your campaigns. If you want to make sure your Branch implementation is working correctly across iOS and Android, our app growth stack expertise covers the full technical and strategic picture. You can also speak with a specialist at Wuzzon to review your current setup and identify where users may be dropping off.

Frequently Asked Questions

How do I know if my Branch deep links are set up correctly before launching a campaign?

The most reliable way to verify your setup is to use Branch’s built-in link tester in the dashboard, which simulates click behavior across devices and surfaces routing misconfigurations before they affect real users. You should also manually test each link on both iOS and Android devices — one with the app installed and one without — to confirm that existing users land on the correct in-app screen and that new users are routed through install and still arrive at the intended destination. Pay particular attention to your fallback URL settings, as misconfigured fallbacks are one of the most common causes of users landing on a generic home screen instead of the expected content.

What are the most common mistakes that break deferred deep linking?

The most frequent issue is failing to initialize the Branch SDK correctly inside the app’s launch lifecycle, which means the app never retrieves the stored destination data after install. Another common mistake is not calling Branch’s session initialization method on every app open, not just the first one, which causes deferred data to be missed. On iOS specifically, not configuring the Associated Domains entitlement or hosting an invalid apple-app-site-association file will prevent Universal Links from working, silently falling back to less reliable URI scheme behavior.

Can Branch deep links work inside email campaigns and SMS messages?

Yes, Branch links can be embedded in email and SMS campaigns just like any other URL, and they will apply the same routing logic — opening the app for existing users, routing new users through install, and preserving destination context throughout. For email specifically, Branch offers a feature called Universal Email that integrates with major email service providers such as Salesforce Marketing Cloud, Braze, and Iterable, automatically converting links in your emails into Branch-powered deep links. This is particularly valuable for re-engagement campaigns where you want to bring lapsed users directly back to a specific product, offer, or piece of content.

How does Branch's matching accuracy hold up after Apple's iOS privacy changes?

Apple’s App Tracking Transparency framework and the deprecation of device-level identifiers have reduced the availability of deterministic signals on iOS, which means Branch relies more heavily on probabilistic fingerprinting for deferred deep link matching on that platform. Branch has adapted by incorporating SKAdNetwork signals and first-party data where available to improve match rates, but it is accurate to expect that iOS matching is less deterministic than Android, where the Google Play Install Referrer API still provides a reliable install-to-click connection. For campaigns where iOS attribution accuracy is critical, pairing Branch with a mobile measurement partner like Adjust or AppsFlyer can help triangulate data and improve reporting confidence.

What is the difference between a Branch link and a custom URI scheme, and why does it matter?

A custom URI scheme (such as myapp://product/123) is an app-defined protocol that browsers attempt to open directly, with no fallback intelligence built in — if the app isn’t installed, the user typically sees an error or nothing at all. A Branch link is a standard HTTPS URL that goes through Branch’s routing infrastructure, which checks app installation status, applies your configured fallback rules, handles store redirects, and preserves destination context across installs. In practical terms, URI schemes are fragile and invisible to attribution systems, while Branch links give you full routing control, deferred deep linking capability, and campaign data in a single URL.

Can I use Branch deep links for web-to-app flows on my mobile website?

Yes, and this is one of the highest-impact use cases for Branch. By adding Branch’s Web SDK to your mobile site and generating deep links dynamically based on the page a user is viewing, you can create smart banners or buttons that open the equivalent in-app screen for users who have the app installed, and route new users through install while preserving the context of the page they were on. This is especially effective for e-commerce and content apps where the in-app experience is significantly better than the mobile web experience, as it removes friction from the transition without losing the user’s intent.

How should I structure Branch link parameters to get the most useful attribution data?

At a minimum, every Branch link used in a campaign should include the channel, campaign, and feature parameters, which map to the traffic source, campaign name, and use case respectively — for example, channel: ‘instagram’, campaign: ‘summer_sale_2025’, feature: ‘paid_social’. Adding tags and custom data parameters lets you pass granular information like ad set IDs, creative variants, or promo codes that can be read both by Branch’s dashboard and by any integrated MMP. Consistent naming conventions across your team are critical here: inconsistent parameter values fragment your reporting and make it difficult to compare performance across campaigns or time periods.

Related Articles

Related articles

Welcome to the Team: Meet Elmamoune, Our New App Growth Consultant!

We're growing the team. Meet Christine, our new Sales and Marketing Specialist, bringing years of remote marketing systems experience to Wuzzon's client relationships.

Welcome to the Team: Meet Rahul, Our New Senior Designer!

At Wuzzon, great growth strategy only works when it’s brought to life visually, in a way that’s clear, compelling, and built to convert. That’s why

Welcome to the Team: Meet Christine, Our New Sales and Marketing Specialist!

We're growing the team. Meet Christine, our new Sales and Marketing Specialist, bringing years of remote marketing systems experience to Wuzzon's client relationships.

Get consult

Fill out the form and our employee will contact you.

"*" indicates required fields

This field is for validation purposes and should be left unchanged.
Full Name*
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
love

Sent!

We will get in touch with you as soon as possible. Together, we will discover the potential of your app growth.