Ask most merchants about server side tracking vs pixel and you will get an answer shaped like a product comparison, as though one replaced the other the way a newer app replaces an older one.
That is not what happened. Nothing about pixels stopped working. The environment they run in changed underneath them, slowly enough that nobody had to make a decision about it, and server-side tracking is the industry's response rather than its successor.
Which matters, because if you think of it as a choice you will pick one. The stores that get this right run both, and spend their effort on the part that is actually failing for them.
What actually changed, and when?
No single event, which is why it crept up on people rather than arriving as a crisis.
- Browser tracking prevention tightened in stages. Safari began restricting cross-site tracking in 2017 and kept going. Firefox followed. What began as blocking third-party cookies expanded to capping how long anything a script writes survives at all.
- Ad blocking went mainstream and moved down the stack. It stopped being a browser extension used by developers and became a DNS setting, a VPN feature, a router option, and a default on some mobile networks.
- Apple's app tracking prompt arrived in 2021, and a large share of users said no, which cut the signal flowing back to Meta in particular.
- Consent enforcement became real, so a meaningful share of European visitors now legitimately generate no marketing events at all.
Any one of those is survivable. Together they moved pixel loss from a rounding error to a number that changes what you bid.
There is a second-order effect that gets less attention. As the signal thinned, the platforms leaned harder on modelling to fill the gaps, which means a growing share of the conversions in your reports were never observed at all. They were inferred. That is not dishonest and it is often reasonably accurate, but it does mean the number you are optimising against is partly a projection, and projections are only as good as the observed data underneath them. Improving what the platform can actually see improves the modelled part too, which is a benefit that never shows up as a line item.
The important thing about that list is that none of it was aimed at you. Your pixel was collateral in a fight about advertising surveillance, and the fixes available to you are workarounds rather than solutions.
Why is this framed as a versus at all?
Mostly because vendors sell one thing and comparison content follows the money.
A server-side product is easier to sell as a replacement than as a supplement. "Stop losing conversions" is a better headline than "add a second sender and reconcile them carefully". So the category is marketed as an upgrade path, and merchants arrive expecting to switch.
The platforms themselves do not describe it that way. Meta's own documentation is about deduplicating browser and server events, which only makes sense if you are running both. That is a strong signal about intended architecture, and it is worth more than any vendor's positioning.
Which one is actually failing for you?
This is the question that should decide where your effort goes, and it takes an afternoon to answer.
- Compare reported purchases against your Shopify order count, per platform, over a fortnight. A large shortfall everywhere points at delivery, which is the thing server-side fixes.
- Split that shortfall by browser. If Safari and Firefox visitors convert in Shopify but barely register in Meta, you are looking at storage expiry and blocking rather than a broken setup.
- Check your event match quality. A healthy event count with poor match quality is not a delivery problem. Your events are arriving, they just have nothing useful attached, and adding another sender will not help.
- Look at whether the gap is a step or a slope. A step change means something broke on a date, and the fix is to find that date. A slow widening is the environment tightening, and that is what server-side is for.
- Find out your consent decline rate. If a quarter of visitors decline, a quarter of your events are legitimately absent, and no tool should recover them.
Only the second and fourth of those are genuinely solved by adding server-side events. If the answer is the third, your money is better spent on the customer data you attach to the events you already send.
What does each side genuinely give you?
Not a feature table, because they are not competing on features. They contribute different things to the same record.
The browser is the only place that knows how the visit began. It holds the click identifiers the ad platform set when someone clicked the ad, along with the referrer, the landing page and the session. Your server has none of that unless the browser passed it over first and something stored it against the order.
The server is the only place that knows the order definitely happened. It has the row in the database. It can retry, it can send the hashed email and phone from the customer record, and nothing in between is trying to stop it.
Put crudely: the browser knows why the sale happened and sometimes fails to say so. The server knows the sale happened and often cannot say why. Neither is a complete account on its own, and this is the entire reason the recommended setup is both.
The practical consequence is that the value of a server event depends almost entirely on what you attach to it. A server event carrying a hashed email that the platform can match to a real account is worth a great deal. The same event with nothing but an order value is worth very little, and in some ways worse than nothing, because it inflates your event count while adding no matching power and makes the reporting look healthier than the underlying signal actually is.
What does running both actually cost you?
Worth being realistic, because the marketing implies it is free.
- Setup complexity. You now have two senders that must agree, and agreeing is not automatic.
- A real risk of double counting. Get the shared identifier wrong and your reported revenue inflates. Meta only collapses the two records when the pixel's
eventIDmatches the Conversions API'sevent_idand the event names match too. - Ongoing maintenance. A checkout change that stops passing the customer email degrades match quality silently, and nobody gets an alert.
- Consent plumbing. The consent state now has to reach a second system, and a server that ignores it is a worse problem than a pixel that ignores it, because it came from your infrastructure with your credentials attached.
None of that is a reason not to do it. It is a reason to do it deliberately rather than by installing something and assuming.
What should a pixel-only store do this week?
In this order, because the early steps are cheap and tell you whether the later ones are worth it.
- Write down your baseline. Reported conversions per platform against Shopify orders, for a full week. Without the before, you cannot demonstrate the after.
- Fix what the pixel already sends before adding a second sender. If the browser event is not carrying customer data, adding a server event that also carries none doubles your delivery and not your match quality.
- Decide the event ID now, before you install anything. It comes from the order, both senders use it, and it is not negotiable.
- Add one platform, not three. Meta first, because its diagnostics are the most legible and you will learn the shape of the problem there.
- Check within a day that reported purchases have not climbed above your Shopify order count.
- Then judge it on match quality, not on conversion count, after a full attribution window.
If your issue turns out to be GA4 specifically, that is a different animal. Most GA4 gaps are configuration rather than delivery, and the server-side tracking guide covers the client identifier problem that causes the majority of them.
Where does this leave the pixel?
Doing the job it was always good at, on a shrinking share of your traffic, and still worth keeping for every one of them.
It is also worth resisting the instinct to rip the pixel out once the server side is working, which is a surprisingly common instinct once someone has spent money on the new thing. The pixel costs you nothing to keep, it is the only source of the identifiers that make attribution possible, and removing it converts a complete record back into a partial one in the opposite direction from where you started.
The framing to carry away is that you are not choosing a winner. You are assembling one complete record of a sale out of two partial ones, and the interesting engineering is in how they agree rather than in which is better. Anyone selling you a replacement is describing a simpler world than the one your shoppers browse in.
Questions people ask next
Should I replace my pixel with server-side tracking?
No. The browser holds the click identifiers that connect a conversion to a specific ad, and your server only has them if the browser handed them over first. Removing the pixel removes the thing that makes the server event worth attributing. Every platform documents running both.
When did pixels stop being enough?
There is no single date, which is why it crept up on people. Safari's tracking prevention tightened in stages from 2017, Apple's app tracking prompt landed in 2021, and consent banners became genuinely enforced across Europe over the same period. Each was survivable alone. The compounding is what moved it from an annoyance to a measurable revenue problem.
Is a server-side setup worth it for a small store?
It depends on whether you buy ads. If you spend nothing on paid acquisition, the conversions you lose cost you reporting accuracy and nothing else. If you spend meaningfully, the algorithm is optimising against your incomplete data every day, and the cost of that compounds regardless of your size.
Does running both double my conversion numbers?
It will, unless both senders share one event ID for the same action. That is the single most consequential detail in the whole setup, and it is the thing most likely to be wrong in an implementation somebody rushed. Check reported purchases against your Shopify order count within a day of going live.
Anurag Chandra
Founder, Edgecoms
Anurag runs Edgecoms, a studio of Shopify apps. He spends most of his week inside merchant stores working out why a number is lower than it should be.
Connect on LinkedInRead this on your assistant
Opens with a summary request for this page already written.