Dialogue AdsDialogue Ads

Checked 19 October 2026

Product feeds are how shopping ads work on ChatGPT

Since 4 September 2026, you need a product feed to appear in ChatGPT shopping placements. You send your catalog, pick which products an ad group can use, and ChatGPT fills in a template with the title, price and image. Here is what the feed needs, and what OpenAI has not said yet.

4 Sep

Feeds required for shopping

The date a product feed became required for ChatGPT shopping placements.

PPC Land, Sep 2026

9

Required fields per row

In the OpenAI format. Plus is_ads_eligible set to true for ads.

OpenAI product file spec

US

Default target of a standard upload

Other markets need OpenAI to set up your integration first.

OpenAI product file spec

How it works

1 template, many products

You do not write an ad per product. The feed does that part.

A product feed campaign has 3 levels. The campaign holds the feed, the objective, the budget and the targeting. The ad group holds the bid and an optional product set, meaning a filter on which products it can use. The ad is a template.

The template uses 4 fields from each product: brand, title, description and price. The image and the click destination come from the product too, so you do not upload a separate image. Each ad group can hold only 1 product template that is not archived.

The campaign’s feed, objective and mode cannot be changed after you create it. Choose them before you start. All of this is in OpenAI’s product feeds guide.

The required fields

9 fields on every row

1 row per item or variant, in a UTF-8 file. These 9 must have a value, or the row is not useful.

FieldWhat goes in itExample
item_idA stable ID, unique per item or variant. Never reuse it.TRAIL-BLK-10
titleProduct name, with the variant when it matters. Aim for 150 characters or less.Trail running shoes, black, size 10
descriptionPlain, factual text. Aim for 5,000 characters or less.Waterproof trail shoes with a rubber outsole.
urlThe product page, with the variant selected when possible. Public HTTPS.https://example.com/products/trail
brandThe brand as shown on the product page. No placeholders.Northline
seller_nameWho sells this offer.Northline Outdoor
image_urlA direct link to the main image of this variant, such as a JPEG or PNG.https://example.com/images/trail.jpg
availabilityin_stock, out_of_stock, pre_order, backorder or unknown. Empty rejects the row.in_stock
priceRegular price in major units, a space, then the currency code.79.99 USD

The ads switch: is_ads_eligible

Set is_ads_eligible to true on every product you want used in ads. If you leave it empty, ads are off for that product, unless your feed has an ads default set up. It is separate from search eligibility.

Variants

Each size or colour gets its own row with its own item_id, price, stock, link and image. Rows of the same product share a group_id, set listing_has_variations to true, and list the chosen options in variant_dict, for example colour and size. The group_id must differ from every item_id.

Full rules are in the OpenAI product file spec.

Already have a Google feed?

OpenAI accepts a Google-compatible feed once it confirms it for your account. CSV, TSV or TXT only, gzip allowed. No XML, RSS, Atom or JSON.

It needs id, title, description, link, image_link, availability, price and brand, plus a GTIN or MPN unless identifier_exists is set to no. Note that availability uses preorder here, not pre_order.

Sending the file

Upload over SFTP, then check the status

A finished upload does not mean every product can show.

You create a feed with the countries your catalog covers, then connect over SFTP with a password or an SSH key. Files go straight into the root folder, with no subfolders. If you split the catalog into several files, each product must appear only once across them.

Processing runs in the background. The upload history tells you how many rows were accepted or rejected, and why.

Upload statusWhat it means
scanning, received, processingStill working. Check again later.
completedDone. Check the counts and the products you want to advertise.
completed_with_errorsSome rows went in, some did not. Read the diagnostics and fix the rejected rows.
skippedThe upload was not processed. Check your files before assuming anything changed.
failedNothing was processed. Fix the issue and upload again.

Keep prices and stock fresh with the Delta API

For a product already in the feed, the Delta API changes the title, price or availability without a new upload. Send only what changed. Watch the format: the API wants the price in minor units, so $79.99 is sent as 7999.

New products, new images or new descriptions need a full catalog upload over SFTP. When a product sells out, mark it out_of_stock. It stops showing once the change goes through.

Pick products with product sets and custom labels

A product set filters the feed for one ad group: by brand, category, price or item ID. You can also add your own labels in ads_metadata, such as custom_label_0 set to “summer”, and filter on those. Different ad groups can use different parts of the same catalog.

A label only picks products. It does not decide who sees the ad. Location targeting for product feed campaigns works at country level only.

Bidding

Product feed campaigns can use impressions, clicks or conversions as the objective. Conversion campaigns (oCPC) bill per click and need 1 active conversion event set when you create the campaign. oCPC is in open beta. Maximize Results is available on some accounts and setups, and OpenAI says it depends on both.

Carousel numbers

Since 20 August 2026, OpenAI reports impressions and clicks for each carousel card. These are counted apart from the impressions you pay for. Source: PPC Land.

Hotels and Amazon

Hotels use a separate hotel property feed, in a closed beta for approved pilot advertisers only.

In the US, the Amazon DSP pilot also offers product feed ads, built from your existing catalog.

Not published yet

OpenAI has not published a CPC or CPM for shopping ads, a list of extra markets it can switch on, or how it ranks products inside a carousel.

Questions

Product feeds, FAQ

Do I need a product feed to run ChatGPT ads?

Only for shopping placements. Since 4 September 2026, a product feed is required to appear there. Standard text and image ads in Ads Manager do not need one.

Can I reuse my Google Merchant Center feed?

Often, yes, but only once OpenAI confirms it for your feed. It must be a CSV, TSV or TXT file (gzip is fine). XML, RSS, Atom, JSON and spreadsheets are not accepted on this path, so a typical Merchant Center XML export has to be converted first.

Can my product ads run outside the US?

A standard OpenAI-format upload targets the US only, whatever your country columns say. Other markets work only after OpenAI sets up your integration and confirms the countries and currencies. OpenAI has not published a list of which markets it can set up.

How do I update a price or mark something out of stock?

Use the Delta API for title, price or availability changes on products already in the feed. Anything else, like new products or new images, needs a full catalog upload over SFTP.

What does a product feed campaign cost?

OpenAI has not published separate prices or a separate minimum for product feed campaigns. You set a budget and a bid as in other campaigns, and pick impressions, clicks or conversions as the objective.

Next

A feed only picks the products. Targeting and budget decide who sees them and how often.

Keep this page useful

Feed rules and markets keep changing. We send a short monthly note on what changed and whether it matters to you.

We never share your address. Unsubscribe in a click.

Have us do it

We map your catalog to the feed, set up the product sets and run the campaign. Fixed setup fee, live in 14 days, then month to month.