Install Attribution
Understand match types, confidence scores, and privacy on iOS.
WarpLink uses two tiers of attribution matching to connect app installs to the links that drove them.
Match Cascade
When the app opens, the SDK collects device signals and sends them to the WarpLink API. The server compares them against stored click signals.
| Tier | Method | Signal | Confidence |
|---|---|---|---|
| 1 | Deterministic | IDFV | 1.0 |
| 2 | Probabilistic | Enriched fingerprint | 0.40–0.85 |
Deterministic Matching (IDFV)
Used for re-engagement — when the app was previously installed on the same device.
- Signal:
UIDevice.current.identifierForVendor(IDFV) - Match type:
.deterministic - Confidence: always 1.0
- Does not require ATT permission
IDFV is a UUID unique to the combination of your app and the device. It persists across reinstalls on the same device.
Probabilistic Matching (Enriched Fingerprint)
Used for first-install attribution — when the app was not previously installed.
- Signals: IP address + User-Agent + Accept-Language + screen size + timezone
- Match type:
.probabilistic - Confidence: varies by time window
| Time Since Click | Confidence |
|---|---|
| < 1 hour | 0.85 |
| < 24 hours | 0.65 |
| < 72 hours | 0.40 |
| Multiple candidates | -0.15 per extra |
Interpreting Results
The WarpLinkDeepLink includes matchType and matchConfidence:
WarpLink.checkDeferredDeepLink { result in
if case .success(let deepLink) = result, let deepLink = deepLink {
let confidence = deepLink.matchConfidence ?? 0
switch confidence {
case 0.5...:
navigateTo(deepLink.destination)
case 0.3..<0.5:
showSuggestion(deepLink.destination)
default:
showOnboarding()
}
}
}| Confidence | Recommended Action |
|---|---|
| 1.0 (deterministic) | Route directly to content |
| > 0.5 (probabilistic) | Route to content — high confidence |
| 0.3–0.5 | Show content with confirmation ("Were you looking for...?") |
| < 0.3 | Show generic onboarding |
App Tracking Transparency
The WarpLink SDK:
- Does not use IDFA (Advertising Identifier)
- Does not prompt for ATT permission
- Uses only IDFV, which is exempt from ATT
- Does not interfere with your app's own ATT strategy
Privacy
Signals Collected
| Signal | Purpose | Source |
|---|---|---|
| Screen resolution | Fingerprint component | UIScreen.main.bounds |
| Timezone offset | Fingerprint component | TimeZone.current.secondsFromGMT() |
| Preferred languages | Fingerprint component | Locale.preferredLanguages |
| IDFV | Deterministic matching | UIDevice.current.identifierForVendor |
Not Collected
- IDFA (Advertising Identifier)
- Location data
- Contacts or personal data
- App usage data
- Cross-app identifiers
All signals are sent over HTTPS and used solely for attribution matching. No cross-app tracking is performed.