Save 30% on your first month. Redeem

How to Advertise on ChatGPT: The OpenAI Ads Manager Walkthrough

Walkthrough Tomas Kolafa Updated August 24, 2026 8 min read
TL;DR

Six steps: verify your business in Ads Manager, create a campaign with a budget and a bidding model, create an ad group with your context hints and a maximum bid, upload a creative, write a 50-character title, and submit for review. Reviews usually clear in a few minutes.

The order matters more than it does on Google, because two of those choices cannot be undone afterwards. This walks through each step with the fields you will actually be asked for, and ends with the four things that caught me out the first time.

Before you start

Three things are worth checking before you create anything, because each one is a hard stop.

  • Your country. Ads Manager is available to advertisers in Australia, Canada, Japan, Korea, New Zealand, the United Kingdom and the United States. Outside those you can register interest, and that's all.
  • Your category. The allowed set is deliberately narrow right now, and healthcare, financial services and legal services are gated behind manual approval. Check the restricted list before you build anything.
  • Your conversion tracking. ChatGPT Ads has no search terms report, so you cannot diagnose waste at query level. Outcome measurement is the only measurement you get. If your conversion tracking isn't already trustworthy, fix it first.

Step 1 — Get verified

Sign up at Ads Manager and go through business verification. OpenAI reviews advertisers as well as ads: it checks that your business is real, that it fits an allowed policy category, and that it doesn't trip risk signals for fraud or deceptive behaviour.

Restricted categories get an extra layer here — OpenAI says they may require enhanced advertiser verification or manual review on top of the standard checks. Budget time for it rather than a launch date.

Step 2 — Create the campaign

The campaign holds three things: money, dates and geography.

FieldWhat it doesNotes
nameInternal label3–1,000 characters. Never shown to users.
budget.lifetime_spend_limit_microsTotal the campaign may ever spendMicros — millionths of a dollar. Minimum accepted is 1,000,000, i.e. $1.
bidding_typeimpressions, clicks or conversionsDefaults to impressions. Cannot be changed later.
start_time / end_timeFlight datesThere is no day-of-week or hour scheduling beyond this.
targeting.locations.includeCountry, region or DMAThe only targeting control on a campaign. Omit it and you run everywhere available.

Two things to get right here.

Micros trip everybody once. A budget is expressed in millionths of your account currency, so a $500 lifetime limit is 500000000. Miss three zeros and you've built a fifty-cent campaign, or a fifty-thousand-dollar one.

Pick the bidding model deliberately. clicks gives you cost-per-click buying, impressions gives you CPM, and conversions is the conversion-optimized option OpenAI added on June 16, 2026 — it optimizes toward a conversion event while still billing you per click. If you have working conversion tracking and enough volume, that last one is usually where you want to end up. If you don't, start on clicks.

You cannot change bidding_type after the campaign exists. Not edit it, not migrate it. Choose wrong and you rebuild the campaign and everything under it. This is the single most expensive five seconds in the whole setup.

Step 3 — Create the ad group

The ad group is where targeting and bidding actually live.

FieldWhat it does
context_hintsFree-text topics and phrases describing when your product is useful. Up to 2,000 of them.
exclusion_hintsThe same thing in reverse — the closest analogue to a negative keyword list.
bidding_config.billing_event_typeimpression for CPM campaigns, click for click and conversion campaigns.
bidding_config.max_bid_microsYour ceiling, per event. For conversion campaigns this is the target cost per acquisition, even though billing is per click.

OpenAI recommends starting at a maximum bid of three to five dollars per click, and defaults impression buying to a sixty-dollar maximum per thousand. Both are ceilings you set, not prices you pay — the auction is second-price, so you pay what it takes to beat the advertiser below you.

Now, about those hints. They look like a keyword list and they are not one:

These hints help guide ad matching, but they are not exact-match keywords and do not guarantee delivery in specific conversations.

So what does that mean for you? Write them as descriptions of situations, not as search queries. "Comparing rooftop cargo boxes for a family road trip" is a better hint than "cargo box". The system reads your title, your body copy and your landing page alongside the hints when it decides whether you're relevant, so the hints are one input among several — not a switch.

Use exclusion_hints from day one. It's blunt, and it's the only negative control you have.

Step 4 — Upload the creative

Upload your image and keep the returned file ID. You'll attach it to the ad in the next step. A product-feed campaign is the exception: those pull the image and destination from the feed item instead.

Step 5 — Write the ad

This is where most people discover the format is tighter than they planned for.

FieldLimitFor comparison, a Google RSA
creative.title3–50 characters15 headlines × 30 characters
creative.body100 characters max4 descriptions × 90 characters
creative.target_urlLanding page
creative.file_idThe uploaded image

One title. One body. No machine to rotate fifteen headlines and find the winner for you.

I found this genuinely changed how I wrote. On Google you can hedge — throw in a brand headline, a feature headline, a price headline, and let the system sort it out. Here you get one sentence to say what you sell and why it's worth a click, and the ad has to earn relevance on its own merits because relevance is weighted in the auction. Write the offer. Cut the brand adjectives. Then cut it again to fit.

Remember the landing page is reviewed too. OpenAI's standards apply end to end, and an ad whose destination introduces something the creative didn't depict gets rejected.

Step 6 — Submit and watch the review

Reviews typically take a few minutes. Then comes the step that quietly wastes the most time.

An ad serves only when all four of these are true: the ad is enabled, its ad group is enabled, its campaign is enabled, and the ad has passed review. Miss any one and you have an "active" ad spending nothing.

The field to watch is review_status, which reads in_review, rejected or approved. When something isn't spending, check that before you touch bids. I have watched people raise a maximum bid three times on an ad that was sitting in review the whole while.

Build the campaign and ad group paused, get the ad approved, then enable everything at once. It costs you a few minutes and removes the whole class of "is it live or not" confusion.

Wire up measurement before you enable anything

Reporting covers impressions, clicks, spend, click-through rate, average cost per click, average cost per thousand impressions, and conversions. That's the whole list — there is no query-level view.

Conversions arrive one of two ways: a measurement pixel on your site, or a server-to-server conversions application programming interface, the same shape as Meta's. Set one up before you spend, because retrofitting attribution to a campaign that already ran means throwing the first week away.

Static tracking parameters survive the click, so tag your landing page URLs and the traffic shows up in the analytics you already run. That's the cheapest sanity check available: if Ads Manager says 40 clicks and your analytics says 3 sessions, something is wrong with the destination, not the campaign.

The four things that caught me out

  1. The bidding model is permanent. Decided at creation, not editable. Rebuild is the only fix.
  2. Four switches, not one. Ad, ad group, campaign, review status. "Active" means less here than you'd assume.
  3. 50 characters. The headline you brought from Google will not fit, and there is only one of it.
  4. Hints are not keywords. You are describing when you're relevant, not instructing a matcher. Anyone whose Google discipline is built on exact match and tight negatives has to unlearn something here.

That fourth one is the one I'd underline. The most expensive account I ever inherited was a business-to-business fintech running on autopilot: right keywords, wrong match modifiers, consumer traffic nobody had excluded, roughly eighty per cent of the budget gone. The fix lived in the search terms report. On ChatGPT Ads there is no search terms report — so the answer is to cap the budget, watch conversions rather than clicks, and never let it run unattended.

FAQ

Which countries can run ChatGPT Ads? Ads Manager is available to advertisers in Australia, Canada, Japan, Korea, New Zealand, the United Kingdom and the United States. Outside those you can register interest, and that is all.

How long does the ad review take? Usually a few minutes.

Which choices cannot be undone later? The bidding model is decided at campaign creation and is not editable. Rebuilding the campaign is the only fix, which is why the order of these steps matters more here than it does on Google.

Why is my ad active but not spending? There are four switches, not one: the ad, the ad group, the campaign, and the review status. An ad only serves when all of them are clear, so "active" means less here than you would assume.

Will my Google headline fit? Probably not. The title limit is 50 characters, and there is only one of it.

Are context hints the same as keywords? No. Hints describe when you are relevant; they do not instruct a matcher. Anyone whose Google discipline is built on exact match and tight negatives has something to unlearn here.

What to do next

Start capped and deliberate: one campaign, one ad group, tight hints, exclusions in place from the first day, and a number written down that would make you switch it off.

For what a click has actually cost across the accounts we run, by vertical, see what ChatGPT Ads actually cost. For how the channel compares to the one you already run, see ChatGPT Ads vs Google Ads. For using ChatGPT to build the Google campaigns rather than to place the ads, see ten ChatGPT prompts for Google Ads. The overview lives on ChatGPT Ads for small business.

Or skip the setup entirely

Connect your OpenAI Ads account and Bytown builds the campaign, ad groups and ads for you — alongside Google, Meta and LinkedIn. Every change that touches spend waits for your approval.

Generate a free campaign Rather have it run for you? Talk to a marketer.
Tomas Kolafa
Tomas Kolafa
Founder, Bytown

14+ years running paid acquisition, managing $85M+ in ad budgets — co-founded the ad agency Growth Media, led marketing ($0–50M) at RVezy.com. I’ve spent the budgets, run the campaigns, and read the reports.