Install Attribution
How WarpLink attributes app installs to the link clicks that drove them, using deterministic and probabilistic match strategies.
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
Deferred Deep Links
How deferred deep links preserve their destination and context through an app install, routing new users to the right place after first launch.
Social Previews
How WarpLink generates rich social previews with Open Graph and Twitter Card tags, so your links look right when shared on social media.