---
title: "Meta Conversion API setup for B2B SaaS | Cometly Academy"
description: "Meta’s in-page Pixel sees roughly half of your real conversions on iPhone in privacy-restricted regions. The Conversion API closes that gap by sending events server-side from Cometly directly to Meta — with hashed first-party identifiers and a deduplication key that prevents double-counting against the in-page pixel."
source: "https://www.cometly.com/academy/meta-conversion-api-setup"
---

# Meta Conversion API setup for B2B SaaS

Server-side events that survive iOS, ITP, and ad blockers.

- Module 04: Ad Platform Optimization
- Lesson: 4.1
- Track: Both
- Format: Setup
- Read time: 9 min

Meta’s in-page Pixel sees roughly half of your real conversions on iPhone in privacy-restricted regions. The Conversion API closes that gap by sending events server-side from Cometly directly to Meta — with hashed first-party identifiers and a deduplication key that prevents double-counting against the in-page pixel.

## Key takeaways

- Send standard events (Lead, CompleteRegistration, Purchase) plus your custom funnel stages
- Include hashed email, phone, IP, user agent, and click ID for the highest match score
- Use a stable event_id between the in-page pixel and the CAPI event for dedupe
- Map MQL, Demo Booked, and Closed-Won as custom events for SLG
- Map New Customer and First Payment as custom events for PLG

The Meta Conversion API is the server-side companion to the in-page Pixel. With Cometly, the setup is largely automatic — but understanding how it works helps you decide which events to send, when to dedupe, and how to optimize on the deeper signals it unlocks.

## Why it matters

Meta’s in-page Pixel misses 30–50% of real conversions on iOS due to ITP, ad blockers, and consent blockers. The Conversion API runs server-side, so none of those affect it. The combined setup — Pixel for browser-side enrichment, CAPI for the durable record — is the standard for any B2B SaaS team running serious Meta spend.

## What to send and how

Send Meta’s standard events (Lead, CompleteRegistration, Purchase, Subscribe) plus custom events for your specific funnel stages (MQL, Demo Booked, New Customer). Include every identifier Meta accepts: hashed email, hashed phone, hashed first/last name, IP, user agent, and the Facebook click ID (`fbclid`) captured at landing.

Generate a stable event_id for each conversion and pass it both through the in-page Pixel and the server-side CAPI event. Meta uses the event_id to dedupe — without it, every conversion gets double-counted across the two channels.

- Standard events: Lead, CompleteRegistration, Purchase, Subscribe
- Custom events: MQL, Demo Booked, Demo Attended, New Customer, Closed Won
- Identifiers: hashed email + phone + name + IP + UA + fbclid
- Dedupe key: shared event_id between Pixel and CAPI
- Run both Pixel and CAPI for maximum durability

## Match score validation

After CAPI is live, check Meta Events Manager → Diagnostics → Event Match Quality. Cometly customers typically see scores in the 8.5–9.3 range. Below 7 usually means missing identifiers — most often the click ID isn’t being passed through, or hashed phone isn’t being captured.

If match quality is below 8 after a week, audit the event payload in Cometly’s Event Manager and confirm every identifier is being forwarded. Match quality below 7 cuts effective audience quality roughly in half.

## Common pitfalls

### Running CAPI without the in-page Pixel

The Pixel captures browser-side identifiers (cookies, browser ID) that CAPI alone can’t. Run both together.

### Forgetting the event_id dedupe

Without a shared event_id, conversions get counted twice. Cometly handles it automatically — verify the toggle is on.

### Sending only Lead events

Lead is the cheapest, lowest-quality signal. Push deeper events (MQL, Demo Booked, New Customer) for better optimization.