How a ChatGPT Ads feed differs from Google. Rejections and the 14-day rule
How a ChatGPT Ads product feed differs from Google Merchant, why OpenAI rejects products, and how the fourteen-day rule works for catalog snapshots.
A product ad in ChatGPT is not written separately for every SKU. You connect a catalog to the campaign, and the system picks a matching product at serve time and pulls its title, description, price, and image straight from your file. The feed stops being a technical file and becomes the creative.
That raises the stakes. A product with a thin title is not marked as “worse” - it simply will not perform well in a conversation where someone compares options. And a product with a missing field may never enter the system at all.
Key takeaways
A ChatGPT Ads feed requires nine mandatory fields, including brand and seller name, which Google does not require in the same way.
The model is snapshot-based. There is no supplemental layer - every upload is the full catalog.
A product omitted from a snapshot does not disappear immediately. OpenAI keeps its last record for up to fourteen days.
A single bad row can be rejected while the rest of the file continues. Without your own checks, that is easy to miss.
Titles are capped at 150 characters, descriptions at 5,000 characters, and descriptions must be plain text with no HTML.
A ChatGPT Ads feed is a full catalog export that OpenAI treats as the single source of truth about your products. It holds identifiers, titles, descriptions, prices, availability, images, and product page URLs. The system reads those fields when serving an ad and injects them into the product ad template [1].
Being in the file is not enough. The product must be marked as ads-eligible, carry current data, and pass feed processing. Only then does it enter the auction that decides delivery. OpenAI states clearly that eligibility does not guarantee impressions.
It also helps to separate two things that are easy to mix up. Ads in ChatGPT are a paid surface, separate from the model’s organic answers. Preparing a feed does not make the product recommended for free in conversation.
How a ChatGPT feed differs from a Google feed
A ChatGPT Ads feed is the same product catalog, stored differently. Column names largely match Google naming, so a catalog prepared for Merchant Center is a solid starting point. The differences sit in a few fields and one architectural assumption.
Table of five differences between Google Merchant Center and ChatGPT Ads
Element
Google Merchant Center
ChatGPT Ads
File formathow the catalog is delivered
XMLalso CSV and TSV
CSV or TSVXML and RSS not supported
Brand brandproduct brand name
conditionally requiredproducts without a brand: field stays empty
required in every rowan empty value rejects the product
Seller seller_namewho sells the offer
column does not exist
requireda missing value rejects the row
Sale price sale_pricewhen it is equal to or higher than the regular price
product staysthe promotion is not shown
row rejectedthe whole product is dropped, not just the promotion
Ads eligibility is_ads_eligibleallowing the product into campaigns
campaign settings in Google Ads
flag in the feedwithout it the product does not enter Ads
Availability values (in_stock) and price format (379.00 PLN) are identical in both specs. If the feed uses a comma or a space here, it is invalid for Google as well.
Nine fields without which a product will not enter
The feed baseline is nine mandatory fields: product id, title, description, product page URL, brand, seller name, main image URL, availability, and price. Add the ads-eligibility flag when the catalog should run in campaigns.
A few details matter before you generate the file. The id must be stable and must never be reused for another product, because OpenAI matches products by that id, not by the file name. Brand and seller name must be real - no fillers like “unknown” or “n/a”. Product and image URLs must be publicly reachable.
Content limits are the interesting part. Titles fit in 150 characters, descriptions in 5,000, and descriptions must be plain text with no HTML. Shops that store rich product-page HTML with bold text and lists must flatten it first. Shops with two-sentence descriptions have the opposite problem: the model gets too little to match the product to a specific need.
The snapshot model and the fourteen-day rule
Google lets you overlay a supplemental layer on the primary feed and fix selected fields without touching the rest. ChatGPT Ads has no such layer. Every upload is a complete picture of the catalog, and the recommended cadence is at least once a day.
A product that drops out of the export does not vanish immediately. OpenAI keeps its last processed record for up to fourteen days as a buffer against a delayed or incomplete upload. If the product does not return in later snapshots, the record expires after that window.
The practical takeaway: a generation mistake does not signal instantly. The catalog can look fine for two weeks, then products quietly drop out. Control export completeness on your side instead of waiting for an external alert.
If you want to take a product out deliberately and immediately, do not delete the row. Keep it and set the flag that excludes it from search. That takes effect on the next snapshot processing, unlike an omission that waits out the fourteen days.
Why products get rejected
Rejection has two different sources, and you fix them differently.
Technical requirement failures. A missing required field, empty or unrecognized availability, a sale price below zero, equal to or higher than the regular price, a zero price outside the narrow mobile-device exception, a URL with embedded credentials, or a currency outside those configured for the feed. One operational detail matters: a bad row can be rejected while other rows process normally. The catalog does not fail as a whole - it just shrinks. Upload history reports missing columns and invalid values, so start there.
OpenAI policy failures. A separate category. Ads are disabled in some conversation contexts, not every industry is allowed at launch, and some regulated categories need individual review. A technically perfect feed will not help if the product itself is outside advertising rules.
Then there is a class of issues nobody reports as errors, because formally they are not. Promotional fluff instead of factual description. A catalog SKU name instead of a product description. A price mismatch between feed and page. The product is accepted - it just does not win.
How to prepare this feed without manual work
Maintaining two separate catalogs - one for Google and one for ChatGPT - is work that returns on every sync. Price changes, work returns. A new product, work returns. Spec changes, you walk the whole catalog again.
Preparing a ChatGPT Ads feed in Snomi automates that part. We take your Google Merchant Center feed, optimize titles, descriptions, and attributes once, then expose two outputs: a supplemental layer for Google and a complete file for ChatGPT Ads. One input, two channels, the same catalog kept under control.
Frequently asked questions
Yes. ChatGPT Ads launched in Poland on 24 August 2026 with the rest of the European wave, and advertisers can buy campaigns themselves in Ads Manager. You can prepare and connect a feed now. Feed campaign scope and supported markets still change during beta, so confirm the current status in your panel.
Not as a copy. The schema is close and column names largely match, but ChatGPT Ads requires a non-empty brand in every row, a seller name, and a flag that qualifies the product for ads. It will not accept XML at all. You need a separate file generated from the same source data.
No. Google lets you layer a supplemental feed and overwrite selected fields without touching the primary feed. ChatGPT Ads takes a full snapshot of the entire catalog on every update, with no supplemental layer. The file must be complete and refreshed regularly - at least daily is recommended.
Sources
[1] OpenAI Developers, “Product Feeds”, Ads documentation
[2] OpenAI Developers, “Products”, file upload specification
[3] OpenAI Developers, “Overview”, file upload specification
[4] Google, “Product data specification”, Merchant Center Help
Data current as of 9 September 2026. The OpenAI specification is in beta and may change, so check the latest documentation before you implement.