ChatGPT ads best practices: 12 rules for setting up, launching and optimising campaigns
- A conversion-optimised campaign needs exactly one active standard conversion event; custom events cannot be optimisation goals.
- There is no report per context hint: results come back per campaign, ad group and ad.
- Any edit to an ad's creative sends it back into review.
- A daily budget can spend up to 2x on one day and 7x over seven days.
- Conversions need at least a day to appear, hourly data carries only impressions, clicks and spend, and the current day's attribution is preliminary.
- A bid too low warning is guidance, not a serving block.
- The platform has no dayparting, frequency capping, target CPA or ROAS, A/B testing feature or webhooks.
Most of what makes a ChatGPT ads account work is decided before the first ad serves: what you measure, how you split ad groups, how you write hints and how you read the budget. These twelve practices follow the platform as OpenAI documents it, so each one comes with the reason it matters on this platform in particular, rather than a habit carried over from search or social ads.
- Measure first: a standard conversion event, sent by the pixel and the Conversions API, before any budget.
- Structure for learning: one campaign per market, one ad group per angle.
- Replace creative instead of editing it, and change one thing at a time.
- Read delivery from the top down and results on complete days.
- Fill the platform's missing controls with rules, not with manual edits at odd hours.
1. Set up conversion tracking before you spend anything
Install OpenAI's pixel and send the same events from your server with the Conversions API, deduplicated with a shared event ID, before the first campaign. OpenAI calls the Conversions API more reliable than the pixel alone, and a conversion-optimised campaign needs exactly one active standard event as its goal.
Choose the standard event that matches the outcome you pay for: order_created for a shop, lead_created or appointment_scheduled for a service business, trial_started for software. Custom events can be tracked but cannot be optimisation goals. Check the Event Quality Score in Ads Manager and fix what it flags: in OpenAI's words, incomplete or incorrectly configured tracking "can make reporting and optimization less effective".
2. Choose the objective for the outcome you actually want
If you can measure conversions, use the conversions objective: since 16 September 2026, conversion optimisation billed per impression is generally available and is OpenAI's recommended model, optimising for conversions from ad clicks and ad views. Without a working conversion event, start with clicks and switch once tracking is live.
The objective determines which bidding types and ad formats are available, so it is the first decision in the campaign form, not a detail to settle later. OpenAI advises using a conversion event with enough volume to evaluate performance; if your main conversion happens only a few times a week, judge it over a longer window before you change course.
3. Build one campaign per market
Give each country or market its own campaign. Budgets, locations and the conversion event live at campaign level, and an ad account has a single currency and timezone, so one campaign per market keeps spend, pacing and results apart. It also lets you write hints and ads in each market's language.
In the EEA and Switzerland, custom audiences are not available, so European campaigns rely on hints, locations and platforms alone; do not copy an audience-based structure from a US campaign into them. Reporting can be split by country, but budgets cannot, which is the practical reason for the split. More in running ChatGPT ads across markets.
4. Give every angle its own ad group
Split ad groups by angle: a problem, an occasion, a comparison, a type of customer. An ad group holds one bid strategy, one billing event and one set of context hints, and there is no report per hint, so the ad group is the only level at which an angle's results can be read. Mixed angles average each other out.
A running shop, for example, might run one ad group for first-time marathon runners, one for trail running and one for runners coming back from an injury, each with its own hints and ads. When one angle wins, you can raise its bid without touching the others. Ads cannot be moved between ad groups, so settle the split before you build.
5. Write context hints as situations, not keywords
A context hint is a free-text sentence, up to 2,000 per ad group, describing a conversation your offer fits. Write what the person is trying to do or solve, in their words, rather than product terms. OpenAI matches hints to the meaning of the conversation, so one clear situation beats a long list of synonyms.
Compare "running shoes, trail shoes, marathon shoes" with "training for a first trail race and not sure whether road shoes will do". The second describes a moment where a recommendation is welcome. Updating hints replaces the whole list, so keep the live version in a document and edit from there. The context hints guide lists ten angles worth covering.
6. Send each click to the page that answers the conversation
Link every ad to the page that finishes the job the conversation started, such as the product, the booking form or the comparison, not the home page. The destination must be reachable by OpenAI's crawler, and an ad only serves if its landing page is accessible, so a broken or blocked page stops delivery.
Add tracking parameters with OpenAI's placeholders, for example utm_source=chatgpt&utm_medium=paid&utm_campaign={campaign_id}&utm_content={ad_id}, so every click arrives labelled in your analytics. OpenAI appends its own click reference, oppref, to the URL by itself; leave it out of your template, which the platform refuses.
7. Replace creative instead of editing it
Any edit to an ad's title, description or image sends it back into review, however small. Once an ad is approved and serving, leave it alone: add a new ad with the change, let it pass review, then pause the old one. That keeps delivery running and gives you a clean comparison.
Chat cards allow a title of 3 to 50 characters and a body of up to 100, and Ads Manager warns that copy may be truncated in some placements, so put the offer in the first words. Keep more than one ad in each ad group, so there is always an approved ad live while a new one is in review. Worked examples are in writing chat card creative.
8. Read the daily budget as a weekly average
A daily budget in ChatGPT ads is an average: a single day can spend up to twice it and seven days up to seven times it. Size campaigns for the busy day, and put a ceiling where you need one: a lifetime budget with a fixed bid for a campaign, or a spend limit window for the whole account.
Do not react to a single day at 180% of budget; that is within the rules. A week above seven times the daily budget would be outside the documented limit and worth raising with OpenAI. When several campaigns share an account, an account limit does not divide money between them: a campaign can still have budget left when the account limit is used up, and then it stops serving. The details are in budgets, pacing and bidding.
9. Diagnose delivery from the top down
When an ad does not serve, check in OpenAI's order: the account first (active, reviews complete, spend limit available, payment method working), then the campaign (active, scheduled, budgeted, validly targeted), the ad group (active, compatible bidding, eligible products) and finally the ad (active, approved, reachable landing page).
A problem higher up, such as billing, blocks everything below it, which is why the order matters, and the API cannot see billing at all. Status tells you whether something is switched on; review tells you whether it passed. A bid too low warning is guidance, not a block. If nothing is flagged but impressions are low, OpenAI points to limited eligible opportunities, restrictive targeting, uncompetitive bids or a small product set, and advises comparing reporting over a suitable interval rather than a few minutes of activity.
10. Judge results on complete days, not live numbers
Impressions and clicks arrive within minutes, spend later, and conversions need at least a day. The current day's attribution is preliminary and hourly data carries only impressions, clicks and spend, so read yesterday and the last seven days, not this morning. Decide how much data counts before you look.
Give every change time to show. OpenAI's own advice for conversion-optimised campaigns is to review sufficient volume before making significant bid, budget or creative changes. A workable rhythm: check delivery daily, decide on bids and hints weekly, and review the structure monthly. Before a test starts, write down the pass mark, the minimum data and what you will do after a win, a loss or a draw; the method is in how to test ChatGPT ads.
11. Decide on text customization deliberately
Text customization is an opt-in in Ads Manager that lets OpenAI generate personalised and translated versions of your headlines and descriptions, which may be shown without your individual review. It adapts your copy to the conversation and the user's language, but your results then no longer describe only your own words. Turn it on per campaign, knowingly.
If you keep it off, write ads per language and market yourself, which keeps what people see and what you measure the same thing. If you turn it on, note which campaigns use it, so a change in results is not wrongly credited to a copy edit. The setting is not in the API, so tools cannot read it; record it wherever you track changes.
12. Automate what the platform does not do
ChatGPT ads have no dayparting, frequency capping, target CPA or ROAS, pacing controls, A/B testing feature or webhooks. Rather than filling the gaps with manual edits at odd hours, set rules: pause what overspends, raise bids where conversions come in below target. Rules can run on a schedule through the API.
That is what Adsonomy is built for. In the Control edition you run the account with rules you set; in Autopilot, Nomy, an AI manager, makes changes within the guardrails and policy you set. Every change is journaled with its source, and an executed proposal can be reverted. Either way, keep a person on the decisions that matter most: new campaigns, creative, and objective or bidding changes never apply without one. How that is constrained is in Autopilot guardrails and accountability.
Sources
OpenAI's own documentation and policy pages, checked on the date this guide was last updated:
- OpenAI Ads: conversion-optimized campaigns
- OpenAI Ads: troubleshooting
- OpenAI Ads: bidding and budgets
- OpenAI Ads API quickstart
Frequently asked questions
What is the most important ChatGPT ads best practice?
Measuring conversions before you spend. Without a standard conversion event sent by OpenAI's pixel and, ideally, the Conversions API, you cannot use conversion optimisation, OpenAI's recommended model, and you cannot tell which ad groups earn their budget.
How many context hints should an ad group have?
As many as it takes to describe one angle well, up to the limit of 2,000. There is no documented ideal number. What matters more is that every hint in an ad group belongs to the same angle, because results are reported per ad group, not per hint.
How often should I change bids on ChatGPT ads?
No more often than the data allows. Conversions take at least a day to appear, so decide bid changes on complete days, typically weekly, and change one thing at a time. OpenAI advises reviewing sufficient volume before significant bid, budget or creative changes.
Should I use the same ads in every country?
Usually not. Give each market its own campaign with hints and ads in its language, unless you deliberately turn on text customization, which lets OpenAI translate and adapt copy without individual review. In the EEA and Switzerland, custom audiences are unavailable, so targeting there rests on hints, locations and platforms.
Why is my ChatGPT ad approved but getting no impressions?
Check from the top: the account's payment method and reviews, then the campaign's budget, schedule and targeting, the ad group's bid, and the ad's landing page. If nothing is flagged, OpenAI's documentation points to limited eligible opportunities, restrictive targeting, uncompetitive bids or a small product set.
Can I A/B test ChatGPT ads?
Not with a built-in feature: the platform has no A/B testing tool. You build the test yourself, with two ad groups or two ads that differ in one thing only, run them over the same period, and compare them on complete days.
Adsonomy runs ads inside ChatGPT for shops and service businesses. Control edition: you run it with rules. Autopilot: Nomy runs it inside your guardrails. Free until 15 October 2026, then plans from EUR 49 a month.
Start free