Install Attribution
How WarpLink matches app installs to link clicks.
Install attribution connects an app install (or re-open) to the link that drove it. WarpLink uses a multi-tier match cascade to determine which link a user came from, with confidence scores that help you decide how to route the user.
Match Cascade
The server tries matching methods in order. The first successful match wins.
| Priority | Method | Signal | Confidence | Platform |
|---|---|---|---|---|
| 1 | Referrer | Play Install Referrer | 1.0 | Android |
| 2 | Device ID | IDFV | 1.0 | iOS |
| 3 | Fingerprint | IP + UA + language + screen + timezone | 0.40–0.85 | Both |
| 4 | Raw signals | Device signals without pre-computed hash | varies | Both |
The IP Gap Problem
The SDK cannot know its own public IP address, but the Worker includes the IP in fingerprint computation at click time. To solve this:
- The SDK sends raw device signals (not a pre-computed fingerprint) to the attribution endpoint
- The server computes the fingerprint hash using the request's IP address
- This ensures the SDK-originated fingerprint matches what the Worker stored at click time
Confidence Scores
| Score | Match Type | Recommended Action |
|---|---|---|
| 1.0 | Deterministic | Route directly to content |
| 0.85 | Probabilistic (< 1h) | Route to content |
| 0.65 | Probabilistic (< 24h) | Route to content |
| 0.40 | Probabilistic (< 72h) | Show suggestion or confirmation |
| < 0.3 | Uncertain | Show generic onboarding |
When multiple candidates match the same fingerprint, each additional match reduces confidence by 0.15 (e.g., two matches at < 1h = 0.70 instead of 0.85).
Click Deduplication
Click uniqueness is computed entirely in Postgres via a CTE during the batch INSERT from the Queue consumer. This guarantees perfect accuracy — KV's eventual consistency is never trusted for deduplication.
A click is considered unique per combination of: link_id + ip_hash + 24-hour window.
Attribution in the Database
The app_installs table stores attribution results:
link_id— The matched linkdevice_id— IDFV (iOS) for deterministic re-engagement matchingmatch_type—referrer,device_id,fingerprint, orraw_signalsmatch_confidence— 0.0 to 1.0fingerprint— The computed fingerprint hash
The device_id column enables deterministic IDFV-based matching for iOS re-engagement — if a user who previously installed the app clicks a link, the IDFV provides an exact match.
Privacy
WarpLink's attribution is designed to be privacy-preserving:
- No IDFA (iOS) or GAID (Android) — no advertising identifiers
- No cross-app tracking — IDFV is scoped to your vendor
- No ATT prompt — IDFV is exempt from App Tracking Transparency
- Ephemeral fingerprints — Only used for attribution matching, not stored long-term
- HTTPS only — All signal transmission is encrypted