Log in / Create free account🌐 ES☀️

Advanced training · Module 17 — ChatGPT Ads in depth — context hints, measurement, bidding and automation

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

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

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 or, via the API, with up to 10,000 identifiers per request. 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

← BeforeReporting and diagnostics in ChatGPT Ads: what you can measure, when the data arrives and why your ad isn't showingChatGPT Ads in depth — context hints, measurement, bidding and automationAfter →Optimising ChatGPT Ads without search terms: experiments, a phased calendar and a weekly routineChatGPT Ads in depth — context hints, measurement, bidding and automationRelatedContext hints in ChatGPT Ads: what they are, how to write them and where to find them with evidenceChatGPT Ads in depth — context hints, measurement, bidding and automationRelatedMeasuring ChatGPT Ads from day one: pixel, conversions and how to read the reportAdvertising in ChatGPT: first stepsRelatedChatGPT Ads step by step: account sign-up, brand review and your first campaignAdvertising in ChatGPT: first stepsRelatedDisplay in basic terms: banners, audiences and remarketing (and where the money goes)The other campaign types — an introductory map

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 the Ninja Scripts Suite subscription.

See the subscription →