Facebook (Meta) CAPI
11 min
the facebook conversions api (also known as meta capi ) is a server side integration that sends event data directly from chord cdp to meta's servers unlike the facebook pixel (which runs in the browser), the conversions api operates in cloud mode — events are sent server to server, making them immune to ad blockers and browser tracking restrictions meta recommends using the conversions api alongside the facebook pixel for maximum data coverage when both are configured, meta automatically deduplicates events using the event id field best practices use capi alongside the meta pixel — provides redundancy and better coverage enable automatic advanced matching — increases match quality without compromising privacy send rich user data — the more hashed identifiers (email, phone, name, address) you provide, the higher your match rates expected results after enabling capi, you should see higher match rates in meta events manager, as server side events are not blocked by browsers extended cookie lifespan for attribution, since fbc / fbp identifiers are sent server side getting started this is a cloud mode destination you will need facebook pixel id — found in meta events manager under your pixel settings access token — a system user token generated in meta business settings see meta's documentation https //developers facebook com/docs/marketing api/conversions api/get started for instructions on generating a server side access token connecting to the facebook conversions api cdp destination warning before connecting destinations in the chord cdp, please verify with all destination owners that all non chord cdp configured destinations are disabled running external destinations alongside configured chord cdp destinations can result in duplicate events downstream log into the chord data platform navigate to the cdp click the "add" button next to destinations select facebook conversions api from the destination catalog enter the destination name, pixel id , and access token optionally configure action source — defaults to website change to app , email , etc if events originate from non web sources events filter — restrict which events are forwarded (empty sends all) product content id field — which product field to use as the content id ( sku , product id , or variant id ) defaults to sku this value will be used in the contents \[] id field phone field name — the trait field containing phone numbers (leave empty to skip phone matching) click "create" to connect events event mapping chord event facebook event page pageview checkout started initiatecheckout order completed purchase product added addtocart product viewed viewcontent products searched search product clicked viewcontent subscription created subscribe (other track events) original event name passed through page, track, and screen events are forwarded identify events are ignored common event fields these fields are included on every event sent to meta facebook field chord source (priority order) notes event name (mapped from event — see table above) event time timestamp converted to unix seconds event id messageid used for deduplication with the browser pixel action source configured action source defaults to website event source url context page url user data all personally identifiable information (pii) is sha256 hashed before being sent to meta, in compliance with meta's data processing requirements facebook field chord source (priority order) notes em (email) properties email > context traits email lowercased and sha256 hashed ph (phone) properties {phonefieldname} > context traits {phonefieldname} non digits removed, leading zeros stripped, sha256 hashed only sent if phone field name is configured fn (first name) properties first name > first word of context traits name sha256 hashed ln (last name) properties last name > second word of context traits name sha256 hashed zp (zip code) properties shipping zipcode > context traits address zipcode sha256 hashed ct (city) properties shipping city > context traits address city sha256 hashed; also enriched from server side geo lookup country context traits address country sha256 hashed; also enriched from geo lookup st (state) (geo lookup) sha256 hashed region code from ip geolocation external id userid , anonymousid array of sha256 hashed values client ip address context ip not hashed client user agent context useragent not hashed fbc properties fbc > context clientids fbc facebook click id fbp properties fbp > context clientids fbp facebook browser id custom data (track events) track events include a custom data block with all event properties, enhanced with the following structured fields facebook field chord source (priority order) notes value properties total string; defaults to "0" currency properties currency > properties meta i18n currency content ids each product's sku > product id > variant id (or configured content id field) array of product ids contents array of { id, quantity, item price } per product quantity defaults to 1 content type (derived) "product" for single product, "product group" for multiple content name first product's name content category first product's category num items count of products when no properties products array is present but properties sku exists, a single content ids entry is created from that sku testing and validation after connecting the destination use the diagnostics tab in meta events manager to confirm events are being received use the test events tab to validate event payloads in real time verify match rates — higher rates indicate user identifiers are being sent correctly confirm revenue values and order counts align with your expectations check the facebook developer console for any api errors or authentication issues if you are running both capi and the facebook pixel, ensure event id values match across both to prevent duplicate counting chord cdp handles this automatically by using messageid as the event id for both destinations implementation checklist task why it matters enable both capi and pixel provides redundancy and better coverage activate advanced matching increases match quality without compromising privacy test events via diagnostics + test events tab ensures proper delivery and deduplication monitor developer console metrics proactively identifies api errors or auth issues match event ids across pixel and server events prevents data duplication or mismatches property mappings use custom property mappings if the default field resolution does not match your data model destination path description properties email email for user matching properties total conversion value properties currency currency code (e g , usd ) properties products\[] sku product content ids properties products\[] price per item price properties products\[] quantity per item quantity updated 12 mar 2026