Client-side measurement keeps eroding. Tracking prevention, ad blockers, and platform restrictions all chip away at what a pixel can observe. Server-side conversion APIs, Meta's Conversions API (CAPI) and the TikTok Events API, send events directly from your backend, where the signal is far more durable. The catch is that doing it correctly is an engineering exercise, not a checkbox.
Why send events server-side at all
A server-side event originates from your infrastructure rather than the user's device, so it bypasses the browser and app-layer restrictions that drop client events. It also lets you attach trustworthy, deduplicated, server-validated data, such as a confirmed purchase value or a qualified-trial flag, that you would never want to compute or expose on the client.
Deduplication is not optional
If you run both the pixel and the server API, the same conversion can be reported twice. Every platform supports deduplication, and you must use it. Send a stable, shared event identifier from both the client and the server for the same conversion so the platform can collapse the duplicate. Skip this and your reported numbers inflate and your optimization degrades.
- Generate one stable event ID per conversion and send it from both sources
- Send the same event name and timestamp window from client and server
- Hash and normalize user-matching fields exactly to the platform's spec
- Include the click identifier (fbclid / ttclid) whenever you have it
Identity and event matching
Match quality determines how many of your server events the platform can actually attribute. Pass the strongest identifiers you are permitted to, click IDs first, then hashed and normalized contact fields, formatted exactly as the platform requires. A correctly formatted email hash and a captured click ID will dramatically out-match a payload that relies on IP and user agent alone.
A server-side event the platform cannot match is just expensive logging. Match quality is the whole game.
Reliability and observability
Server-side delivery makes you responsible for reliability that the pixel used to handle. Queue events, retry failed deliveries with backoff, and respect each platform's freshness window so late events still count. Monitor the match-rate and event-received metrics the platforms expose, and alert on drops, because a silent integration failure can run for days before it shows up in performance.
Let your attribution layer do the heavy lifting
Most of this, identity hashing, deduplication, click-ID propagation, retries, and per-platform formatting, is plumbing you should not rebuild for every destination. Routing conversions through MakeRVN means the device-level attribution and the server-side forwarding share one source of truth, so the value you send to Meta and TikTok matches the revenue you actually measured.
Server-side conversions are now table stakes for serious app marketers. Implement deduplication, maximize match quality, and instrument the pipeline, and you recover the signal the client layer keeps losing.