Server-side tracking
The order reaches Meta
even when the pixel does not.
Every order and every qualified lead goes from our server to the ad platforms, with the identifiers they match on, once the order has settled. Your pixel’s copy and ours share one event id, so each sale is counted once.
30-day free trialNo card requiredSet up in minutes
Why does Ads Manager show fewer sales than my store?
Will server events double-count with my pixel?
Purchase · order #10482
₹2,340
event_id order.10482
Counted once: both copies share the event id
Purchase · order #10483
₹1,180
event_id order.10483
Counted: the server copy carried it
What exactly is sent to Meta about each order?
Can I check it before it goes live?
What it is worth
Sales the browser missed, counted where you buy ads
The sale still counts in Ads Manager
A blocked pixel, a closed tab, a checkout on another domain: the order still goes to Meta and Google from the server.
Each sale counted once
The browser copy and the server copy carry the same event id, so the platform keeps one.
The final order, not the first guess
We wait for the store’s own record, so the value, phone and payment method are complete when it leaves.
Settle, then send
One order, heard twice, sent once.
The browser reports an order at the thank-you page, often with no phone and no payment method. The store’s webhook arrives seconds later with the rest. Nothing is sent until the order settles: the store’s own record arrives, or the wait runs out. Then the Purchase leaves, complete.
- Purchases go to Meta, Google Ads and your server GTM container on their own
- TikTok, LinkedIn, Snapchat, Pinterest, Reddit and ChatGPT Ads from a workflow step
- Leads go on the stage you choose: qualified, converted, or any other
- A conversion already sent is refused as a duplicate, never sent twice
Value
not yet
not yet
Click id
not yet
Phone
not yet
Address
not yet
Payment
not yet
14:02:07 · thank-you page, the browser reports the order
14:02:25 · the store's webhook adds what the browser never had
In Meta, the same sale twice
Same event id: counted as one purchase
What travels with it
The identifiers each platform matches on, hashed before they leave.
Email, phone, name and address are SHA-256 hashed. The Meta browser and click cookies, the Google click id, the visitor’s IP and browser go beside them, with a stable external id per customer. A click id the browser lost is put back from the visitor’s record before the order is sent.
- em, ph, fn, ln, ct, st, zp, country and external_id
- fbp and fbc, gclid, and each other platform’s click id
- Client IP address and user agent, sent together
- Customer data from any earlier event is kept on the visitor and reused
What came in
the shopper typed it
phone
from checkout
address
city, zip, country
click id
captured on landing
What we sent
em
a1f4…9c02
ph
7be1…44d8
ct / zp / country
3d90…b7e1
fbc / gclid
passed through raw
external_id
stable per customer
Match quality
0/10
Checked before it goes
A match score on every event, with the missing piece named.
Each event is scored out of 10 from the keys it actually carries, before it leaves. The Activity log keeps every payload and the platform’s answer. Switch sending off and every event is still built, scored and logged as Held, so you can compare with your current setup before going live.
- Held events inside Meta’s 7-day window are sent for you when you switch on
- Trial names such as Purchase_cb sit beside your pixel without double-counting
- Recovered tab: orders no browser reported, and the click ids put back
- A test event code for Meta’s Test events tab, cleared before you go live
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.
Server-side tracking, on your own site.
Start a workspace and watch it work on your next order or lead, or let us walk you through it.
Switching it on
Live in one sitting
Install the Cookiebees tag first: it captures the cookies and click ids every send carries.
- 1
Connect your pixel
Integrations, Meta Conversions API, Connect with Facebook. The pixel id and token fill themselves in.
- 2
Choose what is sent
In the events matrix, switch on each event and check the name it goes out under.
- 3
Test it
Send a test with a test event code and watch it arrive in Events Manager. Then clear the code.
- 4
Switch sending on
Turn on Send to ad platforms. Held events from the last 7 days follow on their own.
Inside the module
What is inside
Every send can be opened and checked against what the platform says it received.
Event stream
The sending switches, delivery per destination, match quality and trends
Activity log
Every delivery with its payload: sent, failed, held, duplicate or not attempted
Recovered
Orders no browser reported, click ids restored and customer data added
Events matrix
Which event goes to which platform, under which name, in one grid
Meta, Google and server GTM
Purchases forwarded on their own, once the order settles
Six more ad platforms
TikTok, LinkedIn, Snapchat, Pinterest, Reddit and ChatGPT Ads, from workflows
Every send is in the Activity log with its payload and the platform's answer, so any order can be checked against Ads Manager.
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 your next order from the server
Every sale reported.Each one counted once.
Connect the store and your pixel. Leave sending off for a day, compare what would have gone, then switch it on.