ChatGPT Ads Custom Audiences: The 25,000-User Floor Changes the Strategy
ChatGPT Ads Custom Audiences require 25,000 matched users. Learn when to include, exclude, or adjust bids, plus the setup that avoids wasted spend.

ChatGPT Ads Custom Audiences are useful only after you clear 25,000 matched users, and OpenAI recommends 100,000. That turns the launch into a fit test: large consumer lists can suppress buyers or change bids now; most local businesses and narrow B2B teams should wait.
ChatGPT Ads Custom Audiences is the first-party data layer inside Ads Manager Beta. You upload customer or prospect identifiers, then use the resulting audience to narrow delivery, suppress people, or change the maximum bid for a matched viewer.

The useful part is control. The catch is that the product counts matched users, not rows in your CRM export. Invalid records, duplicates, and identifiers OpenAI cannot match are removed before the audience reaches Ready status.
The 25,000 matched-user floor is the product boundary
The minimum is not a technical footnote. It decides which businesses can use the feature at all.
OpenAI requires 25,000 matched users per Custom Audience and recommends at least 100,000. A raw upload of 25,000 emails is therefore not a viable plan. Some rows will be invalid, duplicated, or unmatched, and none of those rows count.
Consider a DTC brand doing 50 orders per day. That is 18,250 orders across a 365-day year, before removing repeat buyers and before matching. Even a full year of buyers cannot clear the minimum on order volume alone. That brand may have a larger email prospect pool, but its buyer-suppression audience is still likely too small.
A brand doing 200 orders per day produces 73,000 annual orders. It has a plausible path, especially if it combines a longer customer history or a consented prospect list, but it still needs to see the processed match count before designing the campaign.
The practical boundary looks like this:
This is a different kind of minimum from a platform's daily spend. ChatGPT Ads currently allows a $25 minimum daily campaign budget, but Custom Audiences asks for data scale, not just media budget. The same distinction matters on other emerging channels: a low platform minimum can still be too small for a useful test, as the Reddit Ads budget math shows.
Three controls do three different jobs
Exclusion is the best first move for most acquisition advertisers; inclusion and bid multipliers solve narrower problems.
Inclusion is a gate. If a consumer app wants a win-back campaign only for lapsed subscribers, inclusion prevents everyone else from being eligible.
Exclusion is a filter. If a retailer is paying to acquire new customers, excluding recent buyers stops that specific acquisition campaign from competing for people who already converted.
A multiplier is a value signal. It does not decide who can see the campaign. It changes how high the ad group can bid when an eligible viewer belongs to the selected audience.

Start with exclusion, not retargeting
Customer suppression is the cleanest first use because it removes obvious waste without pretending a new channel already knows your lifetime-value model.
For a DTC acquisition campaign, create a Ready audience of recent purchasers and exclude it. The payoff is easy to understand: media intended for new-customer acquisition no longer goes to a matched recent buyer. You still need an incrementality test to prove profit impact, but the strategy has a clear job.
Retargeting through inclusion is harder. ChatGPT already matches ads using conversational context, landing-page content, ad copy, and advertiser-provided context hints. Restricting delivery to a known list can remove the very contextual discovery surface that makes the channel different. Inclusion earns its place when the message is genuinely specific to that list, such as a renewal, upgrade, or win-back offer.
Using both controls in one campaign is allowed, with two constraints:
- The same audience cannot be both included and excluded.
- The eligible audience left after exclusions must still contain at least 25,000 matched users.
That second rule can break a sensible-looking setup. An included audience may start above the threshold, but subtracting current customers can push the remainder below it.
For a B2B growth lead, this often ends the idea early. A database with 12,000 contacts cannot qualify, even before narrowing it to decision-makers, open opportunities, or a region. Keep the contextual ad group broad and use CRM stages in downstream measurement instead.
Raw-list math decides whether the audience can run
Plan from the required matched audience backward, because the platform gives no standard match-rate benchmark.
OpenAI says uploaded rows can disappear from the final audience when they are invalid, duplicated, or unmatched. It does not publish an expected match rate, and Ads Manager does not expose individual matched users. Your own processed result is the only reliable rate for the next upload.
The table below uses a 50% illustrative match rate, not an OpenAI benchmark:
If the first 50,000-record upload returns 22,000 matched users, the useful finding is not that the feature failed. It is that this list produced a 44% observed match rate. You can then estimate how much additional clean, consented source data the next audience needs. Do not assume that rate will transfer unchanged to a different country, identifier type, or list source.

Prepare and upload a list that reaches Ready
A clean upload is deliberately boring: one identifier type, exact formatting, an auditable name, and no last-minute spreadsheet mixing.
Choose one business job
Name the audience by the action it should change: recent-buyer suppression, lapsed-subscriber inclusion, or high-value bid adjustment. Do not combine incompatible lifecycle stages merely to cross 25,000.
Export one identifier type
Use email, phone number, SHA-256 hashed email, or SHA-256 hashed phone. One upload cannot mix those types. A CSV header, when present, must be
email,phone_number,email_sha256, orphone_number_sha256.Normalize before hashing
Lowercase and trim emails before hashing. Put phone numbers in E.164 format with
+and country code before hashing. A hashed value must be a 64-character SHA-256 hexadecimal digest.Save a valid upload
Use a UTF-8 CSV or TXT file. The file may be up to 500 MB and contain up to 5,000,000 identifiers. A TXT file uses one identifier per line.
Create and wait for Ready
In Ads Manager, open Settings, choose Audiences, and select Create custom audience. Processing usually takes 20-30 minutes. Processing and intermediate indexing states are not usable; Ready is.
Version changes instead of editing
Custom Audiences cannot be edited. Create a replacement, verify it reaches Ready, update the campaign or ad group, and archive the old audience.
OpenAI says uploaded audience files are deleted after processing, usually within 24 hours. That is a platform retention detail, not permission to upload any list you possess. Use only data you are allowed to use, with the notices and consent your business requires.
The status tells you what to fix:
- Too small: fewer than 25,000 users matched. Add legitimate source volume or stop.
- Failed: inspect encoding, identifier consistency, file size, and formatting.
- Processing: wait. The audience cannot be applied yet.
- Ready: the audience passed processing and the size floor.
Bid multipliers can turn a sensible CPC into a bad ceiling
Keep new audiences at 1x until conversion value proves a different bid is rational.
ChatGPT Ads supports multipliers from 0.1x to 10x. OpenAI currently recommends starting CPC campaigns with a maximum bid of $3-$5 per click. The platform then uses a relevance-weighted, second-price auction, so the maximum is a ceiling rather than a guaranteed charge.
The ceiling still matters:
A 10x setting can turn a $5 maximum CPC into $50 for a matched viewer. That is defensible only if the conversion rate and contribution margin for that audience support it. A label such as "VIP" is not evidence.
Overlap creates another trap. When a viewer belongs to more than one selected audience, the highest matching multiplier applies. A person in a 2x lapsed-customer audience and a 5x high-value audience receives the 5x bid ceiling. Multipliers do not stack, but the most aggressive one wins.
ChatGPT Ads is still a young paid surface. Budget discipline matters more than novelty. The same operator rule applies when moving spend into Google AI Mode ads: fund a measurable hypothesis, not a channel story.
Measurement has to exist before the audience test
Do not change audience bids until Ads Manager and your own analytics can connect clicks to the outcome that pays the bill.
Ads Manager currently reports impressions, clicks, spend, CTR, average CPC, average CPM, and conversions when measurement is configured. OpenAI says attributed conversions can take 24-48 hours to appear, so same-day bid changes can optimize against incomplete data.
The conversion measurement path has four parts:
- Install the OpenAI Pixel for browser-side events.
- Send server-side events through the Conversions API when appropriate.
- Preserve the
opprefclick reference through redirects and landing-page navigation. - When Pixel and API send the same conversion, use the same event ID so OpenAI can deduplicate it.
Static UTM parameters are supported. Dynamic UTM macros are not currently supported, so establish a consistent static naming scheme before launch.

For a DTC brand, the decision metric is not audience CTR. It is contribution profit from new customers after media cost, refunds, and the cost of the offer. For a B2B SaaS growth lead, it is qualified pipeline or closed revenue, not raw lead count. For an agency, it is the client's agreed primary conversion with a documented attribution window.
Give the reporting delay time to settle, then compare audience economics with the relevant baseline. A higher CPC can be rational when conversion value rises more. A lower CPC can still be a bad buy when the audience produces low-value actions.
Who should use Custom Audiences now
Use the feature now only when the list clears the gate, the segment changes a real business decision, and conversion measurement is already trustworthy.
The feature is meaningful, but it is not universal. Large consumer advertisers finally have the basic audience plumbing expected from a mature ad platform. Smaller operators get a more useful signal from the limit itself: do not force first-party targeting where the data cannot support it.
What is the minimum audience size for ChatGPT Ads Custom Audiences?
Each Custom Audience needs at least 25,000 matched users before it can be used. OpenAI recommends at least 100,000 users, and the threshold is applied after invalid, duplicate, and unmatched identifiers are removed.
Can you edit a ChatGPT Ads Custom Audience after uploading it?
No. Create a replacement audience, wait until it reaches Ready, update the campaign or ad group, and archive the old audience.
What happens if a user matches more than one bid multiplier?
The highest matching multiplier applies. The multipliers do not decide campaign eligibility, and they do not stack together.
Can you include and exclude audiences in the same campaign?
Yes. The same audience cannot be used on both sides, and the eligible audience remaining after exclusion must still have at least 25,000 matched users.
Want a clear operator's read on the next AI platform change before you move budget? Join the newsletter.
Jul 23, 2026






