Log in / Create free account🌐 ES☀️

Advanced training · Module 18 — ChatGPT Ads — measurement and traffic quality

Custom audiences in ChatGPT Ads: include, exclude and adjust bids with your own data

⏱️ 6 min read · 🤖 ChatGPT Ads 👥 Audiences · updated on 2026-09-18

Custom audiences bring what you already know about your customers into ChatGPT Ads: a list of emails or phone numbers that decides who sees the ad, who doesn't and who is worth bidding more for. If you come from Google Ads, the idea will remind you of customer lists (Customer Match). Used well, especially to exclude, they stop you paying to acquire people you already have.

First, a warning if you advertise in Spain or anywhere else in the EEA: according to the official documentation, they aren't currently supported in campaigns targeting the European Economic Area or Switzerland, because personalised ads aren't available there yet: in those markets, the ad is chosen by the context of the conversation alone. This lesson is useful for campaigns in other open markets, such as the United States, and for getting your lists and legal basis ready in case they become available in Europe.

What they are and which data they accept

They are lists of first-party data: information about your own customers that you have the right to use. They accept these identifiers:

Identifier How it's uploaded
Email In plain text or hashed with SHA-256 (hexadecimal)
Phone In E.164 format (+44…), in plain text or hashed with SHA-256
Android advertising ID (GAID) Unhashed

They're uploaded as a CSV or TXT file of up to 500 MB. If you hash, normalise first (email without stray spaces and in lowercase; phone in E.164): the same data written two ways produces two different hashes.

The audience then goes through several statuses until it's ready (ready). You won't see its exact size: for privacy, it's shown in ranges (under 25,000, 25,000 to 100,000…).

Three uses, two thresholds

Use Where it's set Minimum
Include: only people on the list Campaign targeting About 25,000 matches
Exclude: nobody on the list Campaign targeting No minimum (small or empty lists work)
Bid multiplier: from 0.1× to 10× Ad group About 25,000 matches

Note that matches count, not the rows you upload: only the people on your list the platform manages to match add up. And if someone is in both an included and an excluded audience, exclusions win: they won't see the ad. And if you combine inclusion and exclusion, what is left after excluding must still reach the minimum.

The big play for a small business: exclusion

25,000 matches is beyond many small businesses. Exclusion, on the other hand, has no minimum, and that's where the money is: not paying to acquire someone who is already a customer or has already signed up. For example:

Think of a training academy with 3,000 students: it would never reach the threshold to include, but it can take those 3,000 out of its acquisition campaign from day one.

Once a list passes the threshold, the multiplier lets you bid more for the people worth most to you, or less for those who matter little, without leaving them out entirely.

💡 Ninja trick: connect your exclusion list to your CRM and replace it in full every so often. That way each new customer drops out of your acquisition campaigns automatically.

How they're maintained

Operation What it's for
Add Add identifiers to the list
Remove Take out people who shouldn't be there, such as anyone who unsubscribed
Replace Upload the full snapshot and substitute the previous one
Merge Combine 2 to 64 audiences into one
Archive Retire it for good

⚠️ Pitfall: archiving can't be undone: an archived audience can't be recovered. If in doubt, take it out of your campaigns and archive it later.

GDPR: before you upload anything

This isn't legal advice, but it is what you should have sorted before the first upload:

  1. Only your own data that you have the right to use for advertising. OpenAI is clear: no data from brokers. A bought list won't do.
  2. A legal basis that covers this specific use: advertising on a third-party platform. Which one fits your case is for your adviser or data protection officer to decide.
  3. Your privacy policy should say so before you upload the list, not after.
  4. Hashing isn't anonymising: an email hashed with SHA-256 is still personal data (lesson 4 of this module).
  5. Keep the list up to date: anyone who unsubscribes or objects should also leave the audience (with Remove or Replace).

What to remember

📎 Sources and further reading

⚠️ Free training with no support. Ninja Scripts support channels (email and Telegram) are only for the use of the scripts, not for Google Ads questions or questions about this training.

Pick up here

← BeforeThe funnel ad by ad: from impression to customer, and the cost of every stepChatGPT Ads — measurement and traffic qualityRelatedWhere your ads are shown: countries, regions and postal codesAdvertising in ChatGPT: first stepsRelatedContext hints in ChatGPT Ads: what they are, how to write them and where to find them with evidenceChatGPT Ads in depth — ads, bidding and optimisationRelatedConsent and personal data in ChatGPT Ads (Spain and the EEA)ChatGPT Ads — measurement and traffic qualityRelatedWhere does your ad send people? The link that breaks most campaignsAdvertising in ChatGPT: first steps

See the full syllabus

🎓
You're reading the Ninja Academy in the open

Create your free account (no card) to save your progress, take the graded quizzes, earn the Basic level certificate and unlock part of the Intermediate and Advanced training.

Create my free account →
🥷

Subscriber feature

This option is part of Ninja Scripts’ paid subscriptions.

See the subscription →