See every dollar's journey — from the ad click to the sale.
Your ad platform grades its own homework. Safari forgets your customer after seven days. GA4 models the rest. Flowsk stitches the anonymous click to the email to the purchase — first-party, server-side, and yours.
Not a model. A receipt for every conversion, event by event, that you can open and read.
-
Day 0 · 14:02 client $view
Anonymous click from an ad
utm_source=facebook · utm_campaign=spring-prospecting · fbclid=IwAR…
-
Day 0 · 14:05 client $view
Three pages, then leaves
/collections/new → /products/lamp → /products/lamp?variant=black
-
Day 4 · 09:31 server identify
Returns and gives an email
hello@example.com · via: newsletter_popup
-
Day 11 · 20:47 both purchase
Buys — counted once
order_10482 · $129.00 · confirmed by client + server
This is not a model. It is the receipt for one conversion — and you can pull it for any of them.
first touch: facebook / spring-prospectingYou are spending real money on numbers nobody can reconcile.
Four independent failures, each defensible on its own, that compound into a report you cannot act on.
Attribution you can actually inspect.
Every other tool hands you a percentage and asks you to trust it. Flowsk hands you the events. Search by cookie or by email and read the whole path — what brought them, what they did, when they became a person, what they paid.
-
Day 0 · 14:02 client $view
Anonymous click from an ad
utm_source=facebook · utm_campaign=spring-prospecting · fbclid=IwAR…
A durable first-party id is minted by your server — not by JavaScript, so Safari does not delete it in seven days. The campaign that paid for this click is written to the visitor as first touch.
-
Day 0 · 14:05 client $view
Three pages, then leaves
/collections/new → /products/lamp → /products/lamp?variant=black
Behavioural events, sent client-side. Cheap, fast, and expendable — if an ad blocker eats one, nothing important is lost.
-
Day 4 · 09:31 server identify
Returns and gives an email
hello@example.com · via: newsletter_popup
The anonymous-to-known bridge. Every session before this moment retroactively belongs to a known person, and the server records what caused the identification — not just that it happened.
-
Day 11 · 20:47 both purchase
Buys — counted once
order_10482 · $129.00 · confirmed by client + server
The browser reports the purchase and so does your backend. A shared dedup key collapses them into one conversion, marked confirmed by both sides, with the server's amount as the truth.
This is not a model. It is the receipt for one conversion — and you can pull it for any of them.
first touch: facebook / spring-prospectingThree decisions that make the data hold up.
Where Flowsk sits.
Too big for "GA4 and hope", too small to pay four figures a month for an attribution model you cannot audit. That gap is the entire product.
| Ad platforms | GA4 | Triple Whale / Northbeam | Flowsk | |
|---|---|---|---|---|
| Who owns the data | The platform | The vendor | You | |
| Survives Safari ITP | No | No | Partly | Yes (proxy) |
| Sees anonymous → email → sale | No | No | Partly | Yes |
| Can you audit a single conversion | No | No | No | Yes |
| Counts a sale exactly once | No | No | Modelled | Yes (dedup key) |
| Monthly price | Free (biased) | Free (sampled) | $300–$2,000+ | $29 |
Full breakdowns: vs GA4 · vs Triple Whale · vs Segment · all comparisons
We run our own acquisition through our own product.
flowsk.com runs the Flowsk snippet. Every visitor to this page is a journey in our own database, attributed by the product on this page — through the same public interface your own API calls would use. No internal shortcut exists, which is why breaking that interface breaks our funnel first.
We will publish that funnel once there is enough of it to be worth reading — and once it is up, it stays up, bad months included.
See what we'll publish →More free tools
Same deal — instant, no signup.
$29 a month. One plan.
Unlimited events, unlimited campaigns, the journey explorer, server-side conversions, CAC and ROAS by campaign. No seats, no usage tiers, no annual lock-in.
Frequently asked questions
What exactly does Flowsk Signals do?
It records every touch a visitor has with your site — the ad click, the pages, the email capture, the purchase — against one durable first-party identity, and shows you the whole journey for any conversion. Not a model of what probably happened: the actual sequence of events.
How is this different from GA4?
GA4 is session-based, sampled, and models conversions it cannot observe. Signals is person-based, complete, and shows you the events themselves. GA4 answers 'roughly how is traffic behaving'. Signals answers 'which campaign paid for this specific $129 order'.
Do I need to be technical to install it?
One snippet in your head tag gets you tracking in a few minutes. The durable-id proxy mode needs a developer for about an hour, and it is what makes the data survive Safari. Both are documented step by step.
Will this survive Safari's ITP?
In proxy mode, yes — your own server sets the visitor id in an HTTP response, which Safari does not cap at 7 days. In snippet-only mode you get the same 7-day limit every JavaScript tracker has, plus server-side conversion confirmation that recovers a good part of what would otherwise be lost.
Does it replace my ad pixels?
No. Keep them — they are what the ad platforms optimise on. Signals is the ledger you use to decide where the budget goes, and the one you show your board.
What does it cost?
$29/month, flat. No usage tiers, no seat pricing, no annual commitment, no sales call.
Stop guessing which ad made the sale.
One snippet, a durable first-party id, server-confirmed conversions and a journey you can read. $29/mo — less than one bad day of ad spend on a campaign you could not measure.