Meta Conversions API
Meta counts every sale once.
And knows who bought it.
Your pixel loses purchases to ad blockers, Safari and in-app browsers. We send each purchase and lead to Meta from our server too, under the same event id, so Meta keeps one and drops the copy. Each one leaves with every identifier the store holds, hashed, and the exact payload is there to read.
30-day free trialNo card requiredSet up in minutes
Is Meta counting my sales twice, or missing some?
What did Meta actually receive for this order?
The order arrived knowing
The Purchase left with
Event
Purchase
Value
₹2,499
Event id
7c1e…9a40
Why does Meta not recognise so many of my buyers?
Can Meta learn which leads became customers?
What it is worth
Fewer lost sales in Ads Manager. No double counting.
Sales the browser dropped, counted
A purchase the pixel never sent still reaches Meta from the server, so campaigns are judged on more of the sales they made.
Each sale counted once
The server event carries the event id your pixel used, so Meta keeps one Purchase, not two. Double counting would flatter your ROAS; this stops it.
Leads judged by what they became
A lead that qualifies or is won in your pipeline goes to Meta as its own event, with the deal value read when it is sent.
Who bought
Every identifier you hold, filled in one fixed order.
Meta can only credit a sale to an ad if it can tell who bought. Each event is filled from the event itself, then the stored order, the customer record, the visitor’s browser and their last page view. Each step fills only what is still empty, and the log keeps which step filled what. Email, phone, name and address are SHA-256 hashed before they leave.
- Email, phone, name, city, pin code and country, hashed
- A stable id per customer, the browser id and the click id
- IP address and browser taken from the order itself
- A click older than 7 days never claims a fresh sale
Counted once
Your pixel and our server send the same sale. Meta keeps one.
Meta deduplicates on the event id and event name within 48 hours. Our Purchase reuses the id your pixel created. It also waits a few minutes for the store’s webhook, so it is built once, from the order as it finally stands, with the phone and name the thank-you page never had.
- The event id your pixel used, kept from the first arrival
- Built once, from the settled order
- Never resent under a new id, which would count the sale twice
- Cash-on-delivery sales can wait for delivery, if you choose
Your Meta pixel
14:02:11
Purchase · event id 7c1e…9a40
from the thank-you page, email only
Store webhook
14:02:19
Order #10482 settles
phone, name and city merged into the order
Cookiebees server
14:07:11
Purchase · event id 7c1e…9a40
built once, from the order as it now stands
In Meta
two arrivals, one idMatch quality
Scored before it leaves, with the missing field named.
Each event is scored from the keys it actually carries, so you see match quality per event, not weeks later as an average. Where a field is missing, the score names it. The full parameter story is on the Signals page; this is the part that decides whether Meta can find the buyer at all.
- A score per event, from the keys attached
- The missing identifier named on the order
- Every payload readable in the Event stream
- What actually left, checked every morning against our own rules
Scored here, not in Events Manager
Meta tells you the number weeks later, in aggregate. We score each event from the keys we attach, and name what to add.
Leads and custom events
Not only purchases. The moments only your systems see.
A lead reaching a qualified or won stage goes to Meta as its own event. A won lead waits a few minutes, so the deal value a rep types is the value Meta gets. Custom events from workflows and audience events from your segments go through the same engine, with the same identity and the same log.
- QualifiedLead and ConvertedLead from your own pipeline stages
- Deal value read when the event is sent, not when the card moved
- Audience events only for segments you switch on
- Our attribution for Meta’s Custom attribution: a Meta beta, off until you choose a model and Meta enables it on your account
Lead marked Qualified
Moved by a rep, or by a scoring rule
Match keys attached
QualifiedLead posted to Meta and Google Ads, deduplicated on your own lead id.
Meta Conversions API, on your own site.
Start a workspace and watch it work on your next order or lead, or let us walk you through it.
Inside the module
Inside Meta Conversions API
Nothing goes to Meta until you switch it on, and every send is in the Event stream with its payload.
Purchase, server-side
Every order, deduplicated with your pixel on one event id
Lead stage events
Qualified and won, from your own pipeline
Identity waterfall
Five steps, each field traced to where it came from
Match quality
Per event, with the missing field named
When a sale counts
At placement, or cash-on-delivery sales once delivered
Custom attribution (Meta beta)
Our attribution per purchase, off until you opt in and Meta enables it on your account
Open any order and its What we sent card shows what the order arrived knowing, against what the Purchase carried when it left for Meta.
Where this sits
One of the four steps an order goes through.
Every feature reads the same identity. Open any of them; each has its own page.
1Capture
Every visit, on your own domain.
2Understand
First click to delivered order.
3Send back
Real revenue back to the ads.
4Act
Turn it into the next sale.
Send Meta the sales your pixel missed
Every sale counted once.Every payload open to read.
Connect Meta, switch on Purchase, and watch the first order leave with its identifiers and its event id in the Event stream.