# ChatGPT Ads custom audiences: customer lists, exclusions and bid adjustments

> How custom audiences work in ChatGPT Ads: which identifiers you can upload, the 25,000-user minimum, exclusions, bid multipliers and file rules.

Published: 2026-09-27 · ChatAdsAI · https://www.chatadsai.com/guides/chatgpt-ads-custom-audiences

> **Summary:** Custom audiences let you bring your own customer or prospect list into ChatGPT Ads. You upload emails, phone numbers, their SHA-256 hashes or Google Advertising IDs, then use the audience to include people, exclude them, or raise and lower bids for them. Inclusion and bid adjustments need at least 25,000 matched users; smaller lists can still be used as exclusions.

## What a custom audience is

ChatGPT Ads has no keywords. Ads are matched to the conversation, the landing page, your copy and your context hints. Custom audiences are the one place where you tell the system about specific people rather than topics.

You build an audience from a list you already own, such as customers, leads or newsletter subscribers. Ads Manager matches it against ChatGPT users and gives you an audience you can attach to campaigns. You never see who matched: OpenAI states that Ads Manager does not show individual matched users or let you pick people from an audience.

## Three ways to use an audience

OpenAI lists three uses, and they sit at different levels of the account.

- **Inclusion (campaign level).** The campaign becomes eligible only for people in at least one included audience. Use it for a message meant for existing customers or qualified prospects.
- **Exclusion (campaign level).** The campaign runs broadly, except for people in the excluded audience. The obvious case is keeping acquisition ads away from people who already bought.
- **Bid adjustment (ad-group level).** A multiplier between 0.1x and 10x raises or lowers the ad group's maximum bid when the viewer is in the audience. It changes what you are willing to pay, not who is eligible.

A campaign can include and exclude at the same time. The result is people in an included audience, minus anyone in an excluded one. The same audience cannot be both included and excluded in one campaign.

If a viewer matches several audiences with different multipliers, the highest multiplier applies.

## The size rule that decides everything

This is the setting most lists trip on. Inclusion audiences and bid adjustments require at least 25,000 matched users. OpenAI recommends at least 100,000 for inclusion or bid adjustments.

Below 25,000, the audience shows as Ready with an "Exclusion only" note. It still works, but only to keep people out.

Two details matter when you plan:

- **Matched is not uploaded.** Invalid values, duplicates and identifiers that cannot be matched do not count. Expect the matched size to be lower than your row count.
- **Exclusions shrink inclusions.** When you combine both, the audience left after exclusions must still meet the 25,000 minimum.

For a small business with a few thousand customers, that makes exclusion the realistic use. It still pays off: excluding existing customers keeps new-customer budget on new customers.

## Preparing the file

Ads Manager accepts a UTF-8 CSV or TXT file up to 500 MB. You can mix identifier types in one CSV.

- **CSV** needs a header row with a supported column name per identifier: `email`, `phone_number`, `email_sha256`, `phone_number_sha256` or `gaid`. Ads Manager infers the type from the header.
- **TXT** holds one identifier per line, and you choose its type when uploading.

Formatting rules, from OpenAI's help page:

- **Email.** One valid address with one @. Uppercase is lowercased and outer spaces are trimmed; spaces inside are rejected.
- **Phone.** E.164 format with + and country code. An Israeli mobile is written +9725…, not 05…. Numbers without a country code are rejected.
- **Hashed values.** Normalize first (lowercase and trimmed email, E.164 phone), then hash with SHA-256. Each value must be a 64-character hex digest.
- **GAID.** Keep the dashes and do not hash it.

If you export from a CRM or spreadsheet, re-save the file as UTF-8 before uploading. A local encoding is the most common reason for a Failed status.

## Creating the audience in Ads Manager

1. Open **Tools** in the left sidebar and select **Audiences**.
2. Select **Create audience**, name it and upload the file.
3. For a TXT file, choose the identifier type. Review, then select **Create**.

Processing usually takes about 20 to 30 minutes, depending on file size. The status moves through Processing (and steps such as Indexing or Publishing) to Ready or Failed.

Once an audience exists, you can add, remove or replace members without recreating it or touching the campaigns that use it. Audiences can grow past five million members through repeated uploads.

## Attaching it to campaigns and ad groups

For inclusion or exclusion, edit the campaign, open **Custom audiences**, then choose **Include audience** or **Exclude audience** and pick ready audiences.

For a bid adjustment, edit the ad group, open **Advanced settings**, then **Audience bid adjustments**, select **Add multiplier**, pick an audience and enter a value between 0.1x and 10x. OpenAI's own examples: 2x for high-value customers, 0.5x for lower-priority groups.

## Privacy and data handling

Uploaded files are deleted after processing, usually within 24 hours. Hashing emails and phones before upload keeps plain contact details out of the file entirely.

The flow does not reverse. OpenAI states that advertisers receive only aggregated reporting such as views and clicks, never chats, memories or personal details. An audience lets you reach your list; it does not tell you which ChatGPT users are on it.

Before uploading, check that your consent covers this use of the data, and review OpenAI's eligibility and data-use requirements for custom audiences, linked from the same help page.

## Sources

- [OpenAI Help Center - Set up Custom Audiences for your Campaign](https://help.openai.com/en/articles/20001346-set-up-custom-audiences-for-your-campaign)
- [OpenAI Help Center - Ads in ChatGPT](https://help.openai.com/en/articles/20001047-ads-in-chatgpt)
