← Back to glossary

Serving Issues

Serving issues are the specific reasons a ChatGPT Ads campaign, ad group, or ad is not delivering, shown in OpenAI Ads Manager as a "Not serving" status and in the Advertiser API as a serving_issues list. They describe why delivery is blocked right now, different from ad review, the one-time policy check an ad clears before it can run.

If a campaign shows no impressions after launch, the serving issues list is where you decide whether billing, verification, budget, dates, or a rejected creative is blocking delivery. Ignore it and you burn launch days troubleshooting blind, raising bids on a campaign that was never eligible to spend.

What are serving issues?

A serving issue is any condition OpenAI's ad system records as a blocker on delivery, attached to a campaign, ad group, or ad and readable at each level. When you retrieve an object with the serving_issues parameter, OpenAI returns the active reasons that object cannot serve. In Ads Manager, the same information appears as a "Not serving" label you hover to read.

The issues fall into predictable buckets: account gates like identity verification and a complete business profile, billing problems like a declined payment method, campaign settings like a spent budget or a past end date, and ad-level problems like a policy rejection or a landing page that blocks OpenAI's crawlers. An ad serves only when the ad, its ad group, and its campaign are all active and the ad has cleared review.

Serving issues sit downstream of ad review and upstream of performance. Review decides whether an ad is allowed to run; serving issues decide whether an eligible ad is delivering today; insights then measure what that delivery produced. Reading them in that order keeps you from treating an eligibility problem as a bidding or targeting problem.

How serving issues work

Serving issues are generated by OpenAI's delivery system and read back by you, either in Ads Manager or through the Advertiser API. The flow runs in a fixed order from account to ad.

  1. Submit and review. You build the campaign and submit it; OpenAI reviews the title, copy, media, and landing page before anything can serve.

  2. Check account gates. The system confirms identity verification, a complete business profile with logo, and a valid billing method, since all three must clear before any ad serves.

  3. Evaluate campaign settings. It checks that the campaign is active, today falls inside the start and end dates, and the budget is not already spent.

  4. Resolve the ad. It confirms the ad passed review and its parent ad group and campaign are both active, because a paused parent blocks every child.

  5. Surface the list. Any unmet condition is written to the serving_issues list on the affected object and shown as a "Not serving" status.

The list tells you which gate is blocking delivery and at which level. OpenAI is explicit that an empty list still does not promise impressions.

The importance of Serving Issues for marketers

Paid budget on ChatGPT only works if ads actually deliver, and serving issues are the difference between a campaign that spends and one that sits idle while you pay for nothing. Treating them as the first thing you check after launch protects both the budget and the launch timeline you committed to.

  • They separate eligibility from performance. A campaign showing no impressions is usually blocked at a gate, so serving issues tell you whether to fix a gate or adjust a bid.

  • They catch silent account blockers. Incomplete verification, a missing logo, or a billing hold stops delivery on an otherwise approved campaign, and nothing in your targeting or creative will reveal that failure mode.

  • They set realistic launch expectations. Because OpenAI advises allowing at least 24 hours after a new campaign launches before reporting zero delivery, serving issues help you tell a genuine block from normal ramp-up.

Marketer use cases

  1. SEO managers use serving issues to confirm a ChatGPT Ads campaign is actually delivering before they attribute any lift in branded search to it.

  2. Growth marketers use serving issues to triage a zero-impression launch in minutes, isolating billing or verification blocks from budget and bid problems.

  3. Demand gen leads use serving issues to protect launch timelines, flagging account-level gates before a committed go-live date slips.

Key concepts

Delivery hierarchy

An ad serves only when it, its ad group, and its parent campaign are all active and the ad has cleared review, so a serving issue can originate at any of those three levels and must be read at the level that owns it.

Account gates

Before any campaign can deliver, the account itself must clear identity verification, a complete business profile with logo, and a working billing method, and a failure in any one surfaces as a serving issue even on approved ads.

Review versus delivery

Clearing review makes an ad eligible to run, while serving issues govern whether an eligible ad is delivering right now, so an approved ad can still be blocked.

Benefits

  • Pinpoint why a ChatGPT Ads campaign is not delivering without guessing.

  • Separate account and billing blocks from budget, bid, and targeting problems.

  • Diagnose delivery programmatically through the OpenAI Advertiser API serving_issues list.

  • Protect launch budgets by fixing eligibility blocks before they waste days.

  • Monitor delivery continuously across the campaign, ad group, and ad levels.

  • Confirm delivery on ChatGPT before attributing lift to the channel.

Serving Issues best practices

  • Check serving issues first after launch, since most zero-impression campaigns are blocked at a gate well before budget is ever the cause.

  • Complete every account gate before launch, so verification, logo, and billing never silently hold delivery.

  • Read the issue at the level it names, because a campaign-level block and an ad-level rejection need different fixes.

  • Allow OpenAI's crawlers through your robots.txt, firewall, and CDN, so a reviewable landing page never triggers a block.

  • Give a new campaign a full ramp-up window before calling it broken, since early zero-delivery reports are usually premature.

  • Re-check serving issues after any edit, because fixing one block can reveal another underneath it.

Avoid raising bids to force a stalled campaign to spend. OpenAI is explicit that a higher bid will not resolve a paused campaign, an exhausted account limit, or a rejected ad, so a bid change on a blocked campaign only wastes time that a serving issue would have pointed you to directly.

Tools and technologies

AirOps: AirOps helps marketing teams plan ChatGPT Ads campaigns inside a broader AEO workflow and track how paid placements and organic AI citations move brand visibility together.

OpenAI Ads Manager: The Ads tab shows a Serving or Not serving status for every ad, and hovering a Not serving label reveals the specific serving issue to fix.

OpenAI Advertiser API: Developers add the serving_issues parameter when reading a campaign, ad group, or ad to retrieve active delivery blockers programmatically.

Getting started with Serving Issues

  1. Open Ads Manager. This week, go to the Ads tab and read the Status column on every ad; hover any "Not serving" label to see its reason. No spend or approval is needed to look at your own account.

  2. Clear account gates. Finish identity verification, upload a logo, complete your business profile, and add a valid payment method, since none of your ads can serve until these pass.

  3. Confirm campaign settings. Check that the campaign is active, that today sits inside the start and end dates, and that the budget has not already been spent for the period.

  4. Fix ad-level blocks. For a rejected ad, edit the flagged copy or landing page and resubmit for review, and make sure the page allows OpenAI's crawlers.

  5. Automate the check. Once delivery is stable, read the serving_issues list through the Advertiser API so future launches surface blockers without manual hovering.

Key takeaways

  • Serving issues are the recorded reasons a ChatGPT Ads campaign, ad group, or ad is not delivering.

  • You read them in Ads Manager as a "Not serving" status or through the Advertiser API's serving_issues list.

  • The block can sit at the ad, ad group, campaign, account, or billing level, and each needs its own fix.

  • A clean serving status is necessary for delivery, but it is never a promise of impressions.

  • The fastest launch wins come from clearing account gates and ad reviews before you ever touch bids or budget.

Frequently asked questions about serving issues

How are serving issues different from ad review in ChatGPT Ads?

Ad review and serving issues answer two different questions. Review is the one-time policy check OpenAI runs when you submit an ad, deciding whether the title, copy, media, and landing page are allowed to run at all. A serving issue, by contrast, is a live condition that keeps an already-eligible ad from delivering right now, such as a spent budget, a billing hold, a paused parent campaign, or an expired end date. An ad can pass review cleanly and still carry serving issues, and an ad still in review will always show a serving issue until that review completes. The practical takeaway is that a rejected ad is a review problem you fix by editing and resubmitting, while a correctly approved ad that will not deliver is a serving issue you fix at the account, billing, campaign, or ad-group level. Checking review status first, then serving issues, keeps you from solving the wrong problem.

How often should I check serving issues after launching a campaign?

Check serving issues immediately after launch, then again after the first full day, and after every edit you make. The first look confirms nothing is blocking delivery at the account, billing, campaign, or ad level before you wait for data. OpenAI advises giving a new campaign at least a full day before treating zero delivery as a problem, so the second check separates a genuine block from normal ramp-up. After that, a serving issue can appear at any time: a payment method can expire, a budget can be exhausted, or an approved ad can be limited after launch during ongoing review. Any time you edit an ad, its copy, or its landing page, it re-enters review and can show a serving issue until that review clears, so re-check after every change. For always-on campaigns, pulling the serving_issues list through the Advertiser API on a schedule turns this from a manual habit into monitoring you do not have to remember.

Why do serving issues vary across my campaigns, ad groups, and ads?

Serving issues vary because they are evaluated separately at each level of the delivery hierarchy, and a different condition can fail at each one. An account-level problem like unfinished verification or a billing hold blocks everything beneath it, so every campaign shows an issue at once. A campaign-level problem, such as a spent budget or an end date in the past, affects only that campaign while others keep running. At the ad-group level, bid or targeting settings can constrain delivery, and at the ad level a single rejected creative or a landing page that blocks OpenAI's crawlers stops just that ad. Because a parent status cascades downward, a paused campaign makes all of its ads show as not serving even when each ad is individually fine. This is why reading the issue at the level it names matters: fixing an ad will not help if the real block sits on its campaign or your account.

Can I directly influence serving issues or do I just wait?

You can directly resolve almost every serving issue, and waiting is only correct in one narrow case. Account gates are fully in your control: finish identity verification, add a logo and business details, and fix your billing method. Campaign blocks are settings you own, so raise or reset a spent budget, extend a past end date, and set the campaign and ad group to active. Ad-level rejections are fixable too, since you can edit the flagged copy or landing page and resubmit, or allow OpenAI's crawlers if your firewall is blocking them. The one thing you cannot speed up directly is the review itself; once you have submitted a clean ad and cleared every gate, the remaining wait is OpenAI completing its check. Raising your bid is never a fix here, because a higher bid does nothing for a paused campaign, an exhausted budget, or a rejected ad. Resolve the named condition instead.

What counts as a healthy serving issues status for a campaign?

A healthy status is an empty serving_issues list paired with a Serving label at the campaign, ad group, and ad level, confirmed after the campaign has had a full day to ramp. That combination means no account, billing, budget, schedule, or policy condition is currently blocking delivery. Treat it as a starting signal and keep checking, though: OpenAI is clear that an empty list still does not guarantee impressions, because thin inventory or very narrow targeting can keep a technically eligible ad from being shown. So a good benchmark pairs a clean serving status with actual delivery signals in Insights, such as impressions and spend accruing within a day or two of launch. If the list is clean but impressions stay at zero well past the ramp window, widen your targeting, confirm the landing page loads for OpenAI, and check that your budget and bid are high enough to compete. A clean list is the floor, and real delivery is the proof.