{# DE + SK hreflang odebráno 2026-05-24 — viz core/settings.py LANGUAGES. cross_lang_alternates is set False by views whose CS/EN versions live on DIFFERENT paths (KB articles/categories, blog posts) — there the naive same-path alternate would point at a non-existent URL, so we emit only the self-canonical instead of a wrong reciprocal. #} Skip to content

Meta Conversions API: the complete 2026 guide

How the Meta Conversions API works, why it improves Event Match Quality and how to deploy it server-side without duplicates. From user_data to event_id deduplication.

D
DataNostro Team 7. 6. 2026 · 9 min · Intermediate

The Meta Conversions API (CAPI) is a server-to-server interface for sending conversions to Meta straight from your server, not just from the browser via the Pixel. In 2026 it's a necessity — the client-side Pixel alone loses too much data. Here's how CAPI works and how to deploy it correctly.

Why the Pixel alone isn't enough

The Meta Pixel runs in the browser and is blocked by ad-blockers and limited by ITP and iOS. The Conversions API sends the same events from the server, so they get through even where the Pixel fails. Meta itself recommends running the Pixel and CAPI together — the Pixel for rich browser data, CAPI for reliability.

Key concepts

  • user_data — identifiers for matching a conversion to a user: hashed email (em), phone (ph), and the fbp / fbc cookies. The more quality identifiers, the better the match.
  • Event Match Quality (EMQ) — a 0–10 score Meta assigns based on how well it can match events to users. Higher EMQ = better optimization and a lower cost per result.
  • event_id — a unique event ID used to deduplicate between the Pixel and CAPI.

Deduplication: don't double-count purchases

When you send the same purchase from the Pixel and from CAPI, Meta has to match them and count it once. This happens via the combination of event_name + event_id. If event_id is missing or differs, the conversion is doubled and the data is useless. We cover this in detail in GA4 + Meta CAPI deduplication: what breaks.

How to deploy CAPI server-side

  • 1. In the server-side GTM container, capture the events (ViewContent, AddToCart, Purchase) coming from the site.
  • 2. Add user_data — hashed email and phone from customer details, plus fbp/fbc from cookies.
  • 3. Send the same event_id as the Pixel so deduplication works.
  • 4. Verify in Meta Events Manager Test Events that events arrive, and watch the EMQ score.

The docs walk through it step by step: Meta CAPI server-side setup.

How to improve Event Match Quality

  • Always send a hashed email when you have one — it carries the most weight.
  • Add phone, name and city/postcode where available and you have consent.
  • Don't forget fbc (from the fbclid parameter on arrival from an ad) — it improves attribution.

GDPR

CAPI sends personal data, even if hashed — only send it with consent. The server-side container lets you enforce consent centrally. See Consent Mode v2 in practice.

Summary

Meta Conversions API server-side is the standard today for anyone advertising on Meta. It recovers lost conversions, lifts Event Match Quality and — with correct deduplication — gives clean data with no duplicates. See Meta CAPI via DataNostro.

Share

A new article once a month

In-depth server-side tracking guides + case studies from the CZ market. No spam, just 1 email a month. Unsubscribe anytime.

Back to Tracking