crxpay

Install tracking

Every install, counted. Every uninstall, caught.

Most SDKs only know about a user once they pay. crxpay writes a customer row the moment your extension boots — so you get install funnels, D1/D7/D30 retention, and a clean path from anonymous to identified to paying.

Setup
zero lines
Uninstall
captured
Retention
D1/D7/D30
crxpay · overview
Installs vs uninstalls
Last 30 days
InstallsUninstalls
D1
84%
D7
52%
D30
31%
Live preview · updates as installs come in

Install tracking

Analytics that works before anyone signs up.

Installs, uninstalls, active users, retention. The metrics every extension needs — without running your own backend.

1
install
installId · i_7f2a…
Anonymous
2
identify
email · ava@studio.co
Identified
3
checkout
Pro yearly · $96
Paying
same row · all history preserved
1

Every install is a customer row

The SDK writes a row on first boot — before email, before payment. When the user later signs in or pays, the same row gets patched. No duplicates, no orphans, no funnel blind spot.

Uninstalls show up automatically

Chrome opens your uninstall URL when the extension is removed. We catch the ping, set uninstalled_at, emit a webhook, and return a 1×1 gif so the tab closes clean.

2
// chrome calls this on uninstall
GET /v1/uninstall?k=…&i=…
200 OK · image/gif · 1×1
customer.uninstalled
webhook dispatched · 2s ago
Cohort
D1
D7
D30
Week 1
88%
54%
34%
Week 2
86%
58%
36%
Week 3
84%
52%
31%
Week 4
82%
55%
33%
3

Cohort retention out of the box

D1, D7, D30 — the share of installs still active after N days. No SQL, no dbt model, no BI tool. Load the overview page and read.

Works with your auth — any auth

Firebase, Supabase, Clerk, your own API. Call identify() with email and/or externalUserId after your own login. We alias the anon row — all history preserved.

4
Firebase
Supabase
Clerk
Your API
// after your own login succeeds
crxpay.identify({
  email: user.email,
  externalUserId: user.id,
});

Why this matters

Stop guessing who installed. Start measuring who stayed.

0
Lines of code
tracking is on the moment you configure the SDK
0%
Install coverage
every first boot writes a row — no exceptions
0
Retention windows
D1, D7, D30 — calculated, not estimated
0
Orphan rows
identify() aliases, it never creates duplicates

Ready to grow?

Our entire suite of features comes standard — and your first $2,500 in tracked revenue is free.