If your Facebook Ads reporting looks worse than your bank account - and you know you're driving conversions that Ads Manager can't see - the Facebook Conversion API is the fix. iOS 14.5+ killed 40-60% of pixel-based attribution; CAPI rebuilds it by sending conversions server-to-server. Here's the complete 2026 setup.
TL;DR - CAPI is server-side conversion tracking that bypasses browser limitations. You send events (purchase, lead, registration) from your server or backend to Meta's API. Meta deduplicates with pixel events, improving match quality from ~30% to 85%+.
Watch the full 5-minute walkthrough
Why the pixel alone stopped working
The Facebook Pixel is a browser-side tag. Every iOS 14.5+ user who opts out of tracking - which is 85%+ of iOS users - makes the pixel fire to localhost, not Meta. Combine that with Safari ITP, ad blockers, and Firefox Enhanced Tracking Protection, and the pixel misses over half of real conversions. CAPI sidesteps all of it by running server-side.
- Pixel-only match quality in 2026: typically 3.0-5.0 / 10
- Pixel + CAPI with PII matching: 8.0-9.5 / 10
- Match quality directly impacts CPA - high match quality = cheaper ads
The 4-step CAPI setup
Step 1: Verify your domain
In Meta Business Manager → Brand Safety → Domains. Add your domain, verify via TXT record, meta tag, or HTML file. Until this is done, you cannot send deduplicated CAPI events from your domain.
Step 2: Configure priority conversion events
iOS 14.5 allows 8 prioritized events per domain. Rank them by importance - usually Purchase, Lead, Complete Registration, Initiate Checkout, Add to Cart, View Content, and two custom events. The #1 event is optimized for; everything below #1 is secondary.
Step 3: Generate a CAPI access token
In Events Manager → Settings → Conversions API → Generate access token. This token authenticates server-to-server calls. Treat it like a password - store in secrets, never commit to git.
Step 4: Send events from your server
Three implementation paths, ranked by difficulty:
- Native CRM/marketing platform CAPI integration (easiest) - Inflowave, HubSpot, Segment, and others ship with CAPI out of the box. Connect ad account, map events, done in 10 minutes.
- Server-side GTM (medium) - Google Tag Manager Server-Side with a CAPI tag template. Requires GCP project, sGTM container, and DNS setup.
- Direct API (hardest) - Your backend POSTs events to
graph.facebook.com/v18.0/PIXEL_ID/events. Most reliable, most work. Requires engineering.
Match quality: the hidden lever
Sending events is step 1. The real performance lever is match quality - how much user data you send with each event so Meta can match it back to a logged-in Facebook user. Target 8.0+ match quality.
- Email (hashed, SHA256) - the single biggest match signal
- Phone number (hashed)
- First + last name (hashed)
- Click ID (fbc) + browser ID (fbp) - captures session context
- IP address + user agent - fills gaps when PII is missing
Testing your setup
Meta's Events Manager has a Test Events tab. Every event you send with a test_event_code shows up there in real time. Use this before going to production - misconfigured events create deduplication hell.
- Test each event type with realistic payloads
- Verify deduplication: fire same event via pixel AND CAPI with matching event_id - Meta should show it as deduplicated
- Watch match quality score rise as you add PII fields
The no-engineer option
If you're running ads for yourself or clients and don't have an engineering team, use a platform with native CAPI integration. Inflowave's Facebook Ads integration ships CAPI out of the box: connect your ad account, map your pipeline stages to CAPI events, and every CRM lead, call booked, form submitted, or Stripe purchase auto-fires to Meta with full PII matching.
The whole setup takes 10 minutes. Match quality typically hits 8.5+ on day one because the CRM already has email, phone, and first/last name for every lead.
FAQ
Is CAPI free?
Yes - Meta doesn't charge for CAPI. You pay for implementation (either your time, an engineer, or a tool that includes it).
Do I still need the pixel?
Yes. Best practice is pixel + CAPI together, with matching event_ids so Meta deduplicates. Pixel captures session context CAPI can't; CAPI captures conversions the pixel misses.
What is a good match quality score?
8.0+ is strong, 9.0+ is excellent. Below 6.0 you're losing significant optimization signal. Add more PII fields (hashed email, phone, names) to improve.
Can I send CAPI events from CRM lead creation?
Yes - this is the gold standard for lead-gen advertisers. Every new CRM lead fires a CAPI Lead event with PII, directly optimizing your campaigns for actual qualified leads, not just form fills.
