← Back to glossary

Customer Identifiers

Customer identifiers are the first-party data points, such as email addresses, phone numbers, and their SHA-256 hashed versions, that advertisers upload to match their existing customers to users of an ad platform like ChatGPT. They differ from context signals like conversation topics: identifiers point to specific known people from your own records, while context hints only describe where an ad might fit.

If you run ChatGPT Ads, customer identifiers decide whether you can reach your actual customer list or only strangers the system thinks are relevant. Upload too few valid identifiers and your audience never clears the minimum match size, so your retention and win-back campaigns simply cannot run.

What are customer identifiers?

In the ChatGPT Ads system, a customer identifier is any single matching key, one email address or phone number, that OpenAI checks against its signed-in users to decide whether a known person belongs in an advertiser's custom audience. Each populated identifier cell counts as its own matching candidate, and OpenAI counts a matched person once even when several identifiers point to the same user.

OpenAI's Ads documentation accepts four identifier types: a raw email, a phone number in E.164 format, and the 64-character SHA-256 hashed version of each. You prepare them in a single UTF-8 CSV or TXT file that holds one identifier type and up to 5,000,000 identifiers, then upload it so the platform can hash, normalize, and match it internally. Advertisers never see which individual people matched; the system returns only privacy-preserving count ranges.

Customer identifiers sit alongside context hints, the conversational signals that describe topics where an ad fits, and they shape who sees a ChatGPT ad. AirOps treats AI ads as one of the five channels it covers, giving you the intelligence to plan which audiences to build and measure them against your other channels.

How customer identifiers work

Customer identifiers move through a fixed pipeline before they can target a single ad: you supply contact data, OpenAI matches it to its users, and a large enough match becomes a usable audience.

  1. Collect: Pull first-party emails and phone numbers from your CRM, keeping only contacts you have the right to use.

  2. Format: Put one identifier type in a UTF-8 CSV or TXT file, using E.164 phone numbers or 64-character SHA-256 digests.

  3. Upload: Send the file to OpenAI's Ads API with the purpose set to custom audience, and save the returned file ID.

  4. Match: OpenAI normalizes and hashes the identifiers, compares them against its signed-in users, and reports the result as a privacy-preserving range.

  5. Activate: Once the audience reaches ready status, apply it to a campaign to include or exclude those users, or adjust bids for them.

A finished audience tells you only roughly how many of your customers OpenAI could match, shown as a privacy-preserving band instead of an exact count. It will not tell you which people matched, so you cannot target one named person.

The importance of Customer Identifiers for marketers

Customer identifiers decide whether ChatGPT Ads can serve your real pipeline or just broad prospecting. For a CMO weighing a budget line in a new channel, that difference sets whether paid spend compounds existing customer relationships or starts cold every time.

  • Reach customers you already have: Matched audiences let you re-engage current customers and recent buyers inside ChatGPT, the group most likely to drive repeat revenue, so paid spend builds on relationships you already own.

  • Clear the scale bar or sit out: OpenAI generally requires about 25,000 matched users before an audience can run, so a small or poorly maintained list fails the match test and your campaign cannot launch at all.

  • Control waste with exclusions: You can exclude existing customers from acquisition campaigns, which stops you from paying to show ChatGPT ads to people who already bought, freeing budget for genuinely new prospects.

Marketer use cases

  1. Growth marketers use customer identifiers to upload a high-value customer list and raise bids for those users across your ChatGPT ad campaigns.

  2. Demand gen leads use customer identifiers to match their CRM contacts into a custom audience for account-based retargeting inside ChatGPT.

  3. Content strategists use customer identifiers to exclude recent buyers so paid ChatGPT placements focus budget on net-new prospects.

Key concepts

Match rate

This is the share of your uploaded identifiers that OpenAI can tie to an actual signed-in ChatGPT user, and because invalid, duplicate, and unmatched rows all drop out, it decides whether your list ever reaches a usable audience size.

Hashing and normalization

Converting raw emails and phone numbers into consistent SHA-256 strings in a standard format means the same customer matches whether you upload plain-text contacts or pre-hashed values, and OpenAI never has to store your raw list to do it.

First-party data rights

These are the consents and permissions that let you use a customer's contact details for advertising, and OpenAI requires you to confirm them and avoid broker-sourced data before any identifier is uploaded to the ad platform.

Benefits

  • Reach known customers directly inside ChatGPT, a surface built around conversational intent.

  • Match customers using raw or SHA-256 hashed emails and phone numbers, so you choose your privacy posture.

  • Exclude existing buyers from prospecting campaigns to stop wasted ad spend.

  • Raise or lower bids for high-value segments with per-audience bid multipliers.

  • Keep customer data private, since OpenAI returns only aggregate match ranges and never exposes individuals.

Customer Identifiers best practices

  • Upload more raw contacts than you need, because invalid and unmatched rows drop out before you hit the match minimum.

  • Standardize phone numbers to E.164 and lowercase emails before upload, so more of your list matches.

  • Hash emails and phone numbers with SHA-256 yourself when policy requires it, since the match works the same on hashed data.

  • Wait for ready status before attaching an audience, because the privacy-safe count ranges are the only signal that an audience is usable.

  • Refresh audiences on a schedule by replacing the file, since customer lists decay as people churn and change contact details.

  • Confirm you hold advertising rights to every contact, because OpenAI prohibits broker-sourced data and expects documented consent.

Avoid treating a custom audience as a live segment you can edit freely. You update membership through deliberate add, remove, or replace operations, and a careless replace can shrink a working audience below the match minimum and pull your campaign offline.

Tools and technologies

  • AirOps: gives you the intelligence to see where your brand stands across AI search and to plan AI ad audiences and measurement as one of the five channels it covers, so paid matching works alongside your earned content.

  • ChatGPT Ads Manager: OpenAI's native console and Ads API where you upload identifier files, build custom audiences, and apply them to campaigns.

  • Google Ads Customer Match: the established first-party audience tool many teams already use, useful as a model for preparing and hashing the same customer lists for ChatGPT.

Getting started with Customer Identifiers

  1. Audit your list: Pull every first-party email and phone number you already hold from your CRM and confirm you have the rights to use each one for advertising. This takes no budget and you can start today.

  2. Clean and format: Normalize phone numbers to E.164, lowercase emails, and remove duplicates and invalid rows, then split the file so it holds a single identifier type.

  3. Decide on hashing: Choose whether to upload raw contacts or SHA-256 hashed values based on your privacy and legal requirements, and apply the same choice across the whole file.

  4. Upload and match: Create an Ads API key, upload the CSV or TXT file as a custom audience, and wait for the audience to reach ready status.

  5. Activate and measure: Attach the ready audience to a campaign as an inclusion, exclusion, or bid adjustment, then watch match ranges and conversions to judge whether the audience is worth scaling.

Key takeaways

  • Customer identifiers are first-party emails and phone numbers that advertisers upload to match known customers to ChatGPT users for ad targeting.

  • Matching happens inside OpenAI, which normalizes and hashes the data and returns only privacy-safe count ranges, never a named list.

  • An audience must clear a sizeable minimum match before it can target or adjust bids, so small or stale lists often cannot be used.

  • You never see which individuals matched, and a careless membership replace can drop an audience below the usable threshold.

  • The leverage is list quality: clean, well-permissioned, regularly refreshed first-party data is what turns identifiers into reach.

Frequently asked questions about customer identifiers

How are customer identifiers different from context hints in ChatGPT Ads?

Customer identifiers and context hints solve two different targeting problems. Customer identifiers are deterministic: they match specific people from your own records, such as a customer's email or phone number, to their ChatGPT account, so you reach individuals you already know. Context hints are probabilistic descriptions of conversations or topics where your ad might fit, so they reach people by live intent without any prior relationship. One starts from your CRM and works backward to the person; the other starts from the conversation and works outward to an audience. In practice you often combine them: identifiers define a known-customer audience for retention or suppression, while context hints extend reach to new prospects discussing relevant subjects. The key operational difference is control. You decide exactly who sits in a custom audience by choosing which identifiers to upload, but you only influence, never dictate, which conversations trigger a context-hint match. Treat identifiers as your precision tool and context hints as your discovery tool.

How often should I refresh my customer identifiers for ChatGPT Ads?

Refresh your customer identifiers on a regular cadence, and tie that cadence to how fast your customer data changes instead of a fixed calendar rule. For most businesses, a monthly or quarterly refresh keeps audiences accurate without creating needless churn. Every refresh matters because contact details decay: people change jobs and switch phone numbers, so an untouched list slowly loses match rate and shrinks below the size you need. When you refresh, replace the audience file so stale contacts drop out, and re-confirm that you still hold advertising rights for every contact. Tie the schedule to real events too, and reload after a big acquisition push or a CRM migration, since each changes which customers you can match. If a campaign depends on reaching recent buyers, refresh often so new customers enter the audience quickly. The goal is a list that reflects who your customers are today.

Why does my customer identifiers match rate vary so much between uploads?

Match rate varies because it depends on how many of your contacts are also signed-in ChatGPT users with the same identifier on file, and that overlap shifts with every list you upload. A consumer brand with millions of email addresses will usually match a larger share than a niche B2B vendor whose contacts use work addresses that differ from their personal ChatGPT logins. Data hygiene drives much of the swing too, because typos and duplicate rows fail to match, so a messy export performs far worse than a cleaned one. The identifier type matters as well, since a person may have signed up with a phone number but not the email you hold. Seasonality and list source play a role too, because a list of recent buyers tends to match better than a long-dormant newsletter file. To stabilize the number, standardize formatting before every upload and lean on the identifier types your customers most likely used with ChatGPT.

Can I directly control which people my customer identifiers reach in ChatGPT?

You control the input completely but the output only partly, so the honest answer is a qualified no. You decide exactly which contacts go into a custom audience by choosing which identifiers to upload, and you decide whether that audience is used for inclusion, exclusion, or a bid adjustment. What you cannot do is pick individual people. OpenAI matches your identifiers internally and never shows you who matched, reporting results only as privacy-safe count ranges, so you cannot confirm that one specific customer saw your ad. You also cannot force delivery to a matched user, because the ad system still decides placement based on the live conversation and other signals. The practical way to get more control is upstream: improve the quality and segmentation of the list you upload, build separate audiences for different customer tiers, and use exclusions to keep the wrong people out. Control the list precisely, and accept that delivery stays probabilistic.

What is a good match rate for customer identifiers in ChatGPT Ads?

A good match rate is any rate that clears the minimum usable audience size for your use case, because the absolute percentage matters less than whether you end up with enough matched users to run. OpenAI does not publish an official benchmark, and match rates swing widely by audience type, so chasing a universal number is the wrong goal. As a working guide, a clean list of engaged, recent customers from a consumer brand often matches a healthy share, while a B2B list built on work email addresses may match a much smaller fraction. Judge your result against two practical tests. First, did the audience reach ready status and a usable size band? Second, did it get there without you having to upload wildly more contacts than you expected? If matching falls short, the fix is usually better data quality and identifier choice instead of a bigger raw list. Track your own match ranges over time and treat your first successful audience as the baseline you then try to beat.