> For the complete documentation index, see [llms.txt](https://support.sayprimer.com/primer/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.sayprimer.com/primer/primer-support-review/section-connections/integrations/connecting-a-destination/meta-ads.md).

# Meta Ads

Sync an audience to Meta (Facebook/Instagram) — minimum size, match rate and matching time.

Meta Ads (Facebook and Instagram) is generally available. Connect your Meta account, then sync a Ready audience to it.

* **Minimum audience size:** 100 records.
* **Minimum matched size:** 1,500 records — Meta needs at least this many *matched* records to deliver, so build well above the 100 minimum to clear it after matching.
* **Typical match rate:** 65–85%.
* **Time to fully match:** \~12 hours.

See Match rates for how audience size and match rate combine into the servable size.

## "Terms not accepted" when connecting

Meta requires you to accept its **Custom Audiences terms of service** per ad account before Primer can push a list to it. When you pick an ad account that hasn't accepted them, Primer flags *"Terms not accepted — Accept Facebook Custom Audiences Terms to continue for this ad account"* and offers an **Accept on Facebook** button. Click it, accept the Custom Audiences terms in Meta for that account, then **Re-check** in Primer to clear the flag. The terms are per ad account, so accepting them on one account doesn't cover another.

## "Missing permissions" when syncing

If a sync to Meta halts with *"Missing permissions,"* Primer's **system user** doesn't have admin access to the ad account it's pushing to. Meta requires the connected app's system user to be an admin of the ad account before it can create or update a Custom Audience there.

Fix it one of two ways:

* **Add the system user as an admin** of that ad account in **Facebook Business Manager** (Business Settings → Accounts → Ad Accounts → the account → assign the system user with admin access), then rerun the sync.
* **Reconnect with a different account** that already has admin rights on the ad account.

This is an ad-account permission on Meta's side, not a Primer setting — it's the same fix whether the ad account is new or its access changed after you connected.

## "You can only have up to 500 audiences of this type"

If a sync to Meta fails with an error that you *"can only have up to 500 audiences of this type,"* your Meta ad account has hit **Meta's 500-custom-audience limit**. This is a Meta-side cap on how many Custom Audiences an ad account can hold, not a Primer limit. Delete unused Custom Audiences in Meta Ads Manager, then rerun the sync.

> Meta's **Advantage+** and lookalike features can also generate audiences that count toward this limit. If you're near 500, clear out old lists in Meta before syncing a new one.


---

# 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://support.sayprimer.com/primer/primer-support-review/section-connections/integrations/connecting-a-destination/meta-ads.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.
