How to Set Up a ChatGPT Ads Campaign (Step by Step)
ChatGPT Ads launched self-serve in May 2026. Getting a campaign live requires seven distinct steps: creating and verifying an advertiser account, choosing an objective, configuring targeting, writing the chat card, installing conversion tracking, running a pre-launch QA pass, and setting up a weekly optimization cadence. This guide walks through each one.
What do I need before I start?
Before touching Ads Manager, confirm you have all four of these:
- A US-registered business with a verifiable EIN and US business address. This is a hard gate — the platform does not currently accept EU-only entities. If you are operating from outside the US, read the US company guide first.
- An eligible business category. At self-serve launch, eligible categories include household and consumer goods, local services, travel, entertainment, digital products, and education. Healthcare, financial services, legal services, gambling, political content, alcohol, tobacco, and dating/adult are blocked. Confirm the current list at openai.com/policies/ad-policies/.
- A landing page with a clearly defined conversion action (purchase, lead form, sign-up, booking).
- Developer access to install the OAIQ JavaScript pixel and wire up the Conversions API server-side. Tracking must be live on day one.
Step 1 — Create and verify the advertiser account
Go to ads.openai.com and create an advertiser account. This step must be completed by the business owner directly — the platform does not allow agencies to create accounts on behalf of clients.
During signup, OpenAI collects your EIN, US business address, and web presence for manual review. Verification typically takes several business days; no official SLA is published. Do not plan for a same-week launch.
While you wait for verification:
- Confirm a payment method is live in billing settings (minimum budget: $1 lifetime; no ongoing minimum spend).
- Draft creative variants and finalize your measurement plan so you can launch the moment verification clears.
- If you want an agency to manage the campaign, invite them once you are inside Ads Manager via Global Admin Console → Members, granting the Ads Admin role.
Step 2 — Choose your objective
ChatGPT Ads offers two campaign objectives:
| Goal | Objective | Pricing | |---|---|---| | Brand awareness, top-of-funnel reach | Reach | CPM — observed range $25–$45; some as low as $15 | | Traffic, leads, conversions | Clicks | CPC — recommended starting max bid $3–$5; realized range $2.50–$8 |
CPC bidding launched May 5, 2026. CPA bidding is described as "in motion" by OpenAI but has no confirmed timeline — do not plan around it.
Rule of thumb: if you have a clear conversion event (purchase, lead, sign-up), choose Clicks. If you are building brand awareness in a new market, choose Reach.
Step 3 — Set up targeting
Self-serve targeting has exactly two controls:
1. Country targeting. Include or exclude countries using ISO codes. As of 2026-05-31, confirmed live markets are the US (since February 9), Canada, Australia, and New Zealand (live since approximately April 16–17). The UK, Brazil, Japan, South Korea, and Mexico were announced May 7 and are rolling out — verify live status per market in the console before adding them. The EU is not available yet.
2. Context hints. Add 5–10 tightly clustered strings describing the type of ChatGPT conversation where your ad might be relevant. For example, a project-management SaaS might use ["team task management", "project deadlines", "team productivity", "work collaboration", "task tracking"]. These are broad thematic signals to OpenAI's delivery model — not keyword bidding. Write them around a single intent or persona per ad group.
What does not exist: demographics, age/gender targeting, lookalikes, retargeting, device targeting, or placement targeting. Do not plan a campaign structure that relies on audience segmentation — it is not available.
Step 4 — Write the chat card
The chat_card is the only self-serve ad format. Each card renders below a ChatGPT answer, showing your advertiser name, favicon (pulled automatically from account branding), title, body copy, image, and a link.
Character targets:
| Field | Write to | API ceiling | |---|---|---| | Title | 16–24 chars | 50 chars | | Body | 32–48 chars | 100 chars |
The API accepts up to 50/100 characters, but agency field guides consistently report that the Ads Manager console enforces tighter render limits — copy beyond ~24/~48 chars is likely truncated in the served card. Verify the exact cutoffs in the live console before launch.
How do I write the ad?
The card appears immediately after the user has received an AI answer — they were not searching for you. Write like a relevant next step, not a broadcast ad.
Copy principles:
- Lead the title with the offer or a strong verb, not the brand name (the advertiser name already shows above the card).
- Put a specific number or concrete benefit in the body ("Free 14-day trial", "Save 20%", "Ships in 24 hrs").
- One CTA verb per card — "Start free", "Get your quote", "Shop now" — not two competing actions.
- Match the context hint intent: someone who just asked about team deadlines is in a different mindset than someone who asked about productivity tools in general.
Example (B2B SaaS):
Title (20/24): Ship Projects Faster
Body (47/48): Teams cut delivery time 40%. Free 14-day trial.
Required fields: title, body, target_url (include UTM parameters), file_id (returned after uploading your image via POST /upload). Image: minimum 256×256 px, square format recommended — verify accepted formats and size limits in the console before uploading.
Prepare 3–5 creative variants per campaign at launch. Creative testing is the primary optimization lever on this platform.
Ad creative review typically takes up to 24 hours after submission.
Step 5 — Set up measurement
ChatGPT Ads uses a two-layer measurement stack. Both layers are required for reliable attribution.
OAIQ JavaScript pixel
Install the OAIQ pixel site-wide by pasting the load snippet (available inside Ads Manager or at developers.openai.com/ads/measurement-pixel) into the <head> of every page. Initialize it with:
oaiq("init", { pixelId: "<YOUR-PIXEL-ID>" });
The pixel automatically captures the oppref click token from the landing-page URL on ad click and stores it in a first-party __oppref cookie with a 30-day TTL (720 hours). Fire conversion events with:
oaiq("track", "lead_created", { event_id: "<unique-id>" });
Standard event names include: page_viewed, lead_created, order_created, registration_completed, appointment_scheduled, subscription_created, trial_started, checkout_started, items_added, contents_viewed.
Conversions API (server-side)
Send a matching server-side event for every conversion:
POST https://bzr.openai.com/v1/events?pid=<PIXEL-ID>
Authorization: Bearer <API-KEY-FROM-ADS-MANAGER>
Critical: the Conversions API does not auto-capture oppref. Your server must read the __oppref cookie from the user's browser and include it in every server event payload.
Deduplication: generate a unique event_id per conversion action and send the same ID in both the pixel call and the server call. OpenAI deduplicates on Pixel ID + event type + event_id. For custom events, custom_event_name must match on both sides.
Before passing email or phone in the optional user object, verify the hashing requirement (SHA-256 or plain) at developers.openai.com/ads/conversions-api — do not send unhashed PII until confirmed.
Validate before launch: fire test events and confirm they appear in Ads Manager. Allow for up to approximately 7 hours of reporting lag (unverified — check in console).
Step 6 — Launch and QA
Run through this checklist before enabling the campaign:
- [ ] Chat card preview in Ads Manager shows the correct advertiser name, favicon, title, body, image, and link.
- [ ]
target_urlresolves without redirect errors; UTM parameters are present. - [ ] OAIQ pixel fires on the landing page (check browser console or pixel debugger).
- [ ] Conversions API endpoint returns 200 on test events.
- [ ] Conversion events appear in Ads Manager (allow up to ~7-hour lag).
- [ ] Creative review status is approved (not
in_revieworrejected). - [ ] Account verification is complete and payment method is confirmed live.
- [ ] Target countries are confirmed live-serving markets.
- [ ] Objective matches campaign goal; bid is within expected range.
Step 7 — Optimize weekly
Review campaigns every week for the first month. The optimization levers available in self-serve are limited — focus entirely on these four:
| Lever | Action | |---|---| | Creative | Pause variants with CTR below account average after ≥500 impressions. Replace with new variants based on the top performer. | | Context hints | Remove hints not driving relevant clicks. Add tighter, more specific hints around converting intent signals. | | Bid | If spend is underpacing, raise max bid by 10–20%. If CPC is above target, lower bid. | | Country | Pause countries absorbing budget with no conversions. Add newly confirmed live-serving markets as they become available. |
Early-pilot benchmarks (directional only, not guarantees): CTR averages around 0.68% overall, with top performers reaching 1% or higher. CPM has settled to $25–$45 from an initial $60 at launch. CPC ranges from $2.50–$8 depending on category.
Audience note: ads serve only to Free and ChatGPT Go ($8/mo) users. Plus, Pro, Business, Enterprise, and Edu accounts never see ads. Logged-out US users also see ads, but only all-ages-appropriate content. Ads are not shown to users under 18.
New to ChatGPT Ads? Read What Are ChatGPT Ads? for an overview of the format and how it compares to search and social.