Skip to main content
Documentation
SDKsReact Native

React Native Install Attribution

How the WarpLink React Native SDK attributes installs across iOS and Android, with match types, confidence scores, and privacy controls.

WarpLink uses two tiers of attribution matching to connect app installs to the links that drove them.

Match Cascade

TierMethodiOSAndroid
1DeterministicNone: the App Store passes nothing through an installPlay Install Referrer
2ProbabilisticEnriched probabilistic matchEnriched probabilistic match

Deterministic Matching

iOS: The App Store passes nothing through an install, so a first install on iOS uses the scored match path and returns matchGuaranteed: false. The IDFV is used only when the same install asks again: it returns the install the device already has, with that install's own match type and confidence, so it never turns a probabilistic match into a guaranteed one. A reinstall is recorded as a new install. IDFV is exempt from App Tracking Transparency.

Android (Play Install Referrer): The Play Store passes the click referrer through the install process. Confidence: 1.0. Probabilistic matching covers installs that have no Play Install Referrer.

Probabilistic Matching

Used when deterministic signals are unavailable. The SDK collects the device's preferred language and timezone, and the server derives the request's IP address and computes the match key from all three.

Match Key Variants

VariantTimezone componentSent by
enriched_tzIANA zone name, for example America/TorontoSDKs that collect a zone name
enrichedMinute offsetOlder SDKs, and devices that cannot resolve a zone
basicNoneFallback when neither matches

The zone name carries far more entropy than the offset (roughly 340 zones against 38 offsets) and does not shift at a daylight-saving boundary. It therefore earns a higher confidence ceiling.

Confidence by Elapsed Time

Time Since Clickenriched_tzenrichedbasic
< 1 hour0.850.800.70
< 3 hours0.650.600.50
< 6 hours0.500.450.35
< 24 hours0.300.250.20

The 24 hour band applies to links whose match window is set past the 6 hour default.

Two further signals adjust the score:

  • Bucket ambiguity. More than one claimable click shared the match key: x0.6
  • IP sharing. Carrier-grade NAT or a private address: x0.6. A household IPv4 address: x0.9. IPv6: x1.0

Reinstalls

A reinstall counts as an install. If the user deletes and reinstalls your app, the native SDK runs attribution again on both platforms and the result lands in your install numbers like any other install.

The attribution request carries is_reinstall: true in that case. It comes from a device-level marker that outlives the uninstall: the Keychain on iOS, SharedPreferences on Android. The marker that stops a duplicate check inside one install is a separate, install-scoped one that no backup restores. The flag labels the install and never blocks the request. See App Reinstall.

Interpreting Results

matchGuaranteed is also present on WarpLinkDeepLink, so the same check works in an onLink callback.

ConfidenceRecommended Action
1.0 (deterministic)Route directly to content
> 0.5 (probabilistic)Route to content: high confidence
0.3–0.5Show content with confirmation
< 0.3Show generic onboarding

Using matchGuaranteed

matchGuaranteed is true for a deterministic match: a tapped link the SDK resolved directly, or a Play Install Referrer match on Android. Use it, like matchConfidence, to pick the destination the attribution result routes to. Use a probabilistic match to pick a destination with a safe fallback. Keep sign-in on your own authentication.

Privacy

Not Collected

  • IDFA (iOS Advertising Identifier)
  • GAID (Google Advertising ID)
  • Android ID
  • Location data
  • Contacts or personal data
  • Cross-app identifiers

Signals Collected

SignalPurposePlatform
Preferred languageMatch key (server normalizes to the primary subtag)Both
Timezone nameMatch key, sent as timezone by SDKs that collect a zone nameBoth
Timezone offsetMatch key, the fallback for older SDKsBoth
IDFVRecognizing the same install asking againiOS only
Play Install ReferrerDeterministic matchAndroid only

The IP address is the third match key component and is derived server-side. The SDK does not collect a User-Agent or screen dimensions.

App Tracking Transparency

  • 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.

The probabilistic match restores the link a user tapped on the first open after install, for your own app's deferred deep links and install attribution. It does not track users across other companies' apps or websites, and it uses no advertising ID. The server keys the pending deep link by a hashed match key (HMAC-SHA256 of the IP address, primary language, and time zone). Each tap can be matched only within the app's match window, and pending entries expire automatically. A matched install keeps the hashed key for your plan's data retention period. The raw IP address is not stored. The time zone is used by the enriched variant only; the basic variant uses the IP address and primary language.