> For the complete documentation index, see [llms.txt](https://docs.dinmo.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dinmo.io/integrations/destination-platforms/chatgpt-ads/export-audiences.md).

# Export audiences

Create first-party Custom Audiences in ChatGPT Ads and keep their membership synchronized from DinMo.

The **Export audiences** destination creates a Custom Audience in ChatGPT Ads from a DinMo user segment and keeps it up to date. New segment members are added and members who leave the segment are removed on later runs.

## Prerequisites

Before creating the destination, make sure that:

* the [ChatGPT Ads platform connection](/integrations/destination-platforms/chatgpt-ads.md) contains an Ads API key for the target ad account;
* your DinMo user model or segment contains at least one supported identifier;
* the activation name contains at least three characters and is not already used by another active audience in the account.

## Add the destination

1. Open the ChatGPT Ads platform connection in **Destinations**.
2. Select **Add destination**.
3. Choose **Export audiences**.
4. Optionally configure default activation settings. These defaults enable one-click activation from a segment and can still be changed on an individual activation.
5. Save the destination.

## Configure an activation

Activate a user segment to the destination and provide an audience name and, optionally, a description. DinMo creates the audience during the first run.

Map one or more of the following identifiers:

| DinMo mapping             | Expected value                                                                                                |
| ------------------------- | ------------------------------------------------------------------------------------------------------------- |
| **Email**                 | A raw email address. DinMo trims and lowercases it before sending it with OpenAI's raw email identifier type. |
| **Phone number**          | A raw phone number. DinMo normalizes it to E.164 before sending it with OpenAI's raw phone identifier type.   |
| **Email SHA-256**         | An existing 64-character hexadecimal SHA-256 value.                                                           |
| **Phone number SHA-256**  | An existing 64-character hexadecimal SHA-256 value.                                                           |
| **Google Advertising ID** | A valid Android GAID. The all-zero advertising ID is rejected.                                                |

Rows without a usable identifier are reported as activation errors and are not sent. Choose the raw mapping for raw data and the SHA-256 mapping only for data that is already hashed. DinMo does not infer the identifier type from a value that happens to look like a hash.

## Synchronization behavior

The initial full run publishes the complete valid membership as one snapshot. Later delta runs apply removals before additions so that the audience converges to the current DinMo segment. Retries reuse stable operation identifiers and recover the latest audience revision before applying another mutation.

Schedule the activation according to how quickly audience membership changes. A full run can also be used to replace the remote membership with the current segment snapshot.

## Troubleshooting

### The audience name is rejected

Use at least three characters and choose a name that is not already used by another active ChatGPT Ads audience in the same account.

### Audience rows are in error

Confirm that every row has at least one supported identifier. Existing hashes must contain exactly 64 hexadecimal characters. Use the raw **Email** or **Phone number** mapping when the warehouse value has not already been hashed.

### The activation cannot access the audience

Confirm that the Ads API key stored on the platform connection belongs to the ad account where the audience was created. Replace the key on the platform connection if it has been rotated.

For the authoritative vendor contract, see OpenAI's [Custom Audiences documentation](https://developers.openai.com/ads/custom-audiences).


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.dinmo.io/integrations/destination-platforms/chatgpt-ads/export-audiences.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
