Install Attribution
Platform-specific attribution matching, confidence scores, and privacy.
WarpLink uses two tiers of attribution matching to connect app installs to the links that drove them.
Match Cascade
| Tier | Method | iOS | Android |
|---|---|---|---|
| 1 | Deterministic | IDFV (re-engagement) | Play Install Referrer |
| 2 | Probabilistic | Enriched fingerprint | Enriched fingerprint |
Deterministic Matching
iOS — IDFV: Used for re-engagement when the app was previously installed. IDFV is exempt from App Tracking Transparency. Confidence: 1.0.
Android — Play Install Referrer: The Play Store passes the click referrer through the install process. Confidence: 1.0. Falls back to fingerprint if unavailable (sideloaded apps, no Play Services).
Probabilistic Matching
Used when deterministic signals are unavailable. The SDK collects device signals (screen size, timezone, language) and the server computes a fingerprint including the request's IP address.
| Time Since Click | Confidence |
|---|---|
| < 1 hour | 0.85 |
| < 24 hours | 0.65 |
| < 72 hours | 0.40 |
| Multiple candidates | -0.15 per extra |
Using Attribution Data
import { WarpLink, type AttributionResult } from '@warplink/react-native';
const attribution = await WarpLink.getAttributionResult();
if (attribution) {
console.log('Link ID:', attribution.linkId);
console.log('Match type:', attribution.matchType);
console.log('Confidence:', attribution.matchConfidence);
console.log('Is deferred:', attribution.isDeferred);
console.log('Install ID:', attribution.installId);
}Recommended Thresholds
const attribution = await WarpLink.getAttributionResult();
if (!attribution) {
showOnboarding(); // Organic install
return;
}
if (attribution.matchConfidence >= 0.5) {
navigateToLink(attribution.linkId);
} else if (attribution.matchConfidence >= 0.3) {
showSuggestion(attribution.linkId);
} else {
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 |
| < 0.3 | Show generic onboarding |
Privacy
Not Collected
- IDFA (iOS Advertising Identifier)
- GAID (Google Advertising ID)
- Android ID
- Location data
- Contacts or personal data
- Cross-app identifiers
Collected
| Signal | Purpose | Platform |
|---|---|---|
| Screen resolution | Fingerprint | Both |
| Timezone offset | Fingerprint | Both |
| Preferred languages | Fingerprint | Both |
| IDFV | Deterministic match | iOS only |
| Play Install Referrer | Deterministic match | Android only |
ATT Compliance (iOS)
- No IDFA access — no ATT prompt needed
- IDFV is exempt from ATT
- Does not interfere with your app's ATT strategy
All signals are sent over HTTPS and used solely for attribution matching. GDPR compliant — only ephemeral device signals collected.