Meta Pixel and Conversions API Setup Guide

View this page

How the Meta Pixel and Conversions API work together: server events, hashing, deduplication by event ID, consent, and the limits Meta documents.

Organisation
WavX Solutions
Telephone
+919310079927

Description

Integration Meta Pixel and Conversions API setup: server events and deduplication

The Meta Pixel reports conversions from the browser; the Conversions API reports the same conversions from your server. Meta's guidance is to run both and give each pair of events a shared event ID so they are counted once. WavX builds the server side, the hashing and the deduplication. This guide is written from Meta's developer documentation as read on 2 October 2026.

Discuss an integration Last updated 2 October 2026

What the integration does

The Meta Pixel is a script on your pages that tells Meta when a visitor views a product, adds to cart or buys. The Conversions API does the same job from your server: Meta describes it as a connection between an advertiser's marketing data, from a server, website platform, mobile app or CRM, and Meta's systems. It accepts website events, app events, business messaging events and offline conversions.

The two are meant to run together. The browser sees the click and the cookies; the server knows the order was actually paid. An integration sends each conversion through both routes and labels the pair so Meta counts one.

Browser Your server Meta

------- ----------- ----

Pixel: Purchase, eventID=ord_1042 --------------------------------> Events dataset

order placed (fbp, fbc, user agent) -> order saved with event ID

payment confirmed ----------> Conversions API:

hash email and phone Purchase, event_id=ord_1042

one conversion counted

Data that flows each way

Event or object

Direction

What your system does with it

Pixel standard events ( ViewContent , AddToCart , InitiateCheckout , Purchase ) with eventID

Browser to Meta

Generates the event ID once and passes it to both the Pixel and the server

fbp and fbc cookie values, IP address, user agent

Browser to your server

Stores them with the session or order; sends them unhashed with the server event

Server event ( event_name , event_time , event_id , action_source , user_data , custom_data )

Your server to Meta

Posts to the events endpoint after the action is confirmed

Customer fields (email, phone, name, city, postcode)

Normalises and SHA-256 hashes each one before sending

Response and diagnostics (events received, match quality)

Meta to you

Logs the response; watches Events Manager for warnings

Consent choice

Banner to browser and server

Holds back both the Pixel and the server event when consent is refused

The main flow, step by step

Collect the prerequisites. Meta's get-started page lists a Pixel ID (the same one for browser and server events), a business account in Meta Business Suite, and an access token generated in Events Manager. An integration built as your own app also needs a system user.

Decide the events. Use Meta's standard event names, identical on both sides.

Generate one event ID per action. The order number works for a purchase. Pass it as eventID in the Pixel call and as event_id in the server call.

Capture browser identifiers on your server at the moment of the action: fbp , fbc , IP address and user agent.

Send the server event to https://graph.facebook.com/{API_VERSION}/{PIXEL_ID}/events once the action is confirmed. Meta's examples showed v25.0 when read for this page.

Test with a test_event_code and confirm the events arrive in Events Manager. Meta says the code is for testing only and must be removed from production payloads.

Monitor. Check deduplication and Event Match Quality in Events Manager.

Limits and rules Meta documents

Rule

What the documentation says

Required fields

event_name , event_time , user_data , action_source ; website events also need event_source_url and client_user_agent

action_source values

website , app , email , phone_call , chat , physical_store , system_generated , business_messaging , other

Event age

event_time may be up to 7 days old. One older event causes the whole request to be rejected. Physical-store events have a 62-day window

Batch size

Up to 1,000 events per request

Rate limit

No specific limit for the Conversions API; calls count as Marketing API calls

Hashing

SHA-256 for email, phone, first and last name, date of birth, gender, city, state, postcode and country. Hashing is recommended for external_id

Never hashed

client_ip_address , client_user_agent , fbc , fbp

Normalisation

Email: trim and lowercase. Phone: digits only, no leading zeros, country code included

Deduplication key

Same event name plus Pixel eventID equal to server event_id ; or matching fbp or external_id

Deduplication window

48 hours from the first event received with that ID; Meta generally keeps the event that arrives first

Same-source duplicates

Not deduplicated. Two identical server events are both counted

Timing

Send in real time, or in batches close to real time

Match quality

Event Match Quality is scored out of 10 per event

Consent

Meta's Pixel has a consent call: fbq('consent', 'revoke') pauses Pixel fires and, per Meta's guide, should run on every page before the Pixel initialises; fbq('consent', 'grant') resumes them after the visitor agrees. The Conversions API has no banner of its own. The server must check the same stored choice before it sends, which means the consent decision has to be saved somewhere your backend can read. Server events also accept an opt_out flag, which Meta describes as keeping the event out of ads delivery optimisation, and data_processing_options for its Limited Data Use setting. Which laws apply to your customers is a question for your legal adviser, not for a tracking setup.

Common failure modes

Every sale counted twice. Event names differ between browser and server, or each side makes its own ID.

A retried server call inflates results. Meta does not deduplicate server against server, so your own code must make sure a retry does not resend an event that was accepted.

A whole batch rejected. One event older than 7 days sits in a queue with fresh ones.

Low match quality. Phone numbers sent without the country code, emails hashed before lowercasing, or fbc missing because the click ID was not captured on the landing page.

Server events sent after consent was refused. The banner blocked the Pixel and nobody told the backend.

Test code left in production.

Purchase sent from the thank-you page only. If the page never loads, the server event is the only record, so it must be triggered by the payment webhook , not by the page.

What WavX builds around it

For a client who needs server-side tracking for Meta ads, WavX builds:

An event plan shared with analytics, so Meta and GA4 describe the same actions.

Event ID generation at the source and its hand-off to both Pixel and server.

A server module that captures identifiers, normalises and hashes customer fields, and sends events after confirmation, with a queue, retries that cannot double-send, and a log of every response.

Consent storage that the browser tags and the server both read.

Events from systems the Pixel never sees: a lead marked qualified in a CRM such as Zoho CRM or HubSpot, or an offline sale.

Campaign management is a separate service, described under performance marketing . WavX does not publish a price for a single integration; it is quoted after scoping. For planning, the software cost estimator carries third-party integrations as a ₹60,000 feature line on top of a base build. Its output is a planning range, not a quote. See API and system integration services for the wider offer.

When Meta's or your platform's own tool is enough

A standard Shopify store. Shopify's help centre describes three data-sharing levels in its Facebook and Instagram channel: Standard uses the Pixel only, while Enhanced and Maximum add the Conversions API. Turn that on before paying anyone.

A site with no developer. Meta's Conversions API Gateway is a self-serve option configured in Events Manager with no coding. It runs in a cloud account your business owns (AWS or Google Cloud), and Meta says the only cost is those cloud resources or partner fees.

Low ad spend. If campaigns are small, the Pixel alone may be accurate enough to decide with.

Custom work earns its cost when the conversion that matters happens off the page: a paid order confirmed by the gateway, a lead that became a customer weeks later, or a store whose checkout the standard tools cannot see.

Frequently asked questions

Do I still need the Pixel if I use the Conversions API?

Meta's best-practice page says to use the Conversions API in addition to the Pixel and to share the same events through both. The browser event carries cookie identifiers; the server event carries what the browser may never send. The shared event ID stops the pair being counted twice.

Why do my conversions show twice in Events Manager?

The browser and server events are not being matched. Meta deduplicates only when the event name is identical on both sides and the Pixel's eventID equals the server's event_id, or when fbp or external_id match. Different names, such as Purchase and purchase_complete, or an ID generated separately on each side, defeat it.

Does Meta charge for the Conversions API?

Meta's developer documentation, as read for this page, lists no charge for the API itself. For the no-code Conversions API Gateway it says the only cost is the cloud resources or partner fees, because the Gateway runs in a cloud account your business owns.

Is customer data sent to Meta in plain text?

Contact fields are not. Meta requires email, phone, name, city, state, postcode and country to be normalised and SHA-256 hashed before sending. IP address, user agent and the fbc and fbp cookie values must be sent unhashed. Whether you may send them at all depends on the consent you hold.

I run a Shopify store. Do I need a developer for this?

Usually not. Shopify's Facebook and Instagram channel has data-sharing levels, and its help centre says the Enhanced and Maximum levels use the Conversions API alongside the Pixel. A developer is needed for events that happen outside the store, such as a lead qualified in a CRM.

Sources

Meta for Developers: Conversions API overview · read 2 October 2026

Meta for Developers: Conversions API, get started · read 2 October 2026

Meta for Developers: using the Conversions API · read 2 October 2026

Meta for Developers: server event parameters · read 2 October 2026

Meta for Developers: customer information parameters · read 2 October 2026

Meta for Developers: deduplicate Pixel and server events · read 2 October 2026

Meta for Developers: Conversions API best practices · read 2 October 2026

Meta for Developers: Conversions API Gateway · read 2 October 2026

Meta for Developers: Meta Pixel reference (standard events, eventID) · read 2 October 2026

Meta for Developers: Meta Pixel consent (GDPR) · read 2 October 2026

Shopify Help Center: Meta data sharing · read 2 October 2026

Related

Google Analytics 4 and Tag Manager setup

Performance marketing (Meta and Google Ads)

WhatsApp Business API integration

Build your own software — your way, your pricing.

WavX Solutions is here to create your own software in a fully custom way, built exactly how you work — with a pricing model that fits your business. Connect now and let's build it.

Contact Now helpwavx@gmail.com