Why CAPI Exists
Browser-based tracking is breaking. Not slowly. It's already broken for a significant percentage of your traffic.
Three forces killed the pixel-only approach:
iOS App Tracking Transparency. Apple's ATT framework, introduced in iOS 14.5, lets users opt out of cross-app tracking. Roughly 75-85% of iOS users opt out. When they do, the Meta Pixel loses the ability to attribute their conversions.
Third-party cookie deprecation. Safari and Firefox blocked third-party cookies years ago. Chrome is following. Without third-party cookies, pixels can't reliably connect a user's ad click to their later conversion.
Ad blockers. Browser extensions like uBlock Origin block tracking pixels before they fire. Depending on your audience, 15-40% of users may be running ad blockers. Those conversions simply vanish from your pixel data.
CAPI solves all three because it never touches the browser. Your server sends the data directly. No JavaScript to block, no cookies to expire, no user opt-out that prevents the server call.
How CAPI Works
The flow is straightforward:
A user clicks your ad and lands on your page. The ad platform passes a click identifier (Meta uses
fbclid, Google usesgclid, TikTok usesttclid).Your tracking system captures that click ID along with any user data you collect: email address, phone number, IP address, user agent, and potentially more.
When the user converts (purchases, signs up, submits a lead form), your server sends an API request directly to the ad platform's server. That request includes the conversion event type, the value, a timestamp, and as many identifying signals as possible.
The ad platform receives the server-side event, matches it against the original click using the signals you provided, and attributes the conversion to the correct campaign and ad set.
The key difference from a pixel: steps 3 and 4 happen server-to-server. The user's browser is not involved at all.
CAPI vs Pixel: Side by Side
| Browser Pixel | Conversion API (CAPI) | |
|---|---|---|
| How it fires | JavaScript on user's device | Server-to-server API call |
| Blocked by ad blockers? | Yes | No |
| Affected by iOS ATT? | Yes | No |
| Third-party cookie dependent? | Yes | No |
| Data richness | Limited to what the browser exposes | Can include any server-side data (hashed PII, order details) |
| Latency | Real-time (fires on page load) | Near-real-time (typically under 5 seconds) |
| Setup complexity | Copy-paste a snippet | Requires server integration or a tracker that handles it |
| Reliability | Degrades as privacy restrictions increase | Consistent regardless of browser environment |
Best practice: Meta, Google, and TikTok all recommend running CAPI alongside the pixel, not as a replacement. The pixel still captures real-time browser events (page views, add-to-cart), while CAPI ensures critical conversion events are never lost. When both fire for the same event, the platforms use a shared event ID to deduplicate them.
Signal Depth and Event Match Quality
Sending a conversion event is only half the equation. The ad platform also needs to match that event to a real user in its system. The more identifying signals you send, the higher the match rate.
Meta measures this with a metric called Event Match Quality (EMQ), scored from 1 to 10. A higher EMQ means Meta can attribute more of your conversions, which directly improves its optimization algorithm. Better optimization means lower cost per acquisition (CPA) and more efficient ad spend.
What signals can you send?
Meta's Conversions API accepts up to 15 distinct matching signals:
| Signal Type | Examples |
|---|---|
| Contact info | Email (hashed), phone (hashed), first name (hashed), last name (hashed) |
| Demographics | Date of birth (hashed), gender (hashed) |
| Geography | City, state/region, zip code, country |
| Browser identifiers | fbp cookie, fbc click ID, external ID |
| Technical | IP address, user agent |
Most tracking platforms send 3-5 of these signals: typically the email hash, click ID, IP address, user agent, and maybe a phone hash. That's enough to get a "Good" EMQ rating (around 6-7 out of 10).
Sending the full 15 pushes EMQ toward 9-10, which means Meta can match significantly more of your conversions to actual users. The practical impact: the algorithm has better data to work with, finds more people like your real buyers, and your campaigns exit the learning phase faster.
Deduplication: Why It Matters
If you run both the pixel AND CAPI (which the ad platforms recommend), the same conversion can fire twice: once from the browser pixel, once from the server. Without deduplication, your conversion counts are inflated and the algorithm optimizes on false data.
Deduplication works through a shared event ID. When your page fires the pixel, it generates a unique event ID. When your server sends the same event via CAPI, it includes that same event ID. The ad platform sees both events, recognizes the shared ID, and counts it once.
This sounds simple, but implementing it correctly requires coordination between your client-side and server-side code. Many marketers either skip deduplication entirely (leading to double-counted conversions) or disable the pixel to avoid the problem (losing real-time browser signals). Neither is ideal.
CAPI Across Ad Platforms
The concept is identical across platforms, but each has its own implementation:
| Platform | Their Name for CAPI | Key Identifier | Signal Capacity |
|---|---|---|---|
| Meta (Facebook/Instagram) | Conversions API | fbclid / fbp / fbc |
15 signals |
| Google Ads | Enhanced Conversions | gclid |
9 signals |
| TikTok | Events API | ttclid |
12 signals |
Google's Enhanced Conversions works slightly differently. Instead of sending events to a separate API endpoint, you send hashed first-party data alongside your existing conversion tags. Google matches the hashed data against signed-in Google user data to improve attribution accuracy.
TikTok's Events API is structurally closest to Meta's Conversions API: a server-side endpoint that accepts event data with user parameters for matching.
How ClickerVolt Handles CAPI
ClickerVolt acts as the server-side layer between your conversions and the ad platforms. When a conversion fires (from a ClickBank sale, a JVZoo commission, a Shopify webhook, or any supported source), ClickerVolt automatically sends that event to every connected ad platform via their respective APIs.
For Meta, ClickerVolt sends all 15 matching signals, not just the standard 3-5. It also handles automatic Pixel + CAPI deduplication by generating and coordinating event IDs between the browser and server. This is Meta's recommended setup, and it runs on every ClickerVolt plan, including the free tier.
For Google, it sends 9 Enhanced Conversion signals. For TikTok, 12 Events API signals.
I've worked with enough tracking setups to know that CAPI is the kind of feature most marketers set up once and then forget about. That's the wrong approach. The signal set you send at setup is the signal set your ad algorithm uses to find your next buyers. I've seen campaigns where the only difference between a $15 CPA and a $38 CPA was the number of matching signals being sent to Meta. Same creative, same budget, same offer. Different data quality.
The thing that gets me about most CAPI implementations is the deduplication step. Running both the pixel and CAPI simultaneously is Meta's explicit recommendation, but getting deduplication right requires coordinating event IDs between your browser and server. Most tracking tools leave this to you. ClickerVolt handles it automatically. It's a small thing in the setup checklist and a surprisingly large thing in practice.
→ See ClickerVolt's CAPI in action (free, no credit card)
Frequently Asked Questions
Is CAPI the same as server-side tracking?
CAPI is one form of server-side tracking. The term "server-side tracking" is broader and can include any tracking that happens on the server (including S2S postbacks for affiliate networks). CAPI refers specifically to the server-side APIs provided by ad platforms like Meta, Google, and TikTok for receiving conversion events.
Do I still need the Meta Pixel if I have CAPI?
Meta recommends running both. The pixel captures real-time browser events like page views, add-to-cart, and initiate-checkout that happen before the conversion. CAPI ensures the final conversion event is reliably delivered even when the pixel fails. Together with proper deduplication, they give the algorithm the most complete data set.
Does CAPI work with affiliate networks like ClickBank?
CAPI connects your conversions to ad platforms (Meta, Google, TikTok), not to affiliate networks. But the conversion data that triggers your CAPI events often originates from affiliate networks. For example, when ClickBank sends a sale notification to your tracker, a good tracker will forward that conversion to Meta via CAPI, to Google via Enhanced Conversions, and to TikTok via the Events API simultaneously.
What's the difference between CAPI and a postback URL?
A postback URL (also called server-to-server or S2S) is a callback from an affiliate network to your tracker when a conversion happens. CAPI is a call from your tracker to an ad platform. They're complementary: a postback tells your tracker about the conversion, and CAPI tells the ad platform about it. A tracker like ClickerVolt receives the postback and then fires the CAPI events automatically.
How many signals do I need for a good Event Match Quality score?
More is better. Sending just the click ID and IP address typically yields an EMQ of 3-5 out of 10. Adding email and phone hash gets you to 6-7. Including the full signal set (names, DOB, gender, geography, browser IDs) pushes EMQ to 8-10. The higher your EMQ, the more conversions Meta attributes correctly, and the better your campaigns perform.
