Meta Conversions API setup guide

Meta Conversions API Setup: The Complete Guide for 2026

Meta Conversions API Setup: The Complete Guide for 2026

The Meta Pixel alone no longer captures the full picture. Between iOS restrictions, ad blockers, and browser cookie limits, agencies and vendors typically report that browser-only tracking misses 20–30% of conversions (Meta has never published an official loss rate) — treat this as an estimate, not a Meta stat — and Meta’s algorithm optimizes on whatever incomplete data it gets.

The Meta Conversions API (CAPI) fixes this by sending events from your server directly to Meta. Here’s how to set it up properly.

What the Conversions API Is (and Isn’t)

CAPI is a server-to-server connection between your infrastructure and Meta. When someone purchases on your site, your server tells Meta directly — no browser involved.

It is not a replacement for the Pixel. Meta’s official recommendation, and ours, is to run both:

  • The Pixel captures browser-side context and works instantly.
  • CAPI captures what the browser misses (ad blockers, iOS restrictions, script failures).

Meta deduplicates the two streams so you don’t double-count — but only if you set it up correctly (more on that below).

Why CAPI Matters More Every Year

  • iOS 14.5+: opted-out users generate limited browser data; CAPI recovers server-observed events.
  • Ad blockers: the Pixel never fires for these users; your server still sees the purchase.
  • Event Match Quality: Meta scores how well your events match to user profiles. Higher scores = better attribution = better optimization. CAPI with good customer data dramatically lifts this score.
  • iOS measurement: with iOS traffic, browser data is limited — CAPI helps you make each event count. (Note: Meta’s Aggregated Event Measurement now processes eligible web events automatically — no manual configuration needed.)

What You Need Before You Start

  1. A Meta Pixel installed and firing (CAPI builds on it, doesn’t replace it).
  2. A verified domain in Business Settings (no longer required for event configuration — Meta removed the AEM event-configuration requirement — but still recommended for link ownership, brand-safety controls, and other features).
  3. Access to your server or a server-side tagging setup (GTM server container, or a partner integration).
  4. Customer data you can legally share — email, phone, name, address, all hashed with SHA-256 before sending. Never send plain-text PII.

Setup Method 1: Partner Integration (Easiest)

If you run Shopify, WooCommerce, or similar, Meta offers native integrations:

  • Shopify: Facebook & Instagram app → Settings → Data sharing settings → enable Conversions API (choose “Maximum” data sharing).
  • WooCommerce: install the Meta for WooCommerce plugin and connect it to Meta via the onboarding flow — Conversions API is enabled automatically on connection (no separate toggle), and deduplication is handled via a unique event ID.

This takes minutes and handles deduplication automatically. The trade-off: less control over exactly which events and parameters get sent.

Setup Method 2: GTM Server-Side (Most Control)

For custom sites or agencies managing multiple clients, a GTM server container is the professional route:

  1. Provision a server container and connect a first-party subdomain (see our server-side tracking guide).
  2. Add the Meta Conversions API tag (use the official Meta tag template from the community gallery).
  3. Configure it with your Pixel ID and access token (generate the token in Events Manager → Settings).
  4. Map your data layer events (PageView, ViewContent, AddToCart, InitiateCheckout, Purchase) to CAPI events.
  5. Include user data parameters: email, phone, first/last name, city, country, zip — hashed automatically by the tag template.
  6. Set the same event_id in both your web Pixel events and server CAPI events. This is the deduplication key — skip it and you’ll double-count everything.

Setup Method 3: Direct API Integration

For engineering teams: POST events directly to graph.facebook.com/v<version>/<pixel_id>/events with your access token. Full control, but you’re responsible for hashing, deduplication, error handling, and keeping up with API version changes. Most businesses don’t need this.

Deduplication: The Critical Detail

When the same Purchase arrives via Pixel and CAPI, Meta needs to recognize it as one event. The mechanism:

  • Send an identical event_id (a unique string per event occurrence, e.g. the order ID + event name) in both the browser and server payloads.
  • Send the same event_name in both.

Meta deduplicates when the same event_id + event_name pair is received within 48 hours of the first event with that event_id — so it’s not just minor timing differences; CAPI events arriving hours later still dedupe. Verify in Events Manager: if your Purchase count roughly doubles after enabling CAPI, deduplication is broken.

Testing Your Implementation

  1. Meta Test Events tool (Events Manager → Test Events): trigger events on your site and watch them arrive — it shows whether each came from browser, server, or both, and flags missing parameters.
  2. GTM server preview mode: inspect exactly what your server container sends before it reaches Meta.
  3. Event Match Quality score: found in Events Manager per event. Meta publishes no official target, but our benchmark is 7+/10 on Purchase. It improves as you send more (and better) customer data parameters.
  4. Compare counts: server + browser deduplicated Purchase count should roughly match your backend order count.

Troubleshooting Common CAPI Problems

  • Event Match Quality stuck low: you’re not sending enough customer data. Add phone numbers, names, and addresses — not just email.
  • Double-counted conversions: event_id mismatch between Pixel and CAPI. Audit both payloads.
  • Events not arriving: expired access token (they don’t last forever — regenerate and update), wrong Pixel ID, or server container errors.
  • “No recent activity” in Events Manager: check that your server container is actually receiving web events first — the problem is usually upstream of Meta.
  • iOS purchases still underreported: verify your domain and make sure Pixel + CAPI send a clean, deduped event set. (Meta removed the old 8-event Aggregated Events ranking in 2025 — AEM now runs automatically.) CAPI helps but doesn’t override Apple’s limits.

FAQ

Is the Conversions API free?

Yes — Meta doesn’t charge for CAPI itself. Your costs are hosting (for server-side setups) and implementation time.

Do I still need the Meta Pixel if I use CAPI?

Yes. Run both. The Pixel provides browser context and redundancy; CAPI provides reliability. Meta designed them to work together.

What is a good Event Match Quality score?

Meta scores events out of 10 but publishes no official target. Our benchmark: aim for 7+ on your key events (especially Purchase); below 5 usually means you’re sending too little customer data.

How long do CAPI access tokens last?

They don’t expire on a fixed schedule, but they can be invalidated. If events suddenly stop, regenerating the token is a standard first troubleshooting step.

Can CAPI track iOS 14.5+ users who opted out?

It recovers server-observed events for opted-out users within Apple’s limits, but attribution is still constrained (limited windows). It’s a major improvement, not a full restoration.


Setting up CAPI correctly — deduplication, match quality, testing — is exactly what we do. Israr Ads implements Meta Conversions API and full server-side tracking for brands that need their data to be right. right.

Server-side tracking setup guide

Server-Side Tracking Setup Guide: Fix Your Ad Attribution in 2026

Server-Side Tracking Setup Guide: Fix Your Ad Attribution in 2026

If your ad platforms report fewer conversions than your backend, your tracking is leaking — and it’s costing you money. Every missed conversion trains Google’s and Meta’s algorithms on incomplete data, which means worse targeting, higher CPAs, and ROAS numbers you can’t trust.

Server-side tracking is the fix. This guide explains what it is, why browser tracking is failing, and exactly how to set it up.

Why Browser Tracking Is Broken

For years, the Meta Pixel, Google tag, and GA4 all ran in the visitor’s browser. That model is collapsing:

  • iOS 14.5+ App Tracking Transparency: Users opt out, and Safari/Facebook in-app browsers restrict third-party data.
  • Intelligent Tracking Prevention (ITP): Safari and Firefox expire or block third-party cookies, shrinking attribution windows.
  • Ad blockers: roughly 3 in 10 internet users run ad blockers (GWI/DataReportal, 2025) — blocking tracking scripts outright.
  • Chrome’s cancelled cookie phase-out: Google abandoned the third-party cookie phase-out in April 2025 and retired the Privacy Sandbox ad APIs in October 2025. Third-party cookies remain on by default in Chrome — but Safari and Firefox already block them, and ad blockers + consent denial keep eating signal.
  • Consent banners: GDPR-style consent modes mean a share of users never load your tags at all.

The result: agency audits commonly find 20–40% of conversions missing from platform reporting. Your “2.1x ROAS” might actually be 3x — and the algorithm is optimizing against the wrong number.

What Server-Side Tracking Actually Does

Instead of the browser sending conversion data directly to Meta, Google, and analytics tools, the data flows like this:

  1. The visitor’s browser sends events to your own server (a first-party subdomain like metrics.yourdomain.com).
  2. Your server validates, enriches, and forwards those events to Meta (Conversions API), Google Ads (Enhanced Conversions / GA4 Measurement Protocol), TikTok Events API, and others.

Because the connection is server-to-server using first-party data, it bypasses ad blockers, survives ITP, and isn’t affected by browser cookie restrictions. You control exactly what gets sent.

What it is not: a way to track people who didn’t consent, or a magic trick that invents data. It recovers events that genuinely happened but were lost in transit.

What You Need to Set It Up

1. A server container (Google Tag Manager Server-Side)

The standard approach is a GTM server container hosted on a cloud platform:

  • Google Cloud App Engine (the default, auto-scaling option)
  • Stape or similar managed hosting (simpler, flat pricing — popular with agencies)

This gives you a tagging server endpoint that receives events from your site.

2. A first-party subdomain

Point a subdomain like metrics.yourdomain.com (or ss.yourdomain.com) to your tagging server. This is critical: because the subdomain belongs to your domain, cookies it sets are first-party and survive ITP. Never run server-side tracking off a vendor’s shared domain.

3. The web container changes

Your existing GTM web container gets a GA4-style client setup that forwards events to the server container instead of (or in addition to) sending them directly to vendors.

4. Vendor API destinations

From the server container, configure one destination per platform:

  • Meta Conversions API — server events for PageView, ViewContent, AddToCart, InitiateCheckout, Purchase
  • Google Ads Enhanced Conversions — hashed first-party data (email/phone) with conversion events
  • GA4 via Measurement Protocol — server-side GA4 events
  • TikTok Events API / Snapchat CAPI — if you run those channels

Event Deduplication: The Step Everyone Skips

When you run browser + server events in parallel (which you should, for redundancy), each platform needs to know they’re the same event — otherwise you’ll double-count.

  • Meta: send the same event_id in both the Pixel and CAPI events. Meta deduplicates automatically.
  • Google Ads / GA4: use consistent transaction_id values and matching event names.
  • TikTok: same approach with event_id.

Test with a real purchase before you trust the numbers. Meta’s Test Events tool and GTM’s server preview mode are your best friends here.

The Setup Sequence We Use for Clients

  1. Audit first. Map every conversion event, where it fires, and what the current loss rate is (compare platform-reported vs. backend/CRM numbers).
  2. Provision the server container and connect the first-party subdomain. Verify SSL.
  3. Migrate GA4 to server-side first — it’s the lowest-risk move and gives you a clean data baseline.
  4. Add Meta CAPI with event_id deduplication. Watch your Event Match Quality score — Meta’s 0–10 scale for how well events match to Meta accounts (no official pass mark; most practitioners aim for 7+/10 on Purchase). The score updates as events flow in.
  5. Add Google Ads Enhanced Conversions with hashed customer data.
  6. Run parallel for 2–4 weeks, comparing browser vs. server event counts — then keep both running permanently (Meta recommends a redundant setup; the browser pixel captures client-side context CAPI can’t).
  7. Document everything. Future-you (and your media buyer) will thank you.

In our experience, typical timeline: 1–2 weeks for a standard e-commerce or lead-gen site. Complex multi-domain setups take longer.

How to Measure Whether It Worked

  • Event Match Quality (Meta): Meta scores EMQ 0–10 for how well your events match to Meta accounts — no official pass mark, but most practitioners aim for 7+/10 on Purchase events.
  • Conversions uplift: compare platform-reported conversions before/after, against a stable backend baseline.
  • Attribution window stability: fewer “modeled” vs. observed swings in reporting.
  • Algorithm performance: give it time before judging CPA/ROAS changes — Google’s own docs say allow ~30 days to see Enhanced Conversions’ reporting impact; in our experience, 2–3 weeks is a reasonable minimum for the models to settle on complete data.

Common Mistakes

  • Sending PII in plain text. Always hash emails/phones (SHA-256) before sending to ad platforms.
  • No consent handling. Server-side doesn’t exempt you from GDPR/consent mode — implement Consent Mode v2 properly.
  • Double counting revenue. Misconfigured deduplication inflates numbers and breaks bidding.
  • Setting and forgetting. APIs change; monitor event volumes weekly.

FAQ

Is server-side tracking legal under GDPR?

Yes, when implemented with proper consent management. Server-side tracking changes how data is transmitted, not whether you need consent. Implement Google Consent Mode v2 or your CMP of choice and respect user choices server-side too.

How much does server-side tracking cost?

Hosting runs from ~$20/month (managed options like Stape) to $100+/month on Google Cloud App Engine depending on traffic — production App Engine setups start around $120/month (3 servers × ~$40). The bigger cost is implementation — typically a one-time project.

Will server-side tracking fix my iOS 14 attribution problems?

It recovers a large share of lost events, but not everything — Meta permanently removed the 28-day attribution window back in 2021, so today’s max is a 7-day click window. Expect meaningful improvement, not miracles.

Do I still need the browser pixel if I have CAPI?

Yes — run both. The browser pixel captures rich client-side context (and acts as backup); CAPI captures what the browser misses. Deduplicate with event_id.

How long does implementation take?

One to two weeks for a standard site. Multi-domain, app + web, or heavily customized checkouts take longer.


Israr Ads builds server-side tracking infrastructure for e-commerce and lead-gen brands — GA4, GTM server containers, Meta CAPI, and Google Enhanced Conversions, engineered for data you can trust. See our services.