Customer storiesKestrel Fitness

Customer story · Health & Fitness · Consumer subscription

Kestrel uncovered 45% more attributed installs after the IDFA cliff.

Why Kestrel ripped out their MMP and replaced IP-only matching with Link Trail's multi-signal waterfall.

Lift in attributed installs
+45%
Avg. fingerprint confidence
0.92
Migration to production
<24h

The challenge

After ATT roll-out, less than a quarter of Kestrel's iOS users were sharing IDFA. Their previous vendor used a pure IP match and was throwing away anything ambiguous as organic — which meant millions in paid spend was looking unattributed in the dashboard.

The approach

01Drop-in iOS SDK

Kestrel swapped their existing SDK for Link Trail's Swift package in an afternoon, kept the same API key namespace, and shipped behind a feature flag for a week of side-by-side validation.

02Fingerprint scoring with a confidence floor

Link Trail's IP + UA + screen + timezone + locale fingerprint reattributed installs that had been silently dropped, with a 0.6 threshold so high-confidence matches were the only ones credited.

03SKAN postbacks in parallel

Conversion values mapped to onboarding and trial-start events, with postbacks landing in the same dashboard as deterministic matches — one ledger, one source of truth.

The results

Kestrel surfaced 45% more attributed installs without changing a single line of ad copy. Their performance team rebalanced spend across channels with the new data and lifted blended ROAS by 18% in the following quarter.

The honest version: we'd been flying blind on iOS for two years. Link Trail is the first thing that gave us back a real number to optimize against.
Marcus Lee · Head of Performance, Kestrel Fitness

Ready when you are

Ship the link your growth team has been asking for.

Connect your iOS and Android apps in an afternoon. See attributed installs flow into the dashboard the same day.

60-second integration

# 1. Add the SDK
pod 'LinkTrail', '~> 1.0'

# 2. Configure
OpenTrack.configure(apiKey: "lt_live_…")

# 3. Listen
OpenTrack.shared?.onDeferredDeepLink {
  router.navigate(to: $0.path)
}

Available for iOS, Android, React Native, and Flutter.