IntegrationsChatGPT Ads

ChatGPT Ads

Activate Bullseye Lists in ChatGPT Ads Custom Audiences by exporting an OpenAI-ready hashed email file and uploading it in ChatGPT Ads Manager.

Unlike Meta Ads and Google Ads, ChatGPT Ads does not use OAuth auto-sync today - OpenAI’s public Advertiser API does not expose Audiences yet. Bullseye prepares the exact file format OpenAI requires; you upload it in Ads Manager.

Overview

  • Export List audiences as a UTF-8 CSV with email_sha256 hashes
  • Upload the file in ChatGPT Ads Manager → Custom Audiences
  • Include or exclude the audience on campaigns; optionally set ad-group bid multipliers
  • No plaintext emails leave Bullseye in this export

Prerequisites

  • Access to ChatGPT Ads Manager
  • Owner or admin access to your Bullseye organization
  • A Bullseye List with enriched emails (Lists are built from Search and typically synced once via Meta or Google Ads so contacts are enriched)

Setup

  1. In Bullseye, go to Integrations → Ad Targeting
  2. Find ChatGPT Ads and click Export audience
  3. Pick a List (or open Lists and use Export for ChatGPT Ads on a row)
  4. Click Download OpenAI audience file
  5. In ChatGPT Ads Manager: Settings → Audiences → Create custom audience
  6. Choose SHA-256 hashed email address
  7. Upload the downloaded file → Create
  8. Wait for ProcessingReady (or Too small / Failed)
  9. In a campaign, Include and/or Exclude the audience; optionally set bid multipliers at the ad group

File format

RuleDetail
EncodingUTF-8 CSV
Headeremail_sha256 (required)
ValuesOne 64-character lowercase hex SHA-256 digest per row
DedupingBullseye removes duplicate emails before hashing
PrivacyPlaintext emails are never included in this file

OpenAI also supports hashed phone uploads (phone_number_sha256). Bullseye’s first release exports hashed email only.

See OpenAI Help: Set up Custom Audiences.

Using the audience

Once the audience status is Ready:

  • Add it as an include or exclude on campaigns
  • Optionally apply bid multipliers at the ad-group level
  • Match rate is not 100% - uploaded rows ≠ matched ChatGPT users

Limits and refresh

TopicDetail
Minimum sizeAbout 25,000 matched users before the audience can be used (OpenAI recommends ≥ 100k)
Max uploadUp to ~5M identifiers / ~500MB per OpenAI
ImmutableCustom Audiences cannot be updated in place
RefreshRe-export from Bullseye → create a new audience → archive the old one

Smaller lists can still be exported (e.g. suppression seeds or lists you will grow). They may show as Too small after matching.

Privacy

Exports contain only hashed first-party identifiers prepared for OpenAI’s Custom Audience upload. See Data & Privacy for how Bullseye handles visitor data.

FAQ

How is this different from Meta / Google?

Meta and Google connect via OAuth and auto-sync Lists as Custom Audiences / Customer Match. ChatGPT Ads is export → upload until OpenAI ships an Audiences API.

Why is my audience Too small?

OpenAI requires ~25k matched ChatGPT users. Your Bullseye list size is an upper bound before matching. Grow the List or combine audiences.

Why don’t I see plaintext emails in the CSV?

OpenAI requires SHA-256 hashed emails. Bullseye hashes them for you so the download is upload-ready and safer to handle.

Can I auto-sync later?

When OpenAI adds Audiences to the Advertiser API, Bullseye can add a native Connect / Sync path. CSV export will remain as a fallback.

API export

Programmatic export uses GET /lists/{id}/chatgpt-ads-export?organizationId=.... See Lists API.