Platforms

Meta Conversions API and server-side tagging

The Meta Conversions API is a way to send conversion events to Meta from a server instead of from the visitor’s browser. It exists because the browser stopped being a reliable place to send them from — blockers stop requests, tracking prevention discards cookies, and people close the tab before the pixel fires. What you lose that way is invisible: the event does not arrive, and nothing tells you.

If you run ads on Meta and your reported conversions are lower than your actual orders, this is usually where the gap is.

What the Meta Conversions API actually does

The pixel runs in the browser and reports what it can see. The Conversions API takes the same events — a purchase, a lead, an add-to-cart — and sends them over HTTP from a server you control.

Meta expects both, not one or the other. Each event carries an event ID, and when the same purchase arrives twice, Meta deduplicates on that ID. Done properly you get one conversion counted once, reported by whichever of the two routes made it through.

That last part is the point. It is not that the server route is more accurate in principle. It is that it fails in different places than the browser route does, so together they lose less.

Why the pixel alone stopped being enough

Three things happened at once, and none of them are reversing.

Content blockers got good at recognising requests to known tracker domains. Safari’s tracking prevention started capping the lifetime of cookies set by scripts. And browsers generally became less willing to let a page do work on its way out, which is exactly when a purchase event wants to fire.

None of that stops a request that a server makes.

Where server-side tagging fits

You have two ways to send events to the Conversions API.

Write the integration yourself. Your backend builds the payload and posts it to Meta’s endpoint. Complete control, and now you own an integration that breaks when Meta changes the schema.

Run a server-side tag manager. A Google Tag Manager server container receives events from your site and forwards them to Meta as configuration rather than code. The same container can feed Google Ads, GA4, TikTok and LinkedIn from the same event, which is the part that usually decides it — nobody wants four separate integrations for one purchase.

That second option is what server-side tagging means in practice. What is server-side tracking covers the mechanism in full, and client-side vs server-side tracking is the shorter comparison.

What it does not fix

Consent still applies. A server-side setup makes it easier to pass a consent choice through correctly; it does not remove the need for one.

It does not improve data you never collected. If the browser did not send an email address or an order value, the server has nothing to enrich with.

And it does not fix a wrong measurement plan. If you are firing the purchase event on the wrong page, you will now fire it wrongly from a server as well, more reliably.

Getting there

You need a Meta dataset, a server-side Google Tag Manager container, and somewhere to run that container on your own subdomain. Getting started walks through the setup end to end.

If you are still choosing where to run it, server-side tracking tools compared covers the options. If your first question is about where the data sits, server-side tracking and the GDPR answers that one.

The rest of this corner

Meta is one platform among several, and the same server container feeds the others from the same event:

Questions people ask

Does the Meta Conversions API replace the pixel?
No. Meta expects both, and deduplicates them using a shared event ID. The pixel keeps reporting what the browser can report; the Conversions API reports the same events from a server, so the ones the browser loses still arrive. Sending only one of the two is the most common setup mistake.
Do I need server-side tagging to use the Conversions API?
No, but it is the shortest route. You can call the API directly from your own backend, which means writing and maintaining an integration. A server-side Google Tag Manager container gives you the same thing as configuration instead of code, and the same server can feed Google, TikTok and LinkedIn as well.
Does the Conversions API get around the cookie banner?
No. Consent still applies, and a server-side setup does not change that. It makes it easier to pass a consent choice on correctly, which is a different thing from not needing one. Anyone selling it as a way around consent is selling a problem.
What about event match quality?
Sending events from a server usually improves it, because the server can include parameters the browser drops and the request is not stopped by a blocker. It cannot invent data: if your site never collected an email address, the server does not have one either.