> For the complete documentation index, see [llms.txt](https://docs.chord.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chord.co/activate/event-streaming/destinations/advertising/meta.md).

# Meta

Meta runs Facebook and Instagram ads, and it was formerly called Facebook. Chord sends your events to Meta in two ways, from the browser and from the server. Use both for the best coverage.

## What each version does

* [**Meta Pixel**](/activate/event-streaming/destinations/advertising/meta/meta-pixel.md) runs in the shopper's browser. It catches on-page behavior such as page views, product views and add-to-cart clicks. It supports more than one Pixel ID on a single destination.
* [**Meta Conversions API**](/activate/event-streaming/destinations/advertising/meta/meta-conversions-api.md) runs on Chord's servers. It still reports purchases when a shopper has an ad blocker or closes the tab before the browser sends anything. It also sends hashed customer details to improve matching.

## Why use both

The browser version sees what shoppers do on the page. The server version survives ad blockers and closed tabs. Together they give Meta more complete data, and Meta can match more conversions to your ads.

## How they deduplicate

Meta counts a browser event and a server event as one conversion when they have the same event name and the same event ID, and arrive within 48 hours of each other. Chord sets the event ID for you.

**Order Completed uses the order ID as the event ID.** The browser and the server each send their own Order Completed for the same order. For example, the storefront sends one and the Shopify order webhook sends another. They are separate Chord events with different message IDs, so a message-ID-based event ID would never match. The order ID is the one value both copies share, and Meta's deduplication guide recommends an order number for this purpose.

* Both sources must send the same `properties.order_id`. Shopify GraphQL IDs such as `gid://shopify/Order/123` are reduced to the numeric ID, so either format matches.
* If an Order Completed has no `order_id`, the event ID falls back to the message ID.
* Repeat sends of the same order also deduplicate, for example when a shopper reloads the order confirmation page.

**All other events use the Chord message ID.** No other event carries an ID that both sources share. Checkout Started has a `checkout_id`, but browser sources send the checkout token while the Shopify webhook sends the numeric checkout ID, so the two never match. These events deduplicate on event ID only when both copies come from the same Chord event. Otherwise Meta falls back to its secondary matching on `fbp` and `external_id`.

## Set up

* [Meta Pixel](/activate/event-streaming/destinations/advertising/meta/meta-pixel.md)
* [Meta Conversions API](/activate/event-streaming/destinations/advertising/meta/meta-conversions-api.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.chord.co/activate/event-streaming/destinations/advertising/meta.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
