A trial is a conversion. A paid subscription is a conversion with a parent. A renewal is a conversion with a grandparent. Credit descends from the root, so month twelve still credits the ad that sold month one.
How it works
Trials happen; platforms see a form
The signup is in your app, the payment is in Stripe, and the click was three weeks ago. To the ad platform it is three unrelated events.
Open Attrib links all three
The tracker records the click, the signup arrives as a server-side conversion with the email, and the Stripe webhook records the payment against the same person.
Renewals credit the root
A rebill points at the purchase that started it. Attribution is measured from the root conversion, so the window never runs out on a loyal customer.
The platforms learn who pays
Confirmed payments — not signups — go back to Meta, Google and TikTok. Their optimisation targets people who convert to revenue.
Month twelve credits the ad that sold month one
because credit follows the chain, not the calendar.
Trials and signups
A signed POST to the conversions endpoint with an email records the signup and links it into the identity graph.
Subscriptions
The Stripe webhook records every invoice. A rebill carries a parent ID; credit is computed from the root purchase.
Send-back with a window
Meta rejects events older than seven days. Those are marked skipped, not failed, and never block the ledger.
Run it yourself, or let us host it.
One command install
Five lines, one of them a text editor. Postgres, migrations, API, worker and TLS come up together — and the install help is a call, not a document. Hosted skips this entirely: sign up and paste one line.
curl -o openattrib-src.tar.gz "https://app.2-25-162-33.nip.io/openattrib-src.tar.gz?key=YOUR-ACCESS-KEY"
mkdir openattrib && tar -xzf openattrib-src.tar.gz -C openattrib
cd openattrib
cp env.example .env && $EDITOR .env
docker compose up -dNothing to migrate
Keep the pixels you already run. Open Attrib's tracker sits beside them on your own subdomain and records what they miss; the ad platforms get their conversions back server-side.
Let's recap
- Tracker records the click on your site.
- Signup arrives server-side with the email that links it.
- Stripe webhooks chain rebills to the root purchase.
- Five models credit the touchpoints that led to the root.
- Payments, not signups, are sent back to the ad platforms.
See it on your own numbers.
A walkthrough on your accounts: the click, the sale, the five models and the send-back to Meta, Google and TikTok. No deck and no sales pitch — just the pipeline on your own data.