okeep.analytics
See where customers disappear — including where your pixel is blind.
She clicks the ad on her phone at lunch. Her colleague sends the form that evening from his laptop. The deal closes in your CRM nine days later. To a pixel that is three unrelated strangers, and the ad that started it gets credit for none of them.
An example funnel and an example week of leads. The stages are your own events — okeep.analytics does not invent them — and no figure here is anyone's result.
Ads1,240
clicks you paid for
−27%lost
Visits903
people actually arrived
−94%lost
Forms57
left their details
−28%lost
Calls41
reached a person
−41%lost
Customers24
signed, and the ad that started them finally has a name
An example funnel: 1,240 ad clicks, 903 visits, 57 forms, 41 calls and 24 customers — so 27% are lost between the click and the visit, and 94% between the visit and the form. Below it, the same 57 leads grouped by where they came from: facebook ads brought 23 and converted 10, google ads 19 and converted 9, direct 9 and converted 4, and the referrer allegro.pl 6 and converted 1. The dashboard's own column names are in English because the product has no other language.
The click and the conversion are rarely the same device, and almost never the same session.
okeep keeps the thread between them. Two people who really are two people are never merged — that rule has a test of its own.
One lead, holding two identities: a phone number, an email, an anonymous browser id, the customer's own user id, and an ad click id. Under them, what the events themselves say — nine from a phone on iOS and Safari, four from a Windows desktop in Chrome, and all thirteen from Warsaw.
Plenty of the people you are paying to reach run a blocker that cuts the counting script by hostname.
So the counting does not depend on a script surviving: events are collected on your own domain. And the gap between the two is on a screen instead of being guessed at.
Coverage over thirty days: the server saw 12,480 page loads, the browser script saw 9,930, a tracking rate of 80%. Of the navigations that could be matched exactly, 9,930 were seen by both, 2,300 only by the server because browser tracking missed them, and 250 only by the browser. The screen notes that the two are observed independently, so the gap indicates coverage rather than an exact count of missing visits.
The bidding algorithm can only optimise for what you tell it happened.
You choose which of your own events count as Lead or Purchase. The conversion then goes to Meta and Google from our server, not from a tab that may already be closed.
A connected Meta account, and the map from the customer's own events to Meta's. Lead is fed by form_submitted, which produced 45 in the last thirty days, and by call_booked, which produced 16 — 61 together. Purchase is fed by order_paid, 24.
Every tool in this category calls its own number the accurate one. Why believe ours?
Don't. Every conversion says where it went, what came back, and why one was not sent at all. Your CRM stays the judge; we are the evidence.
Two conversions on one lead. order_paid is delivered: attributed to an ad click, sent to Meta and accepted, and skipped for Google Ads because consent for it was missing. form_submitted is ready but not yet sent, and the screen says plainly that no click was found, so it will go out unattributed.
Where this actually stands today.
Early access, and free while it is. It already runs on okeep.auto — our own ad budget, our own paying customers. Events are stored in the EU, and contact details are encrypted before they are written down.
Tell us the number you cannot get to
The question your marketing leaves unanswered every month — where the leads came from, what an ad returned, why a good week was good. We will tell you whether okeep.analytics answers it today or is still building towards it.