Attribution
Ferry connects an app open to the link that caused it, then carries that relationship into supported events.
Direct and deferred links
| Open | App state | SDK result |
|---|---|---|
| Direct | App is installed and the operating system opens it from a Ferry URL | isDeferred = false |
| Deferred | A Ferry link leads to installation and Ferry matches the first app open afterward | isDeferred = true |
Both arrive through the SDK’s unified link listener. Your routing logic can normally treat them the same way.
Use isDeferred only when the product experience should differ, such as showing first-install onboarding before opening the target screen.
Installation results
The installation listener reports every durable first-open result:
- Attributed: Ferry connected the installation to a link.
- Organic: Ferry found no originating link.
- Repeated: The same installation asked again and Ferry returned its original result with
isNewInstallation = false.
The original first-open attribution is immutable. A later link does not reassign the installation.
Matching methods
Ferry prefers deterministic signals before probabilistic ones.
| Method | Platform | Confidence |
|---|---|---|
| Play Install Referrer | Android | Deterministic |
| App Clip token | iOS | Deterministic |
| Pasteboard token | iOS | Deterministic |
| Code entry | iOS and Android | Deterministic |
| Fingerprint | iOS and Android | Probabilistic |
| Direct | Installed app open | Deterministic client-side delivery |
SDK method types are open-ended. Ferry can add a method without requiring your app to update first. Do not use the method field as a routing discriminator.
Confidence
A deterministic result has a score equivalent to 1.0. A probabilistic result includes a score from 0 through 1.
Ferry returns no match when candidates are too ambiguous. This is intentional: no attribution is safer than assigning a user to the wrong link.
Your navigation should generally deliver the payload regardless of the method. Use confidence for analytics, diagnostics, or a product decision that genuinely needs a higher threshold.
Matching window
Deferred matching uses recent link-open state. A user who installs after the configured match window may be organic even if they originally clicked a Ferry link.
Deterministic signals are more reliable than a fingerprint, but no platform handoff is guaranteed across every browser, privacy setting, and installation path.
Event attribution
After a link is attributed, each SDK automatically attaches its installation identity and the recent attributed click when it queues a supported event. Your app does not manage click IDs or match tokens.
Read track events to connect signups, purchases, and revenue to the originating link.