Guide

How ads in ChatGPT differ from search and social ads

Key facts
  • No keywords and no bids on queries: ad groups carry up to 2,000 free-text context hints, matched by the platform to the meaning of a conversation.
  • Two creative formats: chat cards (title 3 to 50 characters, body up to 100, square image) and product ads built from a feed.
  • Targeting is locations, platforms and, outside the EEA and Switzerland, optional custom audiences. No audience is required.
  • Billing per impression or per click; conversion campaigns bill on clicks. Amounts are in micros.
  • Not on the platform: dayparting, target CPA or ROAS, frequency capping, pacing controls, A/B tests, webhooks, sandbox, query-level reports.

Ads in ChatGPT are bought and served differently from search ads and social ads. There is no keyword auction on what people type, no audience layer that the targeting depends on, and only two creative formats. Several things a search or social buyer takes for granted, such as dayparting or a target cost per acquisition, do not exist on the platform at all. This guide sets out the differences as documented by OpenAI and what they mean for the way an account is run.

Is there a keyword auction on what people type?

No. Search ads bid on the keywords a person types. Ads in ChatGPT are matched by the platform to the meaning of a conversation, using context hints: free-text descriptions of products, use cases and needs, up to 2,000 per ad group. Hints are not exact-match keywords, you do not bid per hint, and the API does not report which prompts an ad appeared against.

This changes the unit of work. In search, an account is a tree of keywords with match types, negative lists and per-keyword bids. In ChatGPT, the unit is the ad group: a set of hints that describes one situation your offer fits, a bid and a billing event, and one or more ads. There is no negative hint list in the documented object model, so an ad group that matches the wrong conversations is corrected by rewriting its hints, not by adding exclusions. And because there is no query report, you learn what works from performance per ad group, not per phrase. The guide on context hints covers how to write them and how to structure ad groups so that this measurement is possible.

What do the ads look like?

Two formats only. A chat card has a title of 3 to 50 characters, a body of up to 100 characters, a square image of at least 640 by 640 pixels in JPEG, PNG or WebP, and a target URL that OpenAI's crawler must be able to reach. A product ad is built from a product feed: image, URL and price come from the feed item, and the template can print the product price as a placeholder. Each feed ad group can carry one live product ad template.

Compared with social, there is no video, no story format and no rotation across many variants inside one placement. Compared with search, there are no sitelinks, callouts or extensions. Both formats are reviewed before they serve: a creative is created in review, becomes approved or rejected with a reason, and editing it sends it back to review. Everything, campaign, ad group and ad, is created paused, so nothing spends until it is activated on purpose. A preview endpoint renders the ad for 24 hours but does not confirm that it is eligible to serve.

Do I need audiences?

No. Targeting is locations (countries, regions and markets, resolved through a geo lookup), platforms (iOS app, Android app, web, desktop web, iOS web, Android web) and, optionally, custom audiences. Custom audiences are uploaded customer lists and are not available for campaigns targeting the EEA or Switzerland. The contextual match does the work of finding the right conversations, with or without an audience.

Social platforms are built on audiences: interest graphs, lookalikes, retargeting pools. Here an audience is optional, and where it exists it is a first-party list of emails, phone numbers or Android advertising IDs, raw or hashed, with a matched-user minimum for inclusion targeting and a bid multiplier of 0.1x to 10x at ad group level. Outside the EEA and Switzerland it is a useful refinement, for example to exclude existing customers. It is not the base layer. The base layer everywhere is the hint set plus the product feed.

How is billing different?

You choose a bidding type per campaign: impressions, clicks or conversions. The billing event is an impression or a click, and conversion campaigns bill on clicks. Bid strategies are fixed bid, maximise clicks or maximise conversions; conversion-optimised bidding and CPM bidding are enabled per account by OpenAI. All amounts are in micros, one millionth of a currency unit, and an impression bid is per impression, not per thousand.

There is none of the auction insight a search buyer uses: no impression share, no auction insights report, no reach and frequency. Reporting is synchronous, hourly or daily, with impressions and clicks fresh within minutes, spend a little later and conversions after at least a day. It can be segmented by one dimension at a time: country, device, platform or product. The guide on budgets and bidding goes into the units, the account limits and how targets are handled.

What does not exist on the platform?

A good part of the control surface a search or social manager expects. The API has no target CPA or target ROAS, no bid caps on the maximise strategies, no dayparting, no frequency capping, no pacing controls, no A/B testing, no campaign duplication and no draft state. There are no webhooks or event streams, no sandbox or test mode, and no official server SDK. Query-level data, impression share and view-through conversions are not available through the API.

The platform is thin on purpose: campaigns, ad groups, ads, bulk mutations, insights, conversions, feeds and geo lookup, with rate limits of 600 requests per minute per endpoint and 1,200 overall. Account-level spend controls do exist: a daily spend limit for postpaid invoice accounts, and spend limit windows, up to 60 non-overlapping date ranges, enabled per account. Everything else has to be built on top.

What does that mean for how you run it?

Five habits follow from the differences. Write hints as sentences that describe a situation, not as keywords. Structure the account so that each ad group is one angle in one market, because the ad group is the only level at which a targeting idea can be measured. Treat targets such as cost per order or return on ad spend as something a controller emulates by stepping fixed bids and budgets, since the platform will not do it for you. Poll the API on a schedule, because nothing pushes to you. And put hard ceilings at account level so that an automation error cannot outspend the plan.

This is the shape of Adsonomy. Nomy, its AI manager, writes hints and copy as narratives, one ad group per angle and language, and steps bids toward the target you set within guardrails: a maximum bid step per change, a maximum budget change up or down, a cap on changes per entity per day and per day overall, and a cooldown per action type. Rules in the Control edition add what the platform lacks, such as dayparting or a pacing brake, by pausing and resuming or stepping budgets on a schedule. Every change is journaled with its source and can be reverted. And because there is no sandbox, a new account starts in shadow mode, where every intended change is recorded and nothing is sent to the platform.

Frequently asked questions

Can I bid on specific prompts or questions?

No. There are no keywords and no per-hint bids. An ad group carries context hints that describe a situation, the platform matches them to conversations by meaning, and the bid applies to the ad group. The API does not report which prompts an ad appeared against.

Do I need a product feed?

Not for chat cards. Product ads are built from a feed uploaded over SFTP in OpenAI's product file schema, and feeds are enabled per account. A shop usually runs both: chat cards for the story, product ads for the catalogue.

Is there retargeting?

Only through custom audiences, which are first-party lists and are not available for campaigns targeting the EEA or Switzerland. Inclusion targeting needs a matched-user minimum with a public planning threshold of 25,000. No pixel-based retargeting pool is documented.

Can I schedule ads by hour of day?

Not on the platform. A management layer can pause and activate on a schedule: Adsonomy's rules do this in the Control edition, within the platform's rate limits and with cooldowns so that entities are not flipped repeatedly.

Adsonomy runs ads inside ChatGPT for shops and service businesses. Control edition: you run it with rules. Autopilot: the AI manager runs it inside your guardrails. Launching 1 October 2026.

Join the waitlist