> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hightouch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Meta Conversions API

> Optimize campaigns and gain insight into ad performance by sending web, app, phone, and in-store conversion events to Meta from your data warehouse.

## When to use Meta Conversions API

Use this destination to improve Meta campaign performance and measurement by sending offline or server-side conversion events (for example, purchases, form fills, or calls) to Meta.

**Use Meta Conversions API when you want to:**

* Attribute conversions that happen outside the browser (for example, in your CRM or POS system)
* Improve ad delivery and targeting with more complete conversion data
* Measure performance when cookies or browser signals are limited

## Supported syncing

| Type | Description | Supported Sync Modes | API Reference |
| - | - | - | - |
| **Events** | Sync conversion events to Meta’s Conversions API | Insert | [Conversions API reference](https://developers.facebook.com/docs/marketing-api/conversions-api/) |

See [Sync modes](https://docs.hightouch.com/syncs/types-and-modes.md#sync-modes) for more information.

## Connect to Meta Conversions API

Go to the [**Destinations** overview page](https://app.hightouch.com/destinations?from=docs) and click the **Add destination** button. Select **Meta Conversions** and click **Continue**. You can then authenticate Hightouch to the Meta Conversions API by entering the following required fields into Hightouch:

1. In Hightouch, go to [**Destinations**](https://app.hightouch.com/destinations?from=docs) and click **Add destination**.
2. Select **Meta Conversions API** and click **Continue**.
3. Enter the following credentials:
   * **Pixel ID** or **Database ID**
   * **Access Token**

![Pixel ID in Events Manager](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-meta-conversion-pixel.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=f704fa4c6f7b737149c5cd28be96ab31)

Find these in [Meta Events Manager](https://business.facebook.com/events_manager2/):

1. Open the **Data Sources** tab and select your Pixel.
2. Under **Settings**, find your **Pixel ID** in the **Details** section.
3. To create an Access Token, scroll to **Conversions API** and click **Generate access token**.

![Access token in Meta Events Manager](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-meta-conversion-token.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=867a1f73b87575487995cd02fd8af1b5)

## Configure the sync

After connecting Meta Conversions API and selecting a [model](https://docs.hightouch.com/getting-started/concepts.md#models), create a sync to start sending data.

1. Go to [**Syncs**](https://app.hightouch.com/syncs?from=docs).
2. Click **Add sync**, choose your model, and select **Meta Conversions API** as the destination.

### Required event fields

The Meta Conversions API requires the following event parameters:

* `event_name`
* `event_time`
* At least one [customer information (`user_data`)](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters) field

The sync configuration form ensures all these are set and provides some additional options.

> [!WARNING]
>
> To ensure syncs send each event, your event model must use a truly unique [primary key](https://docs.hightouch.com/getting-started/concepts.md#unique-primary-key-requirement). See the [events syncs](https://docs.hightouch.com/syncs/types-and-modes.md#event-syncs) documentation for more information.

#### Event name

Providing an event name is required to send an event to the Meta Conversions API. You can either provide a static value or select to **use a column** from your model. Hightouch syncs the static or column value as the `event_name` parameter that the Conversions API requires.

Use Meta’s [Standard Events](https://www.facebook.com/business/help/402791146561655?id=1205376682832142) when possible (for example, `Purchase`, `Lead`, or `AddToCart`) to improve reporting accuracy.

#### Event time

You can optionally select a column that contains timestamps of when events occurred. If this field is empty, Hightouch uses the time the event arrives at the server. Hightouch syncs the timestamp as the `event_time` parameter the Conversions API requires.

If you select a column, it should be in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. Hightouch will then automatically convert the data into the format that Meta expects.

#### Action source

The [`action_source`](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/server-event#action-source) parameter specifies where your conversions occurred (e.g., web, app, email).

Knowing where your events took place helps Meta optimize delivery and attribution.

Certain source types require specific fields:

* **Web** events must include `event_source_url` and `client_user_agent`.
* **App** events must include `advertiser_tracking_enabled`, `application_tracking_enabled`, and `extinfo`.

If not all rows contain this field, you can set a **fallback action source** in your sync configuration.

#### Field mappings

Map your customer information and event parameters here.

The Meta Conversions API requires at least one [`user_data`](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters) parameter for attribution.

Include as many `user_data` fields as possible to improve [Event Match Quality](https://www.facebook.com/business/help/765081237991954?id=818859032317965).

If using a **Standard Event** (like `Purchase`), ensure you include all required fields (e.g., `value`, `currency`) and any relevant optional ones.

Custom fields are sent in the `custom_data` parameter.

#### Advanced analytics

To send data through the Conversions API to the Advanced Measurement API (AMAPI), map the following fields:

* `data_processing_options`: an array of strings like `["AMO"]`
* `advanced_measurement_table`: a string

#### Test event codes

Test event codes are special codes you can include in your event payload to simulate conversion events. This allows you to test your API implementation without actually recording real conversion data.

You can optionally enter a test event code as part of your sync configuration. You can find your test event code in your Meta [Events Manager](https://business.facebook.com/events_manager2/) in the **Test events** tab.

![Test event code in Meta Events Manager](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination-meta-conversion-test-event-code.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=fa3ce3d7cb9385a10d716ef69b83b8ef)

Make sure to remove the test event code if you're running a production sync.

#### Hashing

By default, Hightouch automatically hashes the following fields:

* **email**
* **phone**
* **gender**
* **dob**
* **last name**
* **first name**
* **city**
* **state**
* **zip**
* **country**

If you want to turn hashing off, select **No** under **Would you like Hightouch to automatically detect if your PII data requires hashing?**.

## Event Data Quality

Hightouch provides insight into the effectiveness of your conversion API implementation by reporting on **Event Match Quality (EMQ)** and **Additional Conversions Reported**.

Data quality metrics appear in the **Overview** tab of your Meta Conversions API sync.

> [!NOTE]
>
> Your access token must include Data Quality API permissions. If metrics don’t appear, generate a new token in Meta Events Manager.

### Event Match Quality (EMQ)

The EMQ score estimates how well your conversion events match to Meta users, ad clicks, and impressions. It’s based on the “fill rate” of key `user_data` values you send with each conversion event.

![Meta Event Match Quality example](https://mintcdn.com/hightouch-3c037897/L_vQfA0JQEpeGUUo/images/destinations/destination--conversion-emq.png?fit=max\&auto=format\&n=L_vQfA0JQEpeGUUo\&q=85\&s=3bc14423feee4e2cd00217b9b17ef747)

A higher EMQ score generally means better attribution accuracy and ad performance, as Meta’s algorithms can use more complete data to optimize bids, budgets, and targeting.

To improve your EMQ score:

* Collect and sync more `user_data` fields with each event.
* Use [**Match Booster**](https://docs.hightouch.com/match-booster/overview.md) to supplement user data with Hightouch’s third-party identity graph.

For guidance on which user attributes to prioritize, see the [Conversion API schema guide](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters/). For more about EMQ, see [Meta’s documentation](https://www.facebook.com/business/help/765081237991954?id=818859032317965).

### Additional Conversions Reported

The Additional Conversions Reported metric helps you understand how much your business benefits from using the Conversions API alongside the Meta Pixel. More reported conversions can help you decrease your cost per result and show your ads to people who find them relevant.

Learn more in [Meta’s Additional Conversions Reported guide](https://www.facebook.com/business/help/409195343791109).

## Tips and troubleshooting

To see the exact API requests and responses from each sync run, use the [live debugger](https://docs.hightouch.com/syncs/debugger.md). To get notified by Slack, PagerDuty, SMS, or email when a sync fails, set up [sync alerts](https://docs.hightouch.com/syncs/alerting.md). If you run into an issue this page doesn't cover, [contact support](#pylon-chat).

## Common errors

### Meta SDK

When setting up a new datasource for CAPI, if you don't want to use the Meta SDK in your app, choose “Web” (even if the data would include app events as well). This eliminates the need to install the SDK.

In this case, use **Dataset ID** instead of **Pixel ID** when configuring the destination.

### App data

To send app data in your CAPI events, include [app data parameters](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/app-data#).
