WarpLink
SDKsAndroid

Install Attribution

Understand Play Install Referrer, fingerprint matching, and privacy on Android.

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

Match Cascade

The SDK tries matching methods in order. The first successful match wins.

TierMethodSignalConfidence
1Play Install Referrerutm_source=warplink&utm_content={link_id}1.0
2Enriched fingerprintIP + UA + language + screen + timezone0.40–0.85

Deterministic Matching (Play Install Referrer)

Used for first-install attribution via the Google Play Store.

When a user clicks a WarpLink URL and is redirected to the Play Store, the referrer URL includes utm_source=warplink&utm_content={link_id}. After install, the SDK reads the referrer via InstallReferrerClient and extracts the link ID for a direct match.

  • Confidence: always 1.0
  • Requires Google Play Services
  • No user permission needed
  • 2-second timeout (falls back to fingerprint if exceeded)

Probabilistic Matching (Enriched Fingerprint)

Used when the Play Install Referrer is unavailable (sideloaded apps, non-Google-Play devices).

The SDK collects device signals and sends them to the attribution API. The server computes a fingerprint including the request's IP address and checks for a match.

Time Since ClickConfidence
< 1 hour0.85
< 24 hours0.65
< 72 hours0.40
Multiple candidates-0.15 per extra

Interpreting Results

WarpLink.checkDeferredDeepLink { result ->
    result.onSuccess { deepLink ->
        if (deepLink != null) {
            val confidence = deepLink.matchConfidence ?: 0.0

            when {
                confidence >= 0.5 -> navigateTo(deepLink.destination)
                confidence >= 0.3 -> showSuggestion(deepLink.destination)
                else -> showOnboarding()
            }
        }
    }
}
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

Privacy

Signals Collected

SignalPurposeSource
Accept-LanguageFingerprintDevice locale configuration
Screen dimensionsFingerprintWindowManager.defaultDisplay
Timezone offsetFingerprintTimeZone.getDefault().rawOffset
User-AgentFingerprintCustom WarpLink UA string
Play Install ReferrerDeterministic matchGoogle Play InstallReferrerClient

Not Collected

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

All signals are sent over HTTPS and used solely for attribution matching. Play Install Referrer data is read once at first launch and not stored beyond the attribution result.

On this page