Custom audiences on ChatGPT Ads: your own lists, inside the conversation

What a custom audience can do on this platform, the 25,000 and 100,000 thresholds, the five identifiers, include, exclude and bid multipliers, and the file rules that make an upload process.

Guilherme Hortinha · 7 September 2026 · 7 min read

ChatGPT Ads guides

ChatGPT Ads Eligibility

Can your business run ChatGPT Ads? Check in 10 seconds.

A custom audience is a list of your own customers or prospects, uploaded to Ads Manager and matched against signed-in ChatGPT users. You can point a campaign only at the people on it, keep it away from them, or bid more or less for an ad group when the viewer is on it. Inclusion and bid adjustments need at least 25,000 matched users; anything smaller still works for exclusion. Since September 2026 one file can mix identifier types, a list can pass five million members, and you can edit the members without rebuilding the audience or touching the campaigns that use it.

What a custom audience does here

Three things, at two levels. At the campaign level an audience can be included, which limits delivery to people in at least one included list, or excluded, which keeps the campaign away from anyone on the list. At the ad-group level an audience can carry a bid multiplier, which raises or lowers the group's maximum bid when the viewer matches. A campaign can include and exclude at once, and an excluded person is out even if they are also on an included list, but the same audience cannot sit on both sides of the same campaign.

Audiences are controls, and only controls. Ads Manager never shows you who matched, never lets you pick individuals, and deletes the uploaded file once it has been processed, usually within 24 hours. What you get back is a matched-user count in a size range.

The thresholds that decide what you can do

Matched usersIncludeExcludeBid multiplier
Under 25,000NoYesNo
25,000 to 100,000YesYesYes
100,000 and aboveYes, and what OpenAI recommendsYesYes

The number that counts is matched users, and it is always smaller than the rows you uploaded: duplicates, invalid values and identifiers that do not belong to a ChatGPT account are dropped, so a 40,000-row export can come back under the floor. An audience below 25,000 shows as Ready with an Exclusion only note, and if you combine an included list with exclusions, the audience that remains after the exclusions still has to clear 25,000.

For a services business the floor is the whole story. A CRM with 8,000 contacts cannot be targeted on this platform. It can be excluded, which is the more useful direction for most of them anyway: keep the ads away from current clients and open leads, and let the context hints find the new ones.

The five identifiers, and how to format them

IdentifierFormatHashing
Email addressOne @, lowercase, trimmedOptional: SHA-256 of the normalised value
Phone numberE.164, with + and country codeOptional: SHA-256 of the normalised value
Google Advertising IDAs issued, dashes keptNever

Plain and hashed versions of email and phone are separate column types, which makes five in all: email, phone_number, email_sha256, phone_number_sha256 and gaid. A CSV needs a header row naming each type it carries and can mix them; a TXT file takes one identifier per line and you choose the type at upload. Files are UTF-8, up to 500 MB, and a phone number without a country code is rejected. If you hash, hash the normalised value, the lowercase trimmed email or the full E.164 number including the plus sign, and send the 64-character hex digest.

Uploading, processing and updating a list

  • +Tools, then Audiences, then Create audience. Name it, upload the file, confirm the identifier type for a TXT file, and create.
  • +Processing takes about 20 to 30 minutes and scales with file size. The statuses in between, Upload pending, Indexing, Publishing, all mean not yet.
  • +Ready means usable. Ready with Exclusion only means it matched fewer than 25,000 people. Failed means the file broke a format rule; check encoding, headers and phone formatting before retrying.
  • +Members can be added, removed or replaced afterwards without recreating the audience, and every campaign and ad group already using it keeps working on the new membership.

That last point arrived on 4 September 2026 and changes how you run the list. Before it, a refreshed CRM export meant a new audience and a re-pointed campaign. Now a monthly replace keeps the exclusion current, which is the discipline that stops you paying to reach someone who signed last week.

Bid multipliers at the ad group

Under an ad group's Advanced settings, Audience bid adjustments takes a ready audience and a multiplier between 0.1x and 10x. When the viewer is in that audience the group's maximum bid is multiplied; when they are in several, the highest matching multiplier wins. OpenAI's own examples are 2x for high-value customers, 5x for people who have engaged with the brand before, and 0.5x for lower-priority lists. A multiplier changes the price you are willing to pay and nothing about who is eligible: eligibility is set by the include and exclude lists at the campaign level.

This is where a list earns its keep for anyone with a real customer base. A 5x multiplier on lapsed buyers, inside a campaign that otherwise runs on context hints, is a re-engagement layer the platform did not have before July 2026, and it still needs the 25,000 floor.

When it pays, and when it is theatre

  • +Excluding current customers and open leads: worth doing from the first campaign, at any list size.
  • +Including known buyers for a launch: worth doing above 100,000 matched users, with a bid multiplier, and with a tracked event so you can see whether the list converts differently.
  • +Inclusion as the only targeting on a small list: rarely worth it. The matched count will be a fraction of the export and the campaign will struggle to deliver.
  • +Hashing on your side: worth it if the data leaves a regulated system. The match rate is the same either way.

The list is one layer. The situation targeting that decides which conversations your ad joins still comes from the context hints, and the conversions that tell you whether the audience was worth the bid come from the tracking setup. When you would rather have the lists built, hashed, uploaded and refreshed for you, it is part of the managed service.

Quick answers

What is a custom audience on ChatGPT Ads?+

A list of your own customers or prospects, uploaded to Ads Manager as email addresses, phone numbers, SHA-256 hashes of either, or Google Advertising IDs, and matched against signed-in ChatGPT users. You can limit a campaign to people on the list, exclude them from it, or raise and lower an ad group's bid when the viewer is on it.

How many people does a custom audience need?+

At least 25,000 matched users to include an audience or apply a bid multiplier, and OpenAI recommends 100,000. Below 25,000 the audience is still usable, for exclusions only. Matched users are fewer than uploaded rows, because duplicates, invalid values and identifiers that do not match are dropped.

What identifiers do ChatGPT Ads custom audiences accept?+

Five: email address, phone number in E.164 format, SHA-256 hashed email, SHA-256 hashed phone, and Google Advertising ID. Since September 2026 a single CSV can mix identifier types, using one header column per type, and an audience can exceed five million members.

Can I update a custom audience without rebuilding it?+

Yes, since September 2026. Members can be added, removed or replaced in Ads Manager without recreating the audience, and the campaigns and ad groups that use it keep working. Processing takes about 20 to 30 minutes, and OpenAI deletes the uploaded file within 24 hours.

How do bid multipliers work with custom audiences?+

At the ad-group level, under Advanced settings, you attach a ready audience and a multiplier between 0.1x and 10x. When the viewer is in that audience the ad group's maximum bid is multiplied; if they are in several, the highest multiplier applies. Multipliers change the bid only. Who is eligible to see the campaign is set by the include and exclude audiences at the campaign level.

ChatGPT Ads Generator

See what your ChatGPT ad could look like before you spend.

Guilherme Hortinha

Guilherme Hortinha

Co-founder & Head of AI Innovation, Index Lab

Guilherme co-founded Index Lab, an AEO/GEO agency that makes brands the answer AI gives across ChatGPT, Gemini and Perplexity, taking clients from zero AI visibility to top recommendations.

Eligible and ready? We take it from here.

Start my campaign →