The first thing you notice inside OpenAI's Ads Manager is how much it looks like something you've already used. Campaign, ad group, ad. Objective, location, daily budget. If you've spent any time in Google Ads, your hands know where to go before your brain catches up.
That familiarity is the most misleading thing about it.
We built our first ChatGPT Ads campaign this summer for a B2B SaaS client in the SMS marketing space. It was an awareness push across ten industry segments, running to the US and Canada. The build itself went quickly, because the keyword research was already sitting there waiting to be used. It's everything after the build that turned out to be the hard part.
You can construct a ChatGPT Ads campaign using almost everything you know about paid search. You just can't optimize one that way yet.
Here's where that plays out.
The structure is familiar. The targeting mechanic isn't.
Campaigns hold ad groups. Ad groups hold ads. So far, so Google.
The difference lives at the ad group level. Instead of keywords, you write context hints: plain-language descriptions of the conversations where your product would genuinely be useful. OpenAI's documentation is refreshingly blunt about what they are and aren't. Hints describe the conversations, topics, or keywords where their products or services may be relevant, and they are not exact-match keywords and do not guarantee delivery in specific conversations.
Read that second half again. There's no match type. There's no negative list. You are describing a situation and asking a model to decide when your ad is helpful.
We started from keyword research. One segment alone carried nine near-identical variations of mass texting for nonprofits. In ChatGPT Ads, all nine of them collapsed into a single hint that read something like this:
Organizations comparing nonprofit text messaging platforms and SMS marketing tools. Users looking for affordable, easy-to-use software to improve donor engagement, increase event attendance, boost fundraising efforts, automate communications, and measure campaign performance.

Same research, completely different output. The keywords stopped being used for direct targeting and became source material. That's the reframe, and it's most of the job: your keyword list still tells you what people want, it just no longer tells the platform anything.
The mental shift that actually helped: stop asking what words do I want to match and start asking what is someone working on right before my product becomes relevant? A nonprofit director doesn't type "mass texting for nonprofits" into ChatGPT. She says her donor emails aren't getting opened and asks what to do about it.
The audience is narrower than the headline numbers suggest
Ads in ChatGPT aren't shown to Plus, Pro, or Business subscribers, or to accounts the system identifies as under 18. Your reach is the free and Go tiers.
For consumer brands, that's a large and perfectly good audience. For B2B, it deserves a second look. A meaningful chunk of the buying committee you're trying to reach is sitting on a company-provisioned Business seat, which means they are structurally unable to see your ad. That doesn't make ChatGPT Ads a bad B2B channel. Plenty of decision-makers are on personal free accounts, and plenty of research happens before procurement gets involved. It does mean the total addressable audience is not "everyone who uses ChatGPT," and pretending otherwise will make your forecasts wrong.
The creative is very, very small
Fifty characters for the headline. One hundred for the description. A square image, minimum 256 x 256. That's the whole ad.
It's tighter than it sounds, because ads can truncate well before those caps depending on placement. In practice, we wrote to about half the limit and treated anything past that as a bonus. The ads that felt best were the ones that stated a specific tension in plain words, like School Emails? Only 1 in 5 Parents Opens Them, rather than the ones that tried to describe a product.
A few things we'd repeat:
- Lead with the problem, not the category. "Cut No-Shows by Up to 90%" does more work than "SMS Marketing Platform."
- Name the person. Starting a description with "Hotel GMs:" or "Property managers:" earned its characters. The reader self-selects instantly.
- Skip detailed imagery. At this scale, small text and fine detail in the image disappear entirely.
- Don't repeat your hint in your copy. The hint's job is to add context the ad doesn't already give. If your headline says "SMS marketing," the hint shouldn't.
Here's the part we can't see yet
This is the real gap, and it's worth being direct about.
You can segment reporting by device and country. You cannot see performance by context hint.
Think about what that removes. In Google Ads, the search terms report is how you close the loop. You learn what actually triggered your ad, you prune, you expand, you get smarter every week. In ChatGPT Ads, you write eight descriptions of eight conversations, the campaign spends, and the platform tells you how many clicks you got in aggregate. Which description earned them is, right now, your guess.
The metrics themselves are reasonable for a beta: impressions, clicks, spend, CTR, average CPC, average CPM, and conversions, available at campaign, ad group, and ad level. Pixel and Conversions API measurement both exist. But there's lag to plan around. Attributed conversions can take 24 to 48 hours to appear, and the view-through window is fixed at one day.

There's also no published guidance on the questions you most want answered. OpenAI hasn't documented a maximum number of context hints, a character ceiling for them, or whether narrower hints outperform broader ones. There's plenty of advice circulating. Three to eight hints per ad group, one to three sentences each, is the rule of thumb we've been working from. But that's practitioner consensus, not official guidance, and I'd rather label it honestly than dress it up as documented best practice.
What we changed because of it
Since the platform can't tell us which hint worked, we built the campaign so our own analytics could.
One intent per ad group, strictly. Not one industry. One need. If "appointment reminders" and "flash promotions" both live in a healthcare ad group, no result from that ad group means anything.
Every ad group gets its own landing page and its own UTM. The part that matters is pushing the ad group's theme into utm_content, so every click lands already labeled with the intent it came from. That one parameter does more heavy lifting than anything the platform reports back. Your site analytics becomes the segmentation layer, because the platform isn't there yet.
Hints are hypotheses, and you write them down as such. Before launch, we noted what we expected each hint to reach. When behavior on the landing page didn't match, that was a signal. Not clean attribution, but directionally useful, which is what a beta gives you.
Budget it like a test, not a channel. This is money spent to learn how a new surface behaves. We'd rather find out now, at a small scale, than in a year when the auction is crowded and everyone's figured it out.
An honest caveat
We've been running these for weeks, not quarters. I'm not going to tell you what ChatGPT Ads CPCs "should" be, or hand you a conversion rate benchmark, because I don't have enough of my own data to add a better number to the pile. We’ll have that answer in a few months.
What I'm reasonably confident about is the shape of the platform. The creative constraints are real. The audience exclusions are real. The reporting gap is real, and it's the one that will decide whether this becomes a channel you can scale or a line item you defend every quarter.
What I'm not confident about is any of it staying true. Conversion bidding, geo exclusions, and bulk tools have all landed since the self-serve beta opened in May. The list of things we can't see is shorter than it was four months ago, and it'll be shorter again by the time you read this.
So: build it with a paid search mindset. Measure it like an analytics pro. And write everything down, because the version of this platform you're learning today isn't the one you'll be running next year.
That's not a reason to sit it out. It's just the price of being early.