ChatGPT Ads for ecommerce: running campaigns from a product feed
Last updated: August 24, 2026, verified against official OpenAI documentation. The field and mode names quoted here come from OpenAI's developer documentation and may change during the beta.
For an ecommerce merchant, writing one ad per SKU stops making sense past a hundred products. That is exactly the problem product feed campaigns solve: you connect your catalog, and the system picks an eligible product when the ad serves. This page covers the real setup. The broader picture is in our ChatGPT Ads guide.
AI engines covered on this page
- ChatGPT
What a product feed campaign actually is
A product feed is a merchant catalog that keeps your item details up to date: titles, descriptions, prices, availability, images and destination URLs. Instead of creating a separate ad for every item, you connect the feed to a campaign and let OpenAI select an eligible product when the ad serves.
Product feed campaigns let retail advertisers upload a product feed in Ads Manager and create ads based on that catalog, making it easier to bring more of your catalog into ChatGPT ads, create ads at scale, and connect users with relevant products as they explore, compare and decide.
Technically, the campaign is created with mode set to product_feed and the ID of a feed linked to your ad account.
Why this format deserves testing first
OpenAI states that ads created from product feeds have been among the strongest-performing ads in the program to date, and that advertisers using product feeds have been among the strongest performers on the platform.
That is a platform observation about its own inventory, not a guarantee of results for your catalog. It does tell you where to spend effort first as a merchant: between a week writing manual ads and a day wiring a feed properly, the documentation clearly points one way.
The three feed upload methods
OpenAI documents three ways to send your catalog:
| Method | Best for | Automatable |
|---|---|---|
| CSV or TXT upload | Getting started, or occasional manual updates | No |
| Hosted URL | A catalog available at a stable HTTPS address | Yes |
| SFTP connection | Technical teams automating server-to-server uploads | Yes |
The expected format is Google-compatible product data feeds, which is good news: if you already feed Google Merchant Center, most of your feed structure carries over.
One integration constraint to plan for: the developer documentation states that the public Advertiser API does not provide endpoints to create a feed connection, list linked feeds, or upload a catalog file. Connecting the feed happens in Ads Manager.
Item expiry: the manual-file trap
This is the detail that decides your architecture: items expire after two weeks. OpenAI therefore recommends using a hosted URL or automated SFTP uploads rather than a hand-uploaded file.
Translated into an operational consequence: a CSV uploaded once "just to test" will see its catalog silently disappear a fortnight later, with a campaign that stops delivering and no obvious error message. If you start on CSV, put the date in your calendar, or move to a hosted URL as soon as the test looks promising.
For partial updates, OpenAI documents a Delta Feeds API (PATCH /feeds/{feed_id}/products) for updating availability or titles without a full re-upload. That's the right tool for syncing stock-outs several times a day.
is_ads_eligible: the field that decides everything
A single field governs whether a product gets processed for ads, and its name invites mistakes. The documented rules:
- For Ads processing, set is_ads_eligible to true on each product that Ads should process.
- The legacy alias is_eligible_ads is accepted.
- The documentation is explicit: use is_ads_eligible, not is_ads_enabled. Ads feed ingestion reads is_ads_eligible and the legacy alias, it does not read is_ads_enabled.
- An important nuance: ads eligibility is necessary, but it does not guarantee that a product will serve.
A typo in this field produces a feed that ingests without any visible error but where no product becomes eligible. It's the first thing to check when a product feed campaign won't deliver.
What the feed has to contain
The documentation points to the stable product feed specification for the full field list, and asks you to include every field marked Required in that specification. The information the feed keeps up to date is described explicitly: titles, descriptions, prices, availability, images and destination URLs.
Our practical recommendation, consistent with OpenAI's ad creation guidance: treat your feed's titles and descriptions as advertising creative in their own right. OpenAI recommends keeping titles concise and within recommended character limits, making titles informative by prioritizing clear, useful details over broad marketing language, and adding new information in descriptions rather than repeating the same message.
On images, the guidance is to keep them simple and relevant: clear visuals that support the ad message, avoiding overly abstract or cluttered visuals, and ensuring the visual matches the title and copy.
Ads and organic product results are two different things
A widespread confusion, including among experienced merchants: the products ChatGPT surfaces on its own in a shopping conversation are not ads. OpenAI puts it directly: product results are selected independently by ChatGPT and are not ads, nor influenced by any OpenAI partnerships. Ads are separate from product results.
Concretely, a merchant plays two distinct games:
- Organic visibility in product results, where merchants are ranked on factors like availability, price, quality, and whether they are the maker or primary seller of the item. That's the subject of our guide to ChatGPT Shopping and agentic commerce.
- Paid visibility through product feed campaigns, the subject of this page.
Investing in one does not excuse you from the other, and buying ads does not improve organic ranking.
Measuring ecommerce conversions
A merchant's tagging plan rests on the commerce family of standard events, whose expected type field is contents:
- items_added: add to cart.
- checkout_started: checkout begun.
- order_created: order placed, the reference event for optimization.
Documented fields for these events include amount, currency and a contents array with id, name, content_type and quantity, using integer values for amount and quantity. Full implementation, including deduplication with the Conversions API, is covered in our guide to the ChatGPT Ads pixel and conversion tracking.
One current caveat: product-feed oCPC is described as being in open beta. If you're aiming for conversion optimization on a catalog, check availability on your account before building a media plan around it.
Reading your ROAS in Ads Manager: what drives the bid, what's just informational
Ads Manager now surfaces revenue and a ROAS calculated from order_created: every order reported back with its amount feeds this reporting module directly, with no extra configuration beyond the event itself being correctly installed.
CSV exports also include view-through conversions, on a fixed one-day window. The point not to miss, because it changes how you read the number: these view-through conversions do not influence CPA, post-click conversion rate, bids, billing, or conversion optimization. They display as supplemental information, in a separate column; adding them to your post-click conversions to calculate an overall ROAS skews the number in the most flattering direction, which is exactly the risk to avoid.
In practice: base your bidding and budget decisions on post-click conversions and the ROAS that comes from them, and keep view-through conversions as an exposure indicator, not a profitability figure.
Don't block OpenAI's crawlers on your product pages
A technical topic merchants underestimate, since their infrastructure is usually the most heavily defended: landing pages must not block the OAI-AdsBot and OAI-SearchBot user agents. OAI-AdsBot is required for ChatGPT Ads landing page validation and review.
A common cause of ad disapproval is exactly this: a landing page that blocks OpenAI user agents or IP addresses. The documentation asks you to make the landing page crawlable for OAI-AdsBot by fixing, where relevant, robots.txt, WAF, CDN, bot mitigation, authentication and rate-limiting blocks. A sample robots.txt configuration explicitly allows both agents.
If you have to work from IP allowlists, OpenAI publishes openai.com/adsbot.json and openai.com/searchbot.json. OAI-AdsBot is also verified and allowlisted by Cloudflare.
On a catalog of several thousand URLs, these defenses usually trigger on request rate rather than robots.txt: that's the setting to examine first. Our ChatGPT Ads landing page checker tests a URL's accessibility in seconds.
The prohibited categories that hit retail
Even on a general catalog, certain product lines can block an entire campaign. During the initial test period, ads are primarily limited to consumer verticals: lifestyle and household goods, local services, travel and experiences, digital products or education. All other categories are disallowed at launch.
Concretely, a merchant who also sells alcohol, supplements with health claims, or equipment falling into restricted categories needs to check this before connecting an entire feed. The detail is in our guide to ChatGPT Ads policies.
Merchant setup checklist
- Start from your existing Google Merchant Center feed, since the expected format is Google-compatible.
- Add is_ads_eligible set to true on the products you want to run, and double-check the field spelling.
- Include every field marked Required in the specification, and verify titles, descriptions, prices, availability, images and destination URLs.
- Pick your upload method: hosted URL or SFTP as soon as the test looks promising, because items expire after two weeks.
- Plan for the Delta Feeds API for intraday availability updates.
- Create the campaign in product_feed mode, linked to the feed.
- Install the commerce events and verify order_created before considering oCPC.
- Check OAI-AdsBot access on a sample of product pages, not just the homepage.
- Review your catalog's categories against the ad policies.
What is not publicly documented
Points we flag as unconfirmed for lack of an accessible official source:
- The maximum number of products per feed is not stated in the pages we consulted.
- Precise image specifications (dimensions, weight, accepted formats) do not appear in the ads feed documentation we consulted.
- The exact character limits for titles and descriptions are not published, the documentation refers to "recommended character limits" without detailing them.
- The refresh frequency for a hosted URL is not specified in the pages we consulted.
- No delivery guarantee exists for an eligible product, the documentation explicitly says the opposite.
For these points, OpenAI's product feed specification is the authority and should be consulted directly before a large-scale integration.
Frequently asked questions
Do I need one ad per product on ChatGPT Ads?
What methods exist to upload a product feed?
Why are my products disappearing from the feed?
Which field makes a product eligible for ads?
Are the products ChatGPT shows on its own ads?
Can I reuse my Google Merchant Center feed?
Can feeds be managed through the advertiser API?
Do view-through conversions count in the ROAS shown?
Does conversion optimization work on a product feed?
SEO score, GEO score, performance and responsive: 49 analyses checked, instant AI Overviews verdict.
Related guides
ChatGPT Ads: the complete 2026 guide to advertising on ChatGPT
How ChatGPT Ads works, where it's available, how to set up an account, structure a campaign, target with context hints, and budget for it: the reference guide, kept continuously updated.
Read the guideSelling on ChatGPT: the complete guide to ChatGPT Shopping and the Agentic Commerce Protocol (2026)
How ChatGPT Shopping works, what the Agentic Commerce Protocol actually is, how to build a product feed, how ChatGPT ranks merchants, and where Instant Checkout really stands.
Read the guideChatGPT Ads pixel and Conversions API: setting up conversion tracking
How to install the ChatGPT Ads measurement pixel, which standard events exist, how to wire the server-side Conversions API, deduplicate both sources, handle consent and read attribution correctly.
Read the guide