Cookiebees
1Capture: Every visit, on your own domain

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?

Meta · Purchase events receivedreceiving

Purchase · order #10482

₹2,340

event_id order.10482

Browseryour pixel
ServerCookiebees

Counted once: both copies share the event id

Purchase · order #10483

₹1,180

event_id order.10483

Browserblocked
ServerCookiebees

Counted: the server copy carried it

Same event id on both copies, so a sale seen twice counts once. A sale the browser never sent still counts.

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
Order #10482 · Purchasesettling

Value

not yet

Email

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

Your pixelbrowserevent_id order.10482
Cookiebeesserverevent_id order.10482

Same event id: counted as one purchase

Nothing leaves until the order settles: the store's own record arrives, or the wait runs out. Meta gets the final order, once.

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
Event stream · purchase payload

What came in

email

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

Nothing leaves as plain text. Every identifier is SHA-256 hashed first.

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
Match quality · before sendingPurchase · order.48213
9.5

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.

emEmail+3
phPhone+1.5
fbcClick ID+2
external_idStable ID+1.5
fbpBrowser ID+0.25
ip · uaIP + user agent+0.5
ct · zp · countryLocation+0.75
fn · lnFirst + last name: capture at checkout+0.5

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. 1

    Connect your pixel

    Integrations, Meta Conversions API, Connect with Facebook. The pixel id and token fill themselves in.

  2. 2

    Choose what is sent

    In the events matrix, switch on each event and check the name it goes out under.

  3. 3

    Test it

    Send a test with a test event code and watch it arrive in Events Manager. Then clear the code.

  4. 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.

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.