Paid Advertising

Meta Conversions API: Setup and Event Quality

Set up Meta Conversions API with reliable events, correct deduplication and stronger match quality. Includes testing, consent and troubleshooting steps.

Published 1 January 2026 · 6 min read · Target keyword: Meta Conversions API

Meta Conversions API sends website or CRM events from your server or an approved integration to Meta. Set it up alongside the Meta Pixel, pass accurate customer identifiers where permitted, and deduplicate overlapping events so purchases and leads are not counted twice.

Good event quality means more than a high match score. You need the right action, a reliable timestamp, valid identifiers and accurate commercial values. This guide explains how to configure the connection, test delivery and identify problems before using the data to optimise paid advertising.

1. Choose a setup route and define your events

Start with your platform, not the code. A supported partner integration is usually the simplest option for an ecommerce platform. A custom website, booking system or CRM may need a direct API integration, a supported gateway or server-side tag management.

Server-side tagging still needs a dependable event source. Routing a browser request through a server container does not automatically provide confirmed payment or CRM data.

  • Partner integration: Check which events it sends, whether browser and server events are deduplicated, and how consent settings are respected.
  • Gateway or managed connection: Confirm hosting costs, access ownership, monitoring and which event sources it supports.
  • Direct integration: Use this when you need control over order confirmation, lead qualification or offline outcomes. Assign ongoing maintenance to a developer.

Create a short event specification before implementation. For an Islamabad retailer, that might include ViewContent on product pages, AddToCart after a successful basket update, InitiateCheckout when checkout begins, and Purchase after the chosen order-confirmation milestone.

For a Lahore service business, send Lead only after the backend accepts a valid enquiry. A button click or thank-you page refresh is not a new lead. If you later send qualified-lead outcomes from a CRM, define the qualification rule and use an event supported by your intended campaign workflow.

2. Build a clean, secure event payload

Each Meta Conversions API event should describe a real action. Select the correct dataset or pixel in Events Manager, establish the connection and keep access tokens in secure server-side storage. Never expose them in public browser code.

For a website event, check these fields against Meta’s current API requirements:

  • event_name: Use the appropriate standard event name, with consistent spelling and capitalisation.
  • event_time: Send the time the action occurred as a Unix timestamp in seconds, not the time a delayed batch was uploaded.
  • action_source: Identify where the action happened, such as website. Do not label a phone sale as a website purchase.
  • event_source_url: Include the relevant website URL when required, without leaking sensitive information in query parameters.
  • user_data: Supply permitted matching identifiers, properly normalised and formatted.
  • custom_data: Include relevant commercial details, such as value, currency and product identifiers.

A Pakistan order worth PKR 12,500 should use a numeric value of 12500 and currency PKR. Use USD, GBP or AED when those are the actual transaction currencies. Decide whether your reported value includes delivery and tax, then apply that definition consistently.

Normalise identifiers according to Meta’s specifications before applying SHA-256 hashing where required. Email addresses generally need trimming and lowercasing; phone numbers need country codes and the required digit format. Do not hash fields Meta expects unhashed, including browser identifiers, click identifiers, IP addresses and user agents. Check whether your integration already handles hashing.

3. Deduplicate browser and server events correctly

When the Pixel and server report the same action, Meta needs a way to recognise the pair. Use the same event name and the same event ID on both versions. In browser Pixel code, the parameter is eventID; in the server payload, it is event_id.

Generate the identifier once for the underlying action, then share it between both delivery paths. Generating a fresh identifier independently on each side defeats deduplication.

  1. A successful checkout creates a unique transaction event identifier.
  2. The confirmation page sends Purchase through the Pixel using that identifier.
  3. The backend sends Purchase with the identical event_id.
  4. If delivery fails temporarily, the retry retains the original identifier and occurrence time.

A single global ID is equally wrong because it can merge unrelated actions. Give separate events their own identifiers, and prevent refreshes or repeated webhook notifications from creating fresh purchases.

For cash-on-delivery orders in Pakistan, document what Purchase means. An accepted order, a dispatched parcel and a paid delivery are different milestones. Avoid reporting all three as independent purchases for one transaction. Reconcile cancellations and returns separately rather than assuming the initial event represents collected revenue.

4. Improve matching without ignoring consent

Event Match Quality indicates how effectively supplied customer information may help Meta match an event to an account. It does not prove that the event represents a genuine sale, that revenue is correct or that advertising caused the conversion.

Improve Meta Conversions API matching by checking what you already collect legitimately. A checkout may provide email and phone details, while an anonymous product view may provide fewer identifiers. Those events should not necessarily have identical scores.

  • Preserve valid fbp and fbc identifiers where available and permitted. Do not fabricate click identifiers.
  • Pass the actual customer IP address and user agent where appropriate, not your server’s network details.
  • Use a stable external customer identifier where supported, following Meta’s formatting and hashing requirements.
  • Remove empty fields, placeholder phone numbers and malformed email addresses.
  • Avoid sending sensitive information in URLs, event names or custom parameters.

Server-side delivery is not a consent bypass. Apply relevant consent and privacy requirements to both browser and server tracking. For UK audiences, assess UK GDPR and PECR requirements; review applicable obligations for Pakistan, the USA and the UAE as well. Hashing personal information does not automatically make it anonymous.

5. Test delivery and monitor commercial accuracy

Use Events Manager’s Test Events tools before relying on production reporting. Where your integration supports it, include the supplied test event code in server requests and remove it after testing.

  1. Complete one controlled action: Submit a valid lead or place a test order with a recognisable value.
  2. Inspect both delivery paths: Verify names, identifiers, timestamps, values and currencies.
  3. Check deduplication: Confirm the overlapping browser and server reports are recognised as one action.
  4. Test failure cases: Refresh the confirmation page, repeat a webhook and simulate a retry.
  5. Review diagnostics: Investigate rejected events, missing parameters, formatting issues and delivery delays.

Monitor API responses and use controlled retries for temporary failures. Keep technical logs access-restricted and avoid retaining raw customer data unnecessarily.

Compare received purchase events with eligible backend orders over the same period and timezone. Do not expect Ads Manager’s attributed purchases to equal every store order: attribution settings, consent, matching and reporting delays affect the comparison. Investigate sudden divergence rather than forcing totals to match.

Review diagnostics daily during the first week, then weekly once delivery stabilises. Repeat checks after checkout changes, plugin updates, consent-platform changes or CRM migrations. Assign an owner for alerts so failures do not remain unnoticed.

Frequently asked questions

Does Meta Conversions API replace the Pixel?

Usually, they work together. The Pixel supplies browser events, while the server connection supplies another delivery path. Correct deduplication prevents overlapping reports from inflating event counts.

What Event Match Quality score should I target?

There is no universal target for every event. Prioritise valid identifiers and review Meta’s recommendations, but assess matching alongside event accuracy, coverage, timeliness and deduplication.

Will better tracking automatically lower acquisition costs?

No. More dependable signals can support measurement and optimisation, but results still depend on creative, targeting, offers, landing pages and sales follow-up.

Request a free SEO analysis from SEOISB, part of HA Technologies in Blue Area, Islamabad, to identify organic-search opportunities alongside your paid advertising strategy.

Keep reading

All articles →

Want to know exactly why you are not ranking?

We will audit your site, your top three competitors and your current keyword coverage, then send you a prioritised action list. No obligation, no sales script.