ChatGPT Ads Product Feed Generator

Free to 500 products · No signup · Runs in your browser

ChatGPT Ads Product Feed Generator

Drop in a Shopify export, a Google Shopping feed, or any product CSV. Get back a file OpenAI Ads Manager will actually ingest, with the eligibility flags, the currency formatting and the variant grouping already handled.

  1. 1Load your feed
  2. 2Confirm the mapping
  3. 3Validate and export

Drop your feed here

or click to choose a file

CSV · TSV · TXT · XML · RSS · GZ

Everything runs in your browser. No file ever leaves this page.

Built by AdSea Innovations. Field definitions follow the OpenAI product feed specification. Manually uploaded items expire after 14 days. Move to a hosted URL or SFTP for anything recurring.

What this actually does

OpenAI Ads Manager will only ingest a product feed that matches its own specification. Most merchants already have a feed, but it is in someone else's shape: a Shopify export, a Google Merchant Center feed, a CSV a developer wrote years ago. The gap between those and the OpenAI format is small enough to feel trivial and large enough to waste an afternoon. This converter closes it.

Detects what you gave it

Shopify exports, Google Shopping feeds and generic CSVs each get their own handling. Column names are matched by synonym and by token, so a feed that names things differently still lands in the right fields.

Fixes the Shopify shape

Product level cells left blank on repeat rows are filled back in, image only rows are dropped, the HTML body is flattened to plain text, and variants are grouped under their parent.

Sets the eligibility flags

ChatGPT search, ChatGPT checkout and Ads eligibility are written per product, along with currency in ISO 4217 and target countries in ISO 3166 alpha 2.

Validates before you export

Rows that would be rejected are dropped and counted with the reason. Rows that will upload but are worth fixing are flagged as warnings. You see both before you download anything.

Pricing

Feeds up to 500 products are free, with no signup and no account. Above that it is a one off payment for the conversion, priced by catalogue size. There is no subscription and nothing recurring.

Catalogue sizePrice
Up to 500 productsFree
501 to 1,000€9
1,001 to 3,000€19
3,001 to 5,000€29
5,001 to 15,000€49
15,001 to 50,000€99
Above 50,000Talk to us

Prices exclude VAT where it applies. You convert and see the full validation result before paying, so you know it worked on your file first.

Nothing leaves your browser

There is no upload step, because there is no server to upload to. The converter is JavaScript that runs on your machine: it reads the file you choose into memory, converts it there, and hands the result back as a download. Your product catalogue, your prices and your margins are never transmitted to this site or to anyone else. Close the tab and it is gone.

Questions

Is my product data uploaded anywhere?

No. The converter is JavaScript running in your own browser. The file you choose is read from disk into memory on your machine, converted there, and written back out as a download. It is never sent to this site or to anyone else, and closing the tab discards it.

Which files can I load?

A Shopify product export, a Google Shopping or Merchant Center feed, or any product CSV, TSV or TXT file. XML and RSS feeds work too, as do gzipped versions of any of these. Shopify exports are detected automatically and handled with their own rules.

What does it do with Shopify variants?

Shopify repeats one product across several rows and leaves the product level cells blank after the first row. Those cells are filled back in, image only rows are dropped, the HTML body is flattened to plain text, and each variant becomes one row with its own item ID, options and price.

What is the difference between OpenAI native and Google compatible output?

OpenAI native writes the specification's own column names and gives every product its own is_ads_eligible flag, so you control eligibility row by row.

Google compatible keeps Google style column names so custom_label_0 to custom_label_4 survive for product set filtering, but eligibility then comes from the feed configuration in Ads Manager rather than from the file. Do not mix the two column vocabularies in a single upload.

Why were some of my rows dropped?

Rows that fail validation are dropped and counted, with the reason shown before you export. The usual causes are a missing or malformed image URL, no price, or no item ID. Rows removed on purpose by your own settings, such as drafts or out of stock products, are counted separately as filtered out.

How long does an uploaded feed stay live in OpenAI Ads Manager?

Manually uploaded items expire after 14 days. For anything recurring, point Ads Manager at a hosted URL or SFTP feed instead of re-uploading a file by hand.

Does it cost anything?

No. There is no signup, no account and no usage limit. It is a free tool published by AdSea Innovations, an AI-first performance marketing agency.

Who made this

Built by AdSea Innovations, a performance marketing agency working on Google Ads, Meta, LinkedIn, TikTok, SEO and GEO. We wrote it because we needed it, and published it because other people need it too. It is not affiliated with or endorsed by OpenAI or Shopify.