In short. A ChatGPT ad preview shows appearance and does not confirm serving eligibility.
Definition: A ChatGPT ad preview is a response from
POST /v1/ads/{ad_id}/previewthat lets you inspect an existing ad's appearance. OpenAI's campaign management documentation states that a preview does not confirm serving eligibility.
Key facts
- OpenAI says a preview covers the creative and appearance, while the serving check covers the destination, review status, account reviews, targeting, and budget.
- The Ads API reference says an ad preview expires 24 hours after creation. OpenAI's Ads API reference documents this lifetime.
- Returned ad objects include
review_status, within_review,rejected, andapprovedas the documented values. - An active ad still depends on its campaign and ad group, according to the campaign management documentation.
- OpenAI's troubleshooting documentation exposes
serving_issuesas a retrieval check for delivery blockers.
What does a preview check?
The preview endpoint renders an existing ad by ID. The API reference says that the preview expires 24 hours after creation, so it is a time-limited view of the ad response. It answers an appearance question: whether the returned creative can be previewed. It does not answer whether the ad can enter delivery.
The campaign management documentation places preview beside a wider review list: creative, destination, review status, account reviews, targeting, and budget. An ad can therefore look correct in the preview while another resource or review state still affects serving.
curl -X POST "https://api.ads.openai.com/v1/ads/{ad_id}/preview" \
-H "Authorization: Bearer ${OPENAI_ADS_API_KEY}"
Which serving conditions should you inspect?
OpenAI's troubleshooting page describes a hierarchy. At account level, inspect account activity, brand and applicable account reviews, and the spend limit. At campaign level, inspect active status, schedule, available budget, and targeting. At ad-group level, inspect active status and bidding compatibility. At ad level, inspect active status, approval, creative, and landing-page accessibility.
The same documentation says that a resource can be active and still be blocked by another requirement. It also states that an active ad can depend on an active parent campaign and ad group. Status and review answer different questions: status describes whether a resource is enabled, while review fields describe approval checks. The API reference lists in_review, rejected, and approved for review_status.
How can you check a serving blocker?
Retrieve the ad with the serving_issues include, then inspect the returned issue details and the resource to which each issue applies. OpenAI says to fix the underlying cause and retrieve the resource again. The same include is available when retrieving campaigns and ad groups.
curl -G "https://api.ads.openai.com/v1/ads/{ad_id}" \
-H "Authorization: Bearer ${OPENAI_ADS_API_KEY}" \
--data-urlencode 'include[]=serving_issues'
An empty serving_issues array is not a promise of impressions. OpenAI lists limited eligible opportunities, restrictive targeting, uncompetitive bids, and a small usable product set as possible explanations for limited delivery. A paused campaign can also prevent an active ad from serving. If the creative changes, the campaign management documentation says that the new submitted version starts another review.
Related terms
FAQ
Can an approved ad still fail to serve?
Yes. OpenAI's troubleshooting documentation says that an approved ad can still be prevented from serving by a paused parent or another delivery condition.
Does an empty serving_issues array prove delivery?
No. The same documentation calls an empty array no promise of impressions and lists limited eligible opportunities, restrictive targeting, uncompetitive bids, and a small usable product set as possible causes of limited delivery.
How long does an ad preview last?
The Ads API reference says that a preview expires 24 hours after creation.
Sources
Check how a page reads to answer engines. Open the GEO score analyzer