· 6 min read
Every serving issue in ChatGPT Ads: 35 codes, what they mean and how to fix them
Next to the status of a campaign, ad group or ad, ChatGPT Ads reports why it currently isn't serving, or only partly. These serving issues come as codes like campaign_budget_exhausted or ad_group_has_no_serving_ready_ads. The official documentation lists them without explanation. Here are all 35 with meaning and fix, grouped by the level where they arise.
How to read the issues
In Chatvertise the issues appear as colored labels next to the status: at campaign, ad group and ad level and in the structure view. In the API they're called serving_issues. We classify every code into one of three urgency levels; the same classification appears in the tables below.
- Blocking: as long as the issue is present, nothing serves. Usually you have to fix something yourself.
- Warning: serving is stopped or limited, usually by a setting such as status, budget or schedule.
- In progress: something is underway, such as a review. Only patience helps.
A note on reliability: so far we've observed only some of the codes live. Where the exact fix depends on the individual case, we point to the OpenAI Ads Manager instead of guessing.
Account: approval, payment and identity
Account-level issues affect all campaigns at once. As long as one of them is blocking, the whole account serves nothing.
| Code | Meaning | Fix |
|---|---|---|
ad_ Blocking | MeaningThe ad account is suspended. No campaign serves. | FixCheck the reason in the OpenAI Ads Manager and contact support there. A suspension can't be lifted through the API. |
ad_ In progress | MeaningThe account's brand review is still running. | FixWait. Until approval, the account serves nothing. |
ad_ Blocking | MeaningThe brand review is missing a favicon. OpenAI shows it next to every ad. | FixUpload the favicon in Chatvertise on the “Ad account” page; it's passed straight to OpenAI. |
ad_ Blocking | MeaningThe brand review has been escalated for a deeper review. | FixWait and answer any questions from OpenAI in the Ads Manager. It can't be sped up. |
ad_ Blocking | MeaningThe account's brand review was rejected. | FixCheck and correct brand, domain and favicon details in the Ads Manager, then resubmit. |
ad_ Blocking | MeaningNo payment method is on file, or it isn't authorized. | FixAdd or confirm the payment method in the OpenAI Ads Manager. |
ad_ Blocking | MeaningA due charge failed. | FixCheck the payment method and settle the outstanding amount in the Ads Manager. |
ad_ Blocking | MeaningThe account's identity verification has not passed or isn't confirmed yet. | FixComplete or repeat the verification in the OpenAI Ads Manager. |
ad_ Warning | MeaningOpenAI requires an additional step of identity verification. | FixComplete the requested additional check in the Ads Manager. |
ad_ Warning | MeaningThe account-level spend limit has been reached. All campaigns pause. | FixWait for the next reset or raise the account limit. More in Account daily limit vs. campaign daily budget. |
Campaign: status, schedule and budget
These issues arise from the campaign's settings. They're mirrored downward: if the campaign budget is used up, the same issue also appears on its ad groups and ads.
| Code | Meaning | Fix |
|---|---|---|
campaign_ Warning | MeaningThe campaign is paused or archived. | FixActivate the campaign. The history shows who paused it. |
campaign_ In progress | MeaningThe campaign's start date is in the future. | FixWait, or move the start date forward. |
campaign_ Warning | MeaningThe campaign's end date has passed. | FixExtend the end date or create a new campaign. |
campaign_ Warning | MeaningThe campaign contains no ad group. | FixCreate at least one ad group with targeting and a bid. |
campaign_ Warning | MeaningNone of the campaign's ad groups is ready to serve. | FixCheck the ad groups: are they active, and do they contain approved, active ads? |
campaign_ Warning | MeaningThe campaign's budget is used up. | FixWith a daily budget it resumes the next day. With a lifetime budget, raise the budget. |
Ad group: status and content
An ad group only serves when it's active and contains at least one ad that's ready to serve.
| Code | Meaning | Fix |
|---|---|---|
ad_ Warning | MeaningThe ad group is paused or archived. | FixActivate the ad group. |
ad_ Warning | MeaningThe ad group contains no ad. | FixCreate at least one ad. |
ad_ Warning | MeaningNone of the ad group's ads is ready to serve: all are paused, under review or rejected. | FixGo through the ad group's ads: activate paused ones, fix rejected ones, wait for reviews. |
Ad: status, review and required fields
At ad level it's about three things: whether the ad is active, where the review stands, and whether all required fields are present. Codes with partial_serving mean that only part is serving.
| Code | Meaning | Fix |
|---|---|---|
ad_ Warning | MeaningThe ad is paused or archived. | FixActivate the ad. |
ad_ In progress | MeaningThe ad is currently under review. | FixWait. Every change to the ad restarts the review. |
review_ Blocking | MeaningThe ad was rejected in review. | FixRead the rejection reason on the ad detail page and fix it. All reasons: Ad rejected? |
landing_ Blocking | MeaningThe landing page couldn't be fetched during review. | FixCheck robots.txt, bot protection and reachability of the destination URL, then save the ad again. |
title_ Blocking | MeaningThe ad has no title. | FixAdd a title and save. |
advertiser_ Blocking | MeaningThe ad account is missing the advertiser name. | FixAdd the account or brand name on the “Ad account” page. |
image_ Blocking | MeaningThe ad has no image, or the account has no favicon. | FixAdd an image to the ad, or upload the favicon in the ad account. |
target_ Blocking | MeaningThe ad's destination URL is invalid. | FixFix the URL: complete with https, reachable, and on a domain approved for the account. |
reserved_ Warning | MeaningThe destination URL contains parameters that OpenAI reserves for itself. | FixRemove the affected parameters from the destination URL and save the ad again. |
product_ Blocking | MeaningA feed ad isn't linked to any product feed. | FixSelect a product feed in the campaign or ad group. |
partial_ In progress | MeaningThis level serves partly; some of the ads are still under review. | FixWait. The ads already approved keep serving. |
partial_ Warning | MeaningThis level serves partly; some of the ads were rejected. | FixFix or pause the rejected ads. The rest keeps serving. |
partial_ Warning | MeaningThis level serves partly; for some ads the landing page couldn't be fetched. | FixCheck the destination URLs of the affected ads and save them again. |
Policies and targeting
These issues come from OpenAI's advertising policies. They depend on the ad's content and the chosen target country.
| Code | Meaning | Fix |
|---|---|---|
ad_ Blocking | MeaningThe ad is classified as content for adults only. | FixCheck the ad's content and category. The classification and its consequences are shown in the OpenAI Ads Manager. |
policy_ Blocking | MeaningFor policy reasons, this ad may not serve in the selected target countries. | FixAdjust the ad group's target countries or aim the ad at other markets. |
policy_ Warning | MeaningIn some of the target countries, serving is limited for policy reasons. | FixCheck which countries are affected and split the targeting if needed. |
What these issues don't cover
- The exact rejection reason of an ad. review_not_approved only says it was rejected; why is in the rejection reason. All reasons are explained in Ad rejected? Crawler errors explained.
- Errors on save. An unapproved destination domain or a disallowed country is reported by the API already on save, not as an issue. See Five errors when saving an ad.
- A bid that's too low. The API doesn't report that you're being outbid in the auction; that hint only exists in the OpenAI Ads Manager. More in Bidding in ChatGPT Ads explained.
In which order to proceed
Start at the top: first the account, then the campaign, then the ad group, finally the ad. An issue at a higher level often explains everything below it. Fix everything marked as blocking first, then reload the data — the issues only change with the next fetch. If nothing serves after that, the overview Why isn't my ad serving? helps.
Frequently asked questions
- Where do I see the serving issues?
- In Chatvertise as labels next to the status of campaigns, ad groups and ads, and in the structure view. In the API, OpenAI returns them in the serving_issues field when it's explicitly requested.
- Why does the same issue appear on campaign, ad group and ad?
- Issues are mirrored downward. If, for example, the campaign's budget is used up, its ad groups and ads also carry campaign_budget_exhausted. The cause always lies at the highest level that shows the issue.
- What does an issue with partial_serving mean?
- The level is serving, but not fully: some of the ads are still under review, rejected, or have a landing page problem. The rest keeps running normally.