Docs · identity lifecycle

One ID, from first launch to revenue

The whole product rests on a single mechanism. Here it is, end to end — including the awkward parts.

Most analytics setups run two identity spaces: the analytics SDK mints one anonymous ID, RevenueCat mints another, and every revenue question becomes a mapping exercise. FolioKit never has two. The SDK generates the ID and hands the same value to RevenueCat — so behavior and money share one identity by construction, not by sync.

Fresh install, step by step

1 · First launch The SDK generates one random, anonymous ID — e.g. $RCAnonymousID:2f9c…e41a — and stores it in the app's local storage. It's deliberately in RevenueCat's own anonymous-ID format, and it identifies an install of this app only.
2 · The RevenueCat handshake The app configures RevenueCat with that same value as the app_user_id. From this moment, every trial, renewal, refund, and expiration RevenueCat ever reports carries FolioKit's ID.
3 · Events flow Screens, sessions, and your instrumented events upload under the ID. RevenueCat's webhook pushes purchase events under the same ID.
4 · One user record Behavior and money land on the same row — no join tables, no export scripts, no "roughly matches". Funnels run from first open to paid, and a daily reconciliation against RevenueCat's entitlements keeps the "currently paying" flag honest (expired subscribers are unflagged).

Existing apps with live subscribers

If your app already has RevenueCat users, rotating their IDs would be reckless — so FolioKit does the opposite. RevenueCat stays configured exactly as it is, and the SDK adopts RevenueCat's existing ID as its own on each device:

What happens on reinstall

The ID lives in the app's local storage, so deleting the app deletes the ID. On reinstall, honestly stated:

What this ID is not

The deeper background — why two identity spaces drift, why connectors can't fully repair them — is in Why your PostHog and RevenueCat numbers never match. And the full data policy is on the data & privacy page.

FolioKit is this mechanism, productized: one ID, one user record, behavior and money on the same row.

Get early access