How to Create a Product Feed for OpenAI Ads on Shopify (Step by Step)
To run product feed ads on ChatGPT, you need a formatted product feed. Here is what it needs, how to create and keep one synced from your Shopify catalog, and the errors that get feeds rejected.
“How to Create a Product Feed for OpenAI Ads on Shopify (Step by Step)”
The short version
- To run product feed ads on ChatGPT, OpenAI needs a product feed: a formatted file of your catalog with the right fields, kept up to date.
- You can build and maintain it by hand (export a CSV, map every field, fix errors, re-upload after every change) or automate it.
- The hard part is not creating it once. It is keeping it accurate as prices and inventory change.
- Reach: Feed for ChatGPT Ads turns your Shopify catalog into a valid OpenAI feed and keeps it synced automatically.
If you want to run product feed ads on ChatGPT, you cannot just point OpenAI at your store. You have to give it a product feed: a structured file of your catalog, formatted the way OpenAI requires, and kept current. Here is what that feed needs, the two ways to create and maintain it, and the mistake that quietly wastes ad spend.
What is an OpenAI Ads product feed?
A product feed is a structured list of your products, formatted so OpenAI's Ads Manager can read them and turn them into product ads. Each product, and each variant, becomes a row with the fields OpenAI needs. Without a valid feed, your product feed ads have nothing to show.
It is worth being clear on how this differs from organic discovery. Getting your products recommended in ChatGPT for free happens automatically through Shopify's Agentic Storefronts (covered in How to get your Shopify products into ChatGPT). A product feed is the separate thing you need to run paid product feed ads.
What your feed needs
OpenAI expects specific fields, in a specific format, for every product. In general that means a unique product or variant ID, a clear title, a description, the current price and currency, availability (in or out of stock), a product image URL, and the product page URL. Each field has rules: titles and descriptions have length limits, images have to load, prices have to be valid. A feed that breaks those rules gets rows rejected, and you find out when your ads do not run.
Option 1: build and maintain it by hand
The manual path looks like this:
- Export your catalog to a CSV or spreadsheet.
- Map every Shopify field to OpenAI's required field names and format.
- Handle variants, since each one becomes its own row.
- Validate: check for missing images, invalid or missing prices, and text that is too long.
- Upload it to OpenAI.
- Then do it all again every time a price changes, an item sells out, or you add products.
For a tiny catalog, you can survive this. For a real store, it is a recurring chore that is easy to get wrong, and every mistake either gets rejected or, worse, runs ads with the wrong price.
Option 2: automate it with Reach: Feed for ChatGPT Ads
The alternative is to let an app do the whole job. Reach: Feed for ChatGPT Ads connects to your Shopify catalog and turns every variant into a correctly formatted feed row. Its validation catches missing images, prices, and overlong text before delivery, it uploads daily, and it re-syncs after you edit your catalog. A dashboard shows your deliveries and flags any data issues.
No spreadsheet, no manual mapping, no re-uploading after every change. You will need an existing OpenAI Ads account with feed access, and from there the app handles the feed itself.
The part people forget: keeping the feed in sync
Creating the feed once is the easy part. The real problem is drift. Prices change, items sell out, you add and remove products, and a stale feed means your ChatGPT ads show wrong prices or push products you cannot ship. That wastes spend and burns trust with shoppers who click through to a surprise. A feed is only useful if it stays current, which is why automatic re-sync matters more than the initial upload.
Common feed errors, and what they mean
| Error | What it means |
|---|---|
| Missing or broken image | A product with no valid, loading image URL gets rejected |
| Missing or invalid price | A blank or malformed price fails validation |
| Overlong title or description | Text past the field limit gets cut or rejected |
| Out-of-stock items still in the feed | You are advertising products you cannot sell |
Good tooling catches these before delivery, instead of you learning about them from a rejected feed or an underperforming campaign.
Once your feed is live, measure what it returns
A synced feed gets your products into OpenAI Ads. The next question is whether those ads actually drive sales, which is a separate, tracking problem. A browser pixel misses a large share of ChatGPT conversions, so you need accurate, server-side tracking to see which products and clicks convert. That is covered in How to track OpenAI Ads conversions on Shopify. Feed your catalog in, then measure what comes back out.
Skip the spreadsheet. Get Reach: Feed for ChatGPT Ads on the Shopify App Store to turn your catalog into a valid OpenAI product feed and keep it synced automatically.
Frequently asked questions
Do I need a product feed for ChatGPT ads?
Yes, to run product feed ads. Organic recommendations in ChatGPT come from Shopify's catalog sync automatically, but paid product ads require a formatted feed uploaded to OpenAI.
What is an OpenAI Ads product feed?
A structured file of your products, with the fields OpenAI requires (ID, title, description, price, availability, image, and link), that its Ads Manager turns into product ads.
What fields does an OpenAI Ads feed require?
Generally a unique ID, title, description, price and currency, availability, an image URL, and the product URL, each following OpenAI's format and length rules.
Can I create the feed from Shopify automatically?
Yes. Reach: Feed for ChatGPT Ads converts your Shopify catalog into a valid feed, validates it, and keeps it synced, so you do not manage spreadsheets.
How often does the feed need to update?
Whenever prices, inventory, or products change. A stale feed advertises wrong prices and out-of-stock items, so daily automatic re-sync is the safe default.
What causes a product feed to get rejected?
Usually missing or broken images, invalid or missing prices, or text that exceeds OpenAI's length limits. Validating before you upload prevents most rejections.