· Updated October 05, 2026 · 3 min read
Why isn't my ChatGPT ad serving?
Campaign active but no impressions? That's the most common support question in the first days — and almost always one of eight typical serving blockers is behind it. None of them is a performance problem; all are setup questions that can be resolved in minutes once you know where to look. Here they are, in the order you should check them.
1. Account review open or rejected
Before any campaign serves, the ad account itself has to be approved: brand review at “approved”, verified domain, favicon in place. If the favicon is missing, the account shows the reason missing_favicon — in Chatvertise you upload it right on the Ad account page, it's passed to OpenAI and clears the reason. If the account is rejected, only clarification in the OpenAI Ads Manager helps.
2. Ad under review or rejected
New or edited ads go through approval. While the review is open, nothing serves; that usually resolves within hours to a few days. If the ad was rejected, the reason is on the ad detail page in Chatvertise. Most rejections aren't about the copy but about the landing page — robots.txt, bot protection, login wall, 404. All codes and their fixes are explained in Ad rejected? Crawler errors explained.
3. Destination domain not approved
The landing URL has to belong to a domain verified in the account. An unapproved domain causes “Destination domain is not approved” already on save and prevents serving — even if you only change the price, because the API re-validates the whole ad. Verification happens in the OpenAI Ads Manager; Chatvertise warns on the ad detail page when the ad's domain and the account's domain don't match.
4. Budget exhausted
The campaign budget has been reached. With a daily budget, serving automatically resumes the next day in the account time zone; with a lifetime budget the campaign stays stopped until you raise it. Chatvertise shows utilization for lifetime budgets and warns ahead of time. The differences between the two types are in Daily vs. lifetime budget.
5. Bid too low
If your max bid is too low, your ad wins no auctions — and zero auction wins means zero impressions. There's no absolute threshold; the same bid is enough in a niche and hopeless in a competitive category. Raise the ad group's bid in steps of 15 to 20 percent and wait a day each time. What the bid means exactly and why CPM bids behave differently from CPC bids is in the bidding article.
6. No servable ads
- Campaign or ad group is paused — the history shows who paused it and when.
- The ad group has no approved, active ad.
- Start or end date lies outside today's date; the campaign is active but not yet, or no longer, within its window.
- The campaign has reached its end date and counts as ended.
7. Targeting with no reach
A country outside the availability list is rejected by the API on save. But allowed combinations can run empty too: a small market, a single platform, plus a custom audience with few members — then there simply aren't enough matching conversations. Widen the targeting step by step and check the country breakdown for where impressions occur.
8. Looked too early
After approval it takes a few hours until the first impressions appear in reporting — and Chatvertise shows numbers as fresh as the last sync. One click on “Sync” fetches the current state. Why numbers between Chatvertise and the Ads Manager differ at times is explained in a separate article.
Chatvertise shows the specific reason per campaign, ad group and ad — as serving chips straight from the API's serving notes, instead of you guessing. Connect your API key and start for free. The complete list of all 35 codes with their meaning and fix is in Every serving issue explained.
Frequently asked questions
- How long does the review of a ChatGPT ad take?
- Usually hours to a few days. Every change to the ad restarts the review. The current status is shown in Chatvertise on the ad detail page; if rejected, the reason sits right below it.
- My ad is approved but still not serving. Why?
- Check in this order: is the campaign or ad group paused? Is today within the start and end date? Is the budget exhausted? Is the account review “approved” and a favicon in place? Chatvertise shows the specific serving notes as chips on campaign, ad group and ad.
- Can a bid that's too low prevent serving entirely?
- Yes. If the max bid never wins an auction, impressions stay at zero. Raise the ad group's bid in steps of 15 to 20 percent and wait a day each time; the OpenAI Ads Manager additionally flags when you're frequently outbid.
- What does “Destination domain is not approved” mean?
- The ad's destination URL points to a domain that isn't verified for your ad account. Approval happens in the OpenAI Ads Manager, not through the API. Until then the ad can be neither saved nor served.