WarpLink
Concepts

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.

PriorityMethodSignalConfidencePlatform
1ReferrerPlay Install Referrer1.0Android
2Device IDIDFV1.0iOS
3FingerprintIP + UA + language + screen + timezone0.40–0.85Both
4Raw signalsDevice signals without pre-computed hashvariesBoth

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

ScoreMatch TypeRecommended Action
1.0DeterministicRoute directly to content
0.85Probabilistic (< 1h)Route to content
0.65Probabilistic (< 24h)Route to content
0.40Probabilistic (< 72h)Show suggestion or confirmation
< 0.3UncertainShow 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 link
  • device_id — IDFV (iOS) for deterministic re-engagement matching
  • match_typereferrer, device_id, fingerprint, or raw_signals
  • match_confidence — 0.0 to 1.0
  • fingerprint — 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

On this page