- Destinations
- Web Conversions
Meta Conversions API
Overview
Section titled “Overview”Signals sends website events from your server to Meta, alongside or instead of the browser pixel. Because the event does not depend on the browser, it survives ad blockers, cookie restrictions and dropped page loads that would otherwise lose the conversion.
Use this destination to report web conversions such as purchases, sign-ups and add-to-carts against your Meta ad campaigns.
If the conversion happened away from the browser, use Meta Offline Conversions API. If you are reporting a change in lead status from a CRM, use Meta Conversions API for CRM.
Supported sources
Section titled “Supported sources”Prerequisites
Section titled “Prerequisites”Before connecting you need:
- A Meta Ads account.
- A Meta Business Manager account with access to the dataset you intend to send to.
- Server-side API permission on that dataset.
- If you are connecting manually, a Dataset ID and an Access Token generated in Events Manager. See Authentication for where to find both.
- A Datahash Studio account with the target project selected.
- A website source connected in the same project. Events reach Meta through the source, so a connected destination on its own sends nothing.
Authentication
Section titled “Authentication”In Studio, open Destinations, find Meta, and click the Conversions API tile. You can connect in two ways.
Login with Facebook
Section titled “Login with Facebook”- Click Login with Facebook and continue on the Meta consent screen.
- Select the business you want to connect and save your choice.
- Choose the Business Account ID and the associated Pixel ID that events should be written to.
- Click Finish.
Manual setup
Section titled “Manual setup”- Enter your Dataset ID and Access Token.
- Click Validate Credentials.
- Click Finish.
| Field | What it is | Where to find it |
|---|---|---|
| Dataset ID | The unique identifier Meta assigns to a dataset created in Events Manager. Meta previously called this the Pixel ID, and the single sign-on screen still uses that name. | business.facebook.com, then All tools, Events Manager, Data Sources, select your dataset, Settings. |
| Access Token | A credential authorizing Datahash to send events to that dataset on your behalf. | The same Settings screen, scroll to the Conversions API section, choose Set up manually, then Generate Access Token. |
Configuration
Section titled “Configuration”The dataset you chose during authentication is where events are written. Signals writes to one dataset per connection, so if you report to more than one, create a connection for each.
The events themselves come from the connected source. Event names, the identifiers used for matching and the deduplication key are all set by the source mapping, not here.
There is no event mapping on this connector. Meta accepts the event names your source sends.
Manage instance
Section titled “Manage instance”To change the instance, open it from the Manage existing instance table, click the edit option in the menu to the top right, update the fields and click Finish.
Deduplication
Section titled “Deduplication”The event ID is what deduplicates. Send the same event ID and event name from the browser pixel and from the server, and a conversion reported on both paths is counted once.
The match window is 48 hours against the same dataset.
Data & identifiers
Section titled “Data & identifiers”Signals sends the fields your source captures. Send identifiers already hashed where you can. Plain text also works: they are normalized and SHA-256 hashed before they reach Meta.
Required
Section titled “Required”| Field | When it is required |
|---|---|
| Event ID | Always. Your own unique reference for the event. Send the same value from the browser pixel and the server, or Meta counts the conversion twice. See Deduplication. |
| Event time | Always. UNIX timestamp. |
| Event name | Always. Must match the browser event name, or deduplication will not work. |
| Action source | Always. Where the conversion happened. |
| Email address | One of email address or phone number. |
| Phone number | One of email address or phone number. Up to three values. |
| Currency | Purchase events only. The three-letter currency code. |
| Value | Purchase events only. |
Recommended
Section titled “Recommended”All of these raise the share of conversions Meta can match to a person who saw your ads.
| Field | Format |
|---|---|
| Facebook click ID (fbc) | Captured when a visitor arrives from a Meta ad. One of the strongest signals available on a web event. |
| Facebook browser ID (fbp) | The Facebook browser cookie value. |
| External ID | A stable pseudonymous ID of your own, such as a customer number or logged-in user ID. Send the same value on every event for that person. |
| Client IP address | IPv4 or IPv6, read from the request the visitor made rather than entered by hand. |
| Client user agent | The full browser user agent string, exactly as the browser sent it. Truncating it costs you the match. |
| First name | Letters only, lowercase, trimmed, no punctuation. |
| Last name | Letters only, lowercase, trimmed, no punctuation. |
| City | Letters only, lowercase, trimmed, no punctuation. |
| State or region | In the US, the two-character code in lowercase. Elsewhere, the region name in lowercase with no punctuation or spaces. |
| Country | The two-letter country code in lowercase, for example gb or in. |
| Order ID | Your own order reference, sent as a string. Meta uses it to drop a repeat report of the same purchase, so a blank or reused value lets duplicate orders through. |
| Content IDs | The product or SKU IDs in the event, as a list. They have to be the IDs used in your Meta catalog, or dynamic ads cannot retarget the product the visitor looked at. |
| Content type | product when the IDs are individual items, product_group when they are variant groups. |
Optional
Section titled “Optional”Additional identifiers: a second and third email address, gender, date of birth, postcode, and the Facebook login identifier.
Additional detail about the conversion: product name, category, brand and quantity, number of items, item number, subscription ID, shop ID, delivery method, predicted lifetime value, and one custom parameter and value.
Best practices
Section titled “Best practices”- Capture the Facebook click ID and browser ID where you can. On web events they lift match quality more than most personal identifiers.
- Keep formatting clean at source: lowercase email, phone in E.164, no stray whitespace. Hashing a badly formatted value produces a hash that will never match.
- Use NeoTag rather than dhPixel if you send to more than one marketing platform, so one tag serves them all.
Troubleshooting & FAQ
Section titled “Troubleshooting & FAQ”Validate Credentials fails. Re-check the Dataset ID. Confirm the token was generated for that dataset and not a different one, and that the account has server-side API permission.
No events appearing in Events Manager. Confirm a website source is connected in the same project and that the tag is published in your tag manager. A connected destination on its own produces nothing.
Conversions counted twice. The browser and server events are not sharing an event ID, or the event names differ. See Deduplication.
Low Event Match Quality. Add more of the recommended identifiers, and check that the Facebook click ID and browser ID are being captured. Then check formatting at source, since a value hashed after being formatted incorrectly will never match.
Events arrive but attribution looks wrong. Check that the action source reflects where the conversion actually happened, and that the event time is the time of the conversion rather than the time of upload.
Delivery stopped. The access token may have expired or been revoked. Generate a new one in Events Manager and re-validate the connection.

