Skip to content
All posts

4 min read

How deferred deep linking works, and why it got harder

Neither app store carries a tapped link through an install, and the fingerprint matching most services fall back on got less reliable in 2025.

Rewritten in October 2026. The version from February 2025 had prices and claims that are no longer accurate.

Neither app store carries your link through an install. Someone taps https://myapp.deeplinknow.com/events/42?invite=K7Q, installs from the App Store, opens the app, and the app has no idea what they tapped, and everything sold as deferred deep linking is some way of getting that URL across the gap.

On Android, Google Play's Install Referrer API lets you put a click ID in the referrer parameter of the Play Store URL, and after the install the app reads it back from Google Play and looks up exactly which click it was. It only covers installs that go through Google Play, though, so sideloads and the other Android stores get nothing from it. More on that in how the Play Install Referrer works.

iOS: the clipboard, or a scored guess

Apple has no equivalent, so on iOS you've got two options. The clipboard one: the web page copies the link before sending the user to the App Store, and the app reads it on first launch. When it works it's exact. Since iOS 16 reading it shows an "Allow Paste" prompt (I've written up what the prompt looks like and how to avoid showing it for nothing), and right after someone taps a button that says it copies the link that's reasonable enough, but some people still tap Don't Allow.

Fingerprint matching is the fallback. The link page records a few coarse facts about the click (IP address, OS and version, device class, screen size, language, time zone, time), the app sends the same facts on first launch, and a server compares them. Two flatmates on the same home Wi-Fi with the same iPhone look identical to it, which is why I don't think anyone should call a fingerprint match certain.

Two Apple changes made that guess worse, both for privacy reasons I can't really argue with. iCloud Private Relay sends Safari traffic through two relays, and the second one generates a temporary IP address, so the IP the link page saw and the IP the app turns up with can differ for the same person on the same phone. Carrier NAT and a hop from Wi-Fi to mobile data do the same thing without Apple's help, and a matcher that requires an IP match misses all of them.

Then iOS 26 shipped with the OS version frozen in Safari's user agent. An iOS 26 phone tells websites it's on iOS 18, and WebKit closed the bug report as won't-fix: "Our plan is to hold the OS release constant forever." A matcher comparing the web OS version with the app's sees a mismatch on every new phone, and Branch's deferred links were broken by it from 27 August to 22 September 2025 (GitHub issue #1521).

DeepLinkNow deals with both by scoring a match rather than passing or failing it. The score is a weighted sum out of 100: IP 40, device 30, time 20 (full marks for the first 5 minutes, falling to zero at 60) and locale 10. Missing values never count as a match, an IP match isn't required, and a web "iOS 18" counts as a match for an app on iOS 26 or later. Your app gets a confidenceScore and a matchQuality (HIGH from 75, MEDIUM from 50, LOW from 30), and you decide how much to trust it with minConfidence. Why the weights are what they are is in confidence scores instead of yes or no.

What the attribution platforms charge now

The 2025 table in the original post was wrong, so here it is again with figures I checked on 19 October 2026:

Monthly active usersBranchAppsFlyerAirbridgeDeepLinkNow
Free TierNone. 30-day trial with a card, then Intro at $39/moZero plan, with no deferred deep linkingNone. Core from $40/mo after a 30-day trialUp to 25k MAU
50,000 MAUAbout $15K to $35K a year for 50K to 150K MAU (Vendr)Custom price, sales callBilled by data points, not MAU$49/mo
100,000 MAUSame Vendr range as aboveCustom price, sales callBilled by data points, not MAU$49/mo
1,000,000+ MAUEssentials or Enterprise, by demoCustom price, sales callGrowth plan, custom, salesEnterprise, from $500/mo

Sources: Branch Intro plan, trial, pricing and Vendr; AppsFlyer deep linking pricing and Zero update; Airbridge pricing and Core. DeepLinkNow prices were updated in October 2026 and are on the pricing page. The longer version of the money side, with contract medians, is in what deep linking really costs.

AppsFlyer's legacy iOS deep linking guide says deferred deep linking through onConversionDataSuccess "may not work for iOS 14.5+, since it requires attribution data", so in that older integration, whether your app finds out which link was tapped depends on the attribution coming through.

Try DeepLinkNow on your app.

Deep links and deferred deep links for iOS, Android, React Native and Flutter. Free to start.