OpenAI Ads Product Feed Requirements (and the Errors That Get Feeds Rejected)
What your OpenAI Ads product feed must include, the delivery and file rules, and the common errors that get products rejected, for Shopify stores.
“OpenAI Ads Product Feed Requirements (and the Errors That Get Feeds Rejected)”
The short version
- An OpenAI Ads product feed is a flat-file catalog you deliver by SFTP through the Feeds area in OpenAI's Ads Manager.
- Every product you want to advertise must have
is_ads_eligibleset totrue, be in stock, contain complete data, and pass OpenAI's review. - There is no minimum catalog size, despite what some guides claim. OpenAI's spec sets none.
- Most rejections come from a handful of fixable issues: missing images, missing or invalid prices, incomplete fields, or products not marked ads-eligible.
If you want to run product feed ads on ChatGPT, OpenAI needs a clean, correctly formatted catalog. Get the feed right and your products are eligible to appear; get it wrong and they silently drop out. Here is exactly what your feed needs, straight from OpenAI's spec, and the errors that most often get products rejected.
What is an OpenAI Ads product feed?
It is a file containing your product catalog, delivered to OpenAI so your products can run as ads. Per OpenAI's documentation, you create the connection in the Feeds area of Ads Manager and "upload the merchant catalog to the SFTP location shown there." It is a flat-file feed (formats such as CSV, TSV, or JSON) delivered over SFTP, not a hosted URL.
What your feed must include
Two things, per the spec:
- Every field marked
Requiredin OpenAI's product feed specification. OpenAI says to "include every field marked Required in the stable product feed specification." In practice that means the core commerce data every catalog needs: a unique ID for each variant, a title, a description, the price, availability, an image, and the product URL. (See the official product spec for the exact, current field list.) - The
is_ads_eligibleflag set totruefor every product Ads should process. This is the one ads-specific requirement. Omit it or set it tofalseand the product stays out of Ads. (Note the exact field name isis_ads_eligible, notis_ads_enabled.)
No, you do not need 1,000 products
You will see this claim repeated across the web: that ChatGPT ads require a minimum catalog of 1,000 products. It is not true. OpenAI's official feed documentation sets no minimum and no maximum product count. If you have a small catalog, you can still run product feed ads. Do not let a made-up threshold stop you.
OpenAI's actual bar for a product to run
The spec is refreshingly clear about what it takes for a product to be eligible. In OpenAI's own words, "a product must be marked Ads-eligible, remain available, contain usable product data, and pass feed processing and review." Break that down:
- Ads-eligible:
is_ads_eligibleistrue. - Available: the product is in stock.
- Usable data: the required fields are present and valid (real image, real price, complete details).
- Passes review: it clears OpenAI's feed processing and policy review.
If a product fails any one of these, it will not run, even if the rest of your feed is perfect.
Common errors that get products rejected
Almost every rejection traces back to one of these:
| Error | What it means | How to fix it |
|---|---|---|
| Product not ads-eligible | is_ads_eligible is missing or false | Set it to true for every product you want to advertise |
| Out of stock | The product is unavailable | Only feed in-stock products, and keep availability current |
| Missing image | No valid image URL | Ensure every product has a working image link |
| Missing or invalid price | Price is blank, zero, or malformed | Provide a valid, correctly formatted price |
| Incomplete required fields | A required field is empty | Fill in every field the spec marks as required |
| Overlong text | Title or description exceeds limits | Keep titles and descriptions within the allowed length |
| Wrong file format or delivery | Feed not in an accepted format or not delivered to SFTP correctly | Use an accepted format and deliver to the SFTP location shown in Ads Manager |
The part people forget: keeping the feed in sync
A feed is not a one-time upload. Your prices and inventory change constantly, and a stale feed means ads for products that are out of stock or priced wrong, which wastes spend and gets products rejected. OpenAI expects the catalog to be refreshed regularly (at least daily). If you build the feed by hand, that is a recurring chore every time your catalog changes.
Doing it by hand vs automatically
You can prepare all of this manually: export your catalog, map every field to OpenAI's format, mark products ads-eligible, validate images and prices, compress and deliver the file over SFTP, and repeat the sync whenever your catalog changes. It works, but it is fiddly and easy to get wrong, and a single formatting slip can knock products out.
The alternative is to automate it. Reach: Feed for ChatGPT Ads turns your Shopify catalog into a correctly formatted OpenAI feed, validates it (catching missing images, prices, and overlong text before delivery), delivers it over SFTP, and re-syncs daily and after catalog edits. No spreadsheets, no manual uploads.
Once your feed is live and running ads, the next question is whether it is actually converting, and for that you need accurate tracking. That is covered in How to track OpenAI Ads conversions on Shopify.
Get a valid, always-synced feed without the spreadsheet work. Install Reach: Feed for ChatGPT Ads to turn your Shopify catalog into a correctly formatted, validated OpenAI Ads feed.
Frequently asked questions
How is an OpenAI Ads product feed delivered?
As a flat-file catalog (formats such as CSV, TSV, or JSON) delivered by SFTP through the Feeds area in OpenAI's Ads Manager. There is no hosted-URL option for the ads feed.
Is there a minimum number of products for ChatGPT ads?
No. OpenAI's official feed spec sets no minimum or maximum catalog size. The 1,000-product minimum you may have read is not accurate.
What makes a product eligible to run?
Per OpenAI, a product must be marked ads-eligible (is_ads_eligible = true), remain available, contain usable product data, and pass feed processing and review.
Why did my products get rejected?
Usually one of: not marked ads-eligible, out of stock, a missing image, a missing or invalid price, an incomplete required field, or a delivery or format problem.
Do I have to update my feed manually?
Only if you build it by hand. Feeds need to stay in sync with your prices and inventory at least daily, so an automated tool that re-syncs for you saves ongoing work and prevents stale-data rejections.
Do I need a developer to set up an OpenAI Ads feed?
Not if you use an app that handles the formatting, validation, and SFTP delivery for you. Doing it fully by hand generally requires technical work.