Old Port
Start a project

Meta Conversions API and Server-Side Tagging, Explained

What the Conversions API and server-side tagging actually do, how to avoid double counting, how to raise match quality, and what India's DPDP rules mean for your setup.

The short answer

The Meta Conversions API (CAPI) sends conversion events from your server or CRM directly to Meta instead of relying only on the browser pixel. Run it alongside the pixel, give each event the same event_id and event_name so Meta deduplicates them within 48 hours, and send consented, hashed customer details to raise Event Match Quality. Meta's CAPI Gateway or server-side GTM can host it without custom code.

Key takeaways

  • Meta deduplicates pixel and Conversions API events when both carry the same event_name and event_id and arrive within 48 hours of the first.
  • Server events can be sent up to 7 days after they happen; if any event in a request is older, Meta rejects the whole request.
  • Event Match Quality is a 0 to 10 score; email and click ID are among the most valuable identifiers, and phone number matters most for many Indian lead forms.
  • Google estimates server-side tagging on Cloud Run at roughly USD 50 per server instance per month.
  • India's DPDP Rules were notified in November 2025; most notice and consent duties apply from May 2027, and server-side tracking does not remove the need for consent.

The Meta Conversions API sends conversion events, such as leads and purchases, from your server, e-commerce platform or CRM straight to Meta, so you are not relying only on the browser pixel. Server-side tagging is the wider practice of routing tracking through a server you control. Together they recover conversions that ad blockers, Safari's tracking protections and short cookie lifetimes hide. They are not a way around privacy rules, and if set up badly they double-count every sale. This guide explains the moving parts in plain language, with India's DPDP rules in mind.

What is the Meta Conversions API?

The Conversions API (CAPI) is Meta's interface for sending web, app, offline and messaging events from a server rather than from a visitor's browser. Instead of a JavaScript pixel firing a "Purchase" event on the thank-you page, your backend, store platform or CRM sends the same event directly.

Meta recommends running CAPI alongside the pixel, a setup often called redundant tracking. The pixel captures browser context such as cookies and page behaviour; the server captures events the browser missed and events that never happen in a browser, such as a lead becoming a customer in your CRM.

The key fields in each server event, according to Meta's server event parameters documentation:

  • event_name: a standard event such as Lead or Purchase, or a custom name.
  • event_time: a Unix timestamp up to 7 days old. If any event in a request is older, Meta returns an error for the entire request and processes none of it.
  • event_id: technically optional but recommended for deduplication, ideally an order or transaction ID.
  • action_source: where the conversion happened: email, website, app, phone_call, chat, physical_store, system_generated, business_messaging or other.
  • user_data: customer information used for matching, covered below.
  • event_source_url: required for website events.

How does event deduplication work?

Meta treats a pixel event and a server event as one conversion when they share the same event name and event ID and arrive within 48 hours of each other. Meta's deduplication documentation describes two methods:

  1. event_id plus event_name (recommended). The pixel sends the ID as eventID, the server sends the same value as event_id, and both use the same event name. Events received within 48 hours of the first are treated as one.
  2. fbp or external_id. A fallback that generally works only when the browser event arrives before the server event, and never when you send from a single source.

The first method is the one to build around. The common failure is generating the ID twice, once in the browser and again on the server. Create it once, when the order or lead is created, and pass it to both.

A quick deduplication checklist

  • Same event name in both channels, with identical spelling and capitalisation.
  • One event_id per conversion, shared by browser and server.
  • Both events sent to the same pixel or dataset ID.
  • Deduplication checked in Events Manager after launch, not assumed.

What is Event Match Quality and how do you improve it?

Event Match Quality (EMQ) is a 0 to 10 score in Events Manager showing how well the customer information on an event lets Meta match it to an account. Better matching means more conversions can be attributed and used for optimisation. Stape's guide to improving EMQ notes there is no official "good" threshold, ranks email and click ID as high-priority identifiers and phone, external ID and browser ID as medium, and points out that IP address, user agent and browser ID need no hashing.

Customer parameters that improve Event Match Quality
ParameterWhat it isHandling
Email (em)Customer email addressNormalised and hashed before sending
Phone (ph)Phone number with country code (91 for India)Normalised and hashed
external_idYour own customer or lead IDHashing recommended
fbcClick ID from the fbclid URL parameterSent as is
fbpBrowser ID from the _fbp cookieSent as is
IP address and user agentBrowser contextSent as is

For Indian lead generation, phone number is often the most valuable field you have, because many leads never give an email. Store numbers with the 91 country code and without spaces, dashes or a leading zero before hashing, or they will not match. Capture fbclid on the landing page and keep it with the lead, so CRM events sent days later still carry the click ID.

How do you host server-side tracking?

Pick the simplest route that covers the platforms you advertise on. There are four common options:

Ways to send server-side conversion events
OptionHow it worksBest for
Platform integrationShopify or WooCommerce integrations, or Meta's own Events Manager setup, send CAPI events for youStandard e-commerce and simple sites
Conversions API GatewayMeta's self-serve server in your own cloud account that mirrors pixel events and handles event_id automaticallyMarketers without developers who only need Meta
Server-side Google Tag ManagerA tagging server receives events and forwards them to Meta, Google and othersMulti-platform tracking from one data stream
Direct API integrationYour backend or CRM calls CAPI directlyOffline sales, CRM stages, custom apps

Meta's Conversions API Gateway documentation says the Gateway runs in a cloud account the business owns, on AWS EKS, AWS ECS Express or Google Cloud, and that its only cost is the cloud resources or partner fees. The same page describes a simpler "Conversions API with Meta" option, switched on in Events Manager, for businesses that only need website events and want nothing to host.

Server-side Google Tag Manager (sGTM) is a Tag Manager container that runs on a server. Google's infrastructure planning guide estimates Cloud Run costs at about USD 50 per instance per month, with your minimum cost equal to your minimum instances times that figure, and advises moving tracking into a first-party context through your own DNS, typically a subdomain such as data.yourbrand.in. Managed hosts offer cheaper entry plans. The advantage of sGTM is one clean event stream feeding Meta, Google Ads and GA4 at once.

Moving tracking to a server changes where data flows, not whether you may collect it. India's Digital Personal Data Protection Rules were notified in November 2025 with a staggered rollout: some rules applied immediately, consent manager registration after 12 months (November 2026) and most substantive obligations, including notice, consent, security and breach rules, after 18 months (May 2027). Penalties can reach ₹250 crore per breach, as YourStory reported. Media reports in 2026 suggested the government might shorten the timeline, but as of Mondaq's May 2026 review no formal change had been made, so check for updates.

Practical implications for a CAPI or sGTM setup:

  • Consent travels with the event. Forward personal data for marketing only when the user has agreed, and respect withdrawal.
  • Notice must name the purpose. If phone numbers from a lead form are shared with Meta for ad measurement, say so in plain language.
  • Minimise. Send the fields that improve matching, not the whole CRM record.
  • Retain deliberately. Tagging server logs contain personal data and need a retention rule.

Our DPDP Act guide for marketers covers consent notices in detail. This is general information, not legal advice.

What does server-side tracking not fix?

It improves data completeness; it does not create consent, repair a broken funnel or prove causation.

  • It does not create consent. If a visitor declines marketing tracking, sending their data from a server is still sending it.
  • It does not fix a broken funnel. If the CRM never records the sale, there is no event to send.
  • It does not make attribution causal. Better matching lets Meta attribute more conversions, but not tell you which ones the ads caused.
  • It needs maintenance. API versions change, cloud bills arrive monthly and tags drift as websites are redesigned. Someone has to own it.

Common setup mistakes

  • Sending the server event without event_id, so every conversion is counted twice.
  • Hashing phone numbers stored as "098470 12345" instead of "919847012345".
  • Back-filling CRM sales older than 7 days in one request, which then fails entirely.
  • Forwarding personal data for users who declined marketing cookies.

In what order should you implement this?

  1. Audit current tags and decide which events matter: usually Lead, qualified lead and Purchase.
  2. Fix consent capture and the privacy notice first.
  3. Choose the hosting route that matches your team's skills.
  4. Generate event_id once, at the source.
  5. Send the user_data fields you have consent for, normalised and hashed.
  6. Verify deduplication and EMQ in Events Manager over the following week.
  7. Add CRM stage events so platforms can optimise for quality, as described in our Meta ads guide.

How we approach this at Old Port

We fix consent and the CRM record before touching tags, because server-side tracking only amplifies whatever data you already collect. We generate one ID per lead or order at the source, choose the lightest hosting route that covers the client's ad platforms, and schedule a monthly health check: server event counts against CRM leads and orders, the deduplication rate and EMQ in Events Manager, and any drop after a website release. Good tracking underpins honest attribution in 2026 and fits into a minimum viable MarTech stack. Our MarTech and automation team builds these setups, and our UAE colleagues apply the same approach through website development in the UAE.

Frequently asked questions

Do I still need the Meta pixel if I use the Conversions API?

Meta recommends using both. The pixel captures browser signals such as cookies and on-page behaviour, while the Conversions API captures events the browser misses and events from your server or CRM. Running both with shared event IDs gives the most complete data, and Meta deduplicates matching events received within 48 hours so conversions are not double counted.

Why are my conversions being counted twice?

Double counting usually means deduplication is failing. Check that the pixel and server send the same event name and the same event_id for each conversion, that the ID is generated once and shared rather than created separately in each channel, and that both events go to the same pixel or dataset. Events Manager shows deduplication status for each event.

What is a good Event Match Quality score?

Meta scores Event Match Quality from 0 to 10, and higher is better, but there is no official pass mark. Focus on sending the identifiers you legitimately hold: hashed email and phone, your own customer ID, click ID and browser ID. For Indian lead forms, phone numbers stored with the 91 country code and no spaces usually make the biggest difference.

Is server-side tracking legal under India's DPDP rules?

Server-side tracking is a technical method, and the same notice and consent obligations apply to it as to browser tracking. You need a clear notice of what data is shared and why, valid consent where required, data minimisation and sensible retention. Most DPDP Rules obligations apply from May 2027. Take legal advice for your specific case.

How much does server-side Google Tag Manager cost?

Google estimates about USD 50 per server instance per month on Cloud Run, so your minimum cost is the number of minimum instances multiplied by that figure, plus logging and network costs. Managed hosting providers offer cheaper entry plans for small sites. Budget for setup and maintenance time too, which often costs more than hosting for a small business.

What is the difference between the CAPI Gateway and server-side GTM?

The Conversions API Gateway is Meta's self-serve server that runs in your own AWS or Google Cloud account, mirrors pixel events to Meta and handles event IDs automatically, but serves only Meta. Server-side Google Tag Manager is a general tagging server that can feed Meta, Google Ads and GA4 from one stream, with more setup effort.

Sources

  1. Meta for Developers: Handling duplicate Pixel and Conversions API events
  2. Meta for Developers: Server event parameters
  3. Meta for Developers: Conversions API Gateway
  4. Stape: How to improve Facebook Event Match Quality
  5. Google Tag Platform: Planning infrastructure requirements and costs
  6. Storyboard18: Govt notifies final DPDP Rules with staggered rollout
  7. YourStory: DPDP Rules 2025 rollout over 18 months
  8. Mondaq: DPDP Act and Rules, a ticking compliance timeline

Cite this article

Jacob, A. I. (2026). Meta Conversions API and Server-Side Tagging, Explained. Old Port India. https://oldportindia.com/insights/server-side-tracking-conversions-api/
Athul Iyju Jacob

Athul Iyju Jacob, Founder and Managing Director, Old Port

Athul founded Old Port in Bengaluru in 2021. His background spans animation, graphic design and brand strategy, with more than six years in marketing across e-commerce, EdTech, healthcare, B2B and technology. He builds Old Port's own games, including GameHarbor and MindHarbor.

Read more from Athul at athuliyjujacob.com · LinkedIn

Start a project

Have a project in mind? Tell us where you are headed.

An AI system, an app, a brand or the marketing to grow it. Send a short note and we reply within one business day with questions, ideas and an honest next step.

  • An honest read on where you stand today
  • A plan built around your goals, not a template
  • Straight talk on whether we are the right fit