ChatGPT custom audiences: why uploaded rows are not matched users

ChatGPT Ads needs 25,000 matched users for inclusion targeting. Work through exclusions, overlapping lists, and bid adjustments with a count-only worksheet.

Sonar sorts anonymous contact cards into a smaller bowl of matched audience tokens.

ChatGPT Ads custom-audience eligibility depends on matched users, not the number of rows uploaded. A large customer file can therefore be unusable for inclusion targeting, and an otherwise eligible audience can fall below the threshold after exclusions.

The documented size rule

OpenAI’s current setup documentation requires at least 25,000 matched users for inclusion targeting or audience bid adjustments. Smaller audiences can be used for exclusions. OpenAI recommends at least 100,000 users for inclusion or bid adjustments; that recommendation is not the minimum.

Invalid identifiers, duplicates, and unmatched identifiers do not count toward matched users. If a campaign combines inclusion and exclusion audiences, at least 25,000 matched users must remain eligible after exclusions. The same audience cannot be both included and excluded in one campaign.

We checked the documentation on September 4, 2026. Its recent update timestamp is not enough to establish the original launch date of custom audiences.

Three examples that expose the counting error

Synthetic examples, not observed advertiser results
CaseKnown countsSize conclusion
Upload mistaken for reach30,000 rows; 18,000 matched usersBelow the inclusion minimum
Exclusions reduce the audience35,000 unique included matches; 12,000 overlapping excluded users23,000 remain: below the minimum
Size requirement passes50,000 unique included matches; 10,000 overlapping excluded users40,000 remain: size passes, delivery unproven

The subtraction is valid because the excluded counts in these examples are explicitly the users who overlap the included set. Subtracting an entire exclusion list would be wrong when many of its members were never included.

Likewise, adding two inclusion audience sizes can double-count people who belong to both. Use the unique eligible audience reported by the platform where available. If that count is unavailable, do not replace it with a sum of file rows and describe it as reach.

Check eligibility before rewriting the ad

A campaign with no delivery can lead a team to rewrite its headline, increase a bid, or change its context hints. Those changes cannot answer a more basic question: was the intended audience eligible in the first place?

Keep a dated record of the file version, processing state, matched size, inclusion choices, exclusion choices, and remaining eligible size. If the audience is still processing, stop the performance diagnosis there. A configuration that has not become usable is not a failed creative test.

Once the size check passes, inspect the other campaign conditions separately. Size eligibility is a prerequisite for the selected audience control, not a guarantee of impressions, clicks, conversions, or access in every market.

A multiplier cannot rescue an ineligible audience

OpenAI says that when a viewer matches multiple selected audience bid adjustments, the highest matching multiplier applies. Multipliers change the maximum bid; they do not determine campaign eligibility.

For a hypothetical configuration with 2× and 3× matching adjustments, the relevant adjustment is 3×, not their 6× product. Keep that calculation apart from the inclusion-minus-exclusion check. A single spreadsheet cell called “audience boost” would obscure two different decisions.

Do not read a passed eligibility check as permission to increase spend. Set a budget and a stopping rule before testing. Compare results only after the audience state is stable enough for the periods to mean the same thing.

Use a count-only worksheet

Download the custom-audience eligibility worksheet (CSV). It contains the three synthetic cases above, labeled EXAMPLE-REMOVE, plus columns for processing state, unique matched inclusion size, overlapping exclusions, and the decision.

This is a planning and QA worksheet, not a customer-list upload template. Do not put email addresses, phone numbers, advertising IDs, or hashed identifiers into it. Counts and internal version labels are sufficient for the diagnostic.

Before any real upload, review OpenAI’s linked eligibility and data-use requirements and confirm that your organization is entitled to use the list. Hashing an identifier should not be treated as a substitute for that review.

Measure the next stage separately

After delivery starts, preserve impressions, clicks, spend, and conversions as distinct outcomes. The Pixel and Conversions API guide covers the downstream measurement question. A well-matched audience is not evidence that the conversion pipeline works, and a functioning pixel cannot prove that the intended audience was reached.

Our contribution here is the overlap-aware decision process and reusable examples. SearchEngineAnswer did not upload a customer list or run a paid campaign for this article, and we report no match-rate or conversion benchmark.

Keep learning

Continue this topic

Community discussion

Discuss: ChatGPT custom audiences: why uploaded rows are not matched users

Have a question, a useful example, or a different perspective? Join the discussion, share evidence, and help other readers reach a better answer.

0 replies Moderated
No replies yet.

Be the first to ask a focused question, share a practical example, or add useful evidence.

Ask a question or join the discussion

Share evidence, a useful example, or a clear question. Be specific, stay on topic, and challenge ideas without attacking people. First-time replies may be held for moderation.