datascale
Ads & Conversion APIs

Meta Pixel & Conversions API: The Setup

Pixel plus Conversions API with deduplication. The destination where server-side setups have to prove themselves first.

Event setup at a glance

Browser tag
Meta Pixel
Server-side API
Conversions API (CAPI)
Recommended path
Hybrid: browser + server-side with deduplication
Deduplication
Yes, via event IDs

Identifiers

Identifier reference for Meta Ads
IdentifierSourceUsed bySensitivityConsent noteStorage locationRetention
event_idWeb container, generated per eventPixel, CAPITechnical, no PIIPart of the marketing payload, sent only after consent.Not persistedOne-off per event
fbpMeta cookie (first-party)Pixel, CAPIPseudonymousCookie is set only after marketing consent.First-party cookieAround 90 days browser-side
fbcClick URL (fbclid), persisted as a cookiePixel, CAPIPseudonymousPersisted only after marketing consent.First-party cookieAround 90 days browser-side
em (SHA-256)Form or checkout, hashed in the server containerCAPIPII, send hashed onlyAdvanced Matching needs its own consent basis.Never persist in clear textPer internal deletion policy
ph (SHA-256)Form or checkout, hashed in the server containerCAPIPII, send hashed onlyAdvanced Matching needs its own consent basis.Never persist in clear textPer internal deletion policy

Event mapping

Event schema for Meta Ads
EventMeaningBrowser tagServer APIRecommended parametersRequired for optimizationCommon mistake
PageViewPage view, base for reach audiencesYesYesevent_idNo
ViewContentProduct view in the shopYesYesevent_idcontent_idsvaluecurrencyNo
AddToCartItem added to cartYesYesevent_idcontent_idsvaluecurrencyNoWithout content_ids, catalog audiences stay empty.
InitiateCheckoutCheckout startedYesYesevent_idvaluecurrencyNo
PurchasePaid order, net revenueYesYesevent_idvaluecurrencycontent_idsYesMissing event_id on one path, purchases count twice.
LeadQualified enquiryYesYesevent_idem (SHA-256)Yes

Consent constraints

  • Fires only with marketing consent; the CMP signal has to gate the pixel AND the CAPI tag.
  • PII reaches the API SHA-256-hashed only; hashing happens in the server container.
  • Advanced Matching without consent is not a grey area, it is a violation.

Consent-aware routing assumed. Privacy fit depends on the concrete setup; the legal assessment stays with your privacy team (legal review required).

Implementation methods

  • Browser pixel via GTM Web, CAPI tag in the GTM Server-Side container
  • Event-ID generation in the web container, passed to both paths

Debugging checklist

  1. Meta Events Manager Test Events
  2. sGTM preview mode

Common mistakes

  • Missing event_id on one of the two paths, purchases count twice.
  • CAPI without CMP wiring, the server path fires past the consent decision.
  • Unhashed emails in the payload; Meta rejects them or worse, accepts them.

A fit when

  • Meta is a core channel and iOS losses visibly depress the numbers.
  • A server container already runs or is planned anyway.
  • E-commerce with clear purchase events and order IDs.

Not a fit when

  • The CMP base is not in place yet; consent first, then CAPI.
  • Meta budget is marginal and the pixel alone covers the need.

What this destination is about

Meta Ads is not software we review; it is a destination your tracking has to deliver into cleanly. Three things decide the outcome: deduplication via event IDs, match quality via hashed identifiers, and a CMP signal that gates both paths.

The setup above is our standard from DACH projects. Infrastructure details live on the linked GTM Server-Side and stape.io pages; how Meta sits against the other platforms is on the ad platform hub.

For a self-run QA pass: the Consent Mode audit checklist, the CMP QA template, and the consent mapping worksheet.

Sources

Related services

Topical context

  • Meta Conversions API setup
  • Meta Pixel server-side
  • CAPI deduplication

Do your conversions actually arrive in the ads platforms? The Paid Media Tracking Audit settles it.

Request a Paid Media Audit →
  • Q01
    Does the Conversions API replace the pixel?

    No, it complements it. The hybrid setup of pixel plus CAPI with deduplication delivers the best signal quality; server-only is the exception for app and offline events.

More integrations we work with

← Back to all integrations