Chatvertise
Back to blog

· 2 min read

The five most common errors when saving a ChatGPT ad — and what's behind them

Most errors in ChatGPT Ads don't happen at serving time but at save time. The API validates strictly and answers with messages that look cryptic without context. Here are the five we see most often — each with the rule behind it, so you avoid it from the start next time.

1. “Destination domain is not approved”

Your ad's destination URL points to a domain that isn't verified for your ad account. The tricky part: the error appears on every change to the ad, even if you only adjust the price or the copy — the API re-validates the whole ad. Domain approval happens in the OpenAI Ads Manager, not through the API. Chatvertise shows a note on the ad detail page when the ad's domain and the account's domain don't match.

2. Country not allowed for geo targeting

ChatGPT Ads run in a fixed list of countries. If you pick a country outside it, the API rejects the campaign and lists the allowed countries in the error message. Chatvertise knows the list and greys out non-targetable countries in the country picker, so the error never occurs. You'll find the current list in our article on availability.

3. Ad group billing event doesn't match the campaign

A campaign bills per click or per impression, and every ad group has to use the same event. If the ad group differs, the API answers with an error naming both values. That's why Chatvertise locks the field in the ad group form to the campaign's value. If you want to switch models, you have to clone the campaign — here's how it takes one click.

4. Conversion event changed after creation

A campaign's conversion event is immutable after creation — together with the campaign objective. The API rejects a change. The nasty part: re-saving the same value goes through, because it isn't a change. Chatvertise therefore shows the field locked in the edit form. If you want a different event, create a new campaign.

5. Daily budget below the minimum, or both budgets set

A campaign has either a lifetime or a daily budget — the API rejects both at once. And the daily budget has a minimum of 15 in account currency; below that you get an error. Chatvertise asks for the budget type on creation and validates the minimum before the request goes out.

The common thread

Four of the five rules are campaign decisions that can't be changed later: target market, billing, conversion event, budget type. Take one extra minute for those four fields when creating a campaign — they save you cloning later.

Frequently asked questions

Can I change a campaign's billing model after creation?
No. Whether you're billed per click or per impression is fixed once the campaign exists. The way around is cloning the campaign with the new model; Chatvertise offers “Clone as CPC” on the campaign detail page for that.
Why does a text-only change to the ad fail with a domain error?
Because the API re-validates the entire ad, including the destination URL, on every change. If the URL points to an unapproved domain, even a price or copy change fails. The domain has to be verified in the OpenAI Ads Manager.
What is the minimum daily budget?
15 in account currency per day. Below that, the API rejects the campaign. A lifetime budget has no such minimum, but both budgets at once aren't allowed.
How do I know which countries are allowed?
The API lists the allowed country codes only in the error message when you pick a disallowed country. Chatvertise knows the list and greys out non-targetable countries in the picker; the full list is in our availability article.

Ready to advertise in ChatGPT?

Connect your account and launch your first ad in minutes.

Start for free