Home

ChatGPT product feed: the complete guide to catalog ads, the file spec and updates

How ChatGPT product feeds work: required fields, import methods, the two-week expiry, Delta API updates, filters, templates, bidding and product reporting.

Published Sep 28, 2026 · 25 min read

What is a ChatGPT product feed?

A ChatGPT product feed is a file with one row per product or variant, in a schema OpenAI publishes, that tells ChatGPT what you sell, what it costs and whether it is in stock.

A standard ChatGPT ad is written by hand, which does not scale to a shop with hundreds of products. With a feed, you give Ads Manager structured data, and product ads are assembled from it. OpenAI describes the ad format as built for showcasing catalog items, with details such as product images, titles, stars, prices, sale prices and your brand.

OpenAI states that feed-based campaigns are designed for retail advertisers with broad or frequently changing product catalogs. It also says that ads created from product feeds "have been among the strongest-performing ads" in its program to date. That is OpenAI's own description, without published figures, so we treat it as a reason to test the format and not as a forecast.

If you are new to the platform, start with how ChatGPT ads work and Ads Manager account setup, then come back here.

Are there two different ChatGPT product feeds?

Yes. OpenAI documents two feed programs that share one product schema: a feed you upload in Ads Manager for advertising, and a commerce feed for organic shopping experiences.

QuestionAds Manager feedCommerce feed
What it powersProduct feed ad campaignsShopping experiences in ChatGPT
Who can use itAdvertisers, from Tools, then FeedsApproved partners, by application
DeliveryCSV or TXT upload, hosted URL, SFTPSFTP file upload and an API
Key flagis_ads_eligibleis_eligible_search

Two statements from OpenAI define the boundary.

First, the ads help article says products from your feed are eligible for use in ads only during this beta. They will not appear in organic ChatGPT conversations, although OpenAI says it may offer that capability in the future.

Second, the commerce documentation says onboarding product feeds in ChatGPT is currently available to approved partners, with an application form.

The practical result: uploading a catalog in Ads Manager does not make you visible in unpaid shopping results. We cover the organic side near the end of this guide, and in more depth in ChatGPT Ads vs. organic mentions.

Which fields does the product file need?

The products spec lists nine required fields for basic product data. An ads feed adds the ads eligibility flag on top.

FieldRequiredWhat OpenAI asks for
item_idYesStable ID, unique per item or variant. Never reuse it for a different item.
titleYesProduct name, including the selected variant when relevant.
descriptionYesFactual product description, in plain text.
urlYesProduct detail page, kept stable, with the variant selected when possible.
brandYesBrand as shown on the product page.
seller_nameYesName of the seller supplying the offer.
image_urlYesMain image, as a direct image URL such as a JPEG or PNG.
availabilityYesin_stock, out_of_stock, pre_order, backorder or unknown.
priceYesRegular price in major currency units, such as 79.99 USD.

OpenAI asks you to keep titles concise and descriptions in plain text, aiming for at most 150 and 5,000 characters respectively. It also asks for a real brand and seller name, not placeholders.

Four flags and objects control where a product may be used:

FieldWhat it controlsDefault when omitted
is_eligible_searchSearch eligibilityTrue
is_eligible_checkoutOpt-in to checkoutDisabled
is_ads_eligibleProcessing for adsDisabled, unless a feed-level Ads default applies
ads_metadataCustom keys for product filtersNo metadata

For advertisers the third row matters most. The help article states that feeds created through Ads Manager make products ads-eligible by default, unless an item is explicitly marked false for ads eligibility. In the developer guide, OpenAI still tells you to set is_ads_eligible to true for products you want processed for ads. Our advice is to set it explicitly in every row, so the file means the same thing wherever it is uploaded.

The example file in the ads developer guide uses these sixteen columns: item_id, title, description, url, brand, image_url, price, availability, seller_name, seller_url, return_policy, target_countries, store_country, is_eligible_search, is_eligible_checkout and is_ads_eligible. It is a good starting template.

A note on older tutorials. The spec still accepts several aliases, including id or sku for item_id, enable_search for is_eligible_search, and is_eligible_ads for is_ads_eligible. OpenAI asks you to send only one name per value. Use the current names in new feeds.

Optional fields worth filling

Beyond the required set, the spec documents optional fields that make a product easier to match and describe:

  • Identifiers: gtin and mpn. A GTIN must be exactly 8, 12, 13 or 14 digits, including a valid check digit.
  • Attributes: condition, product_category, material, color, size, gender, age_group, dimensions and weight.
  • Media: additional_image_urls for extra views of the item.
  • Pricing: sale_price, which must be greater than zero and strictly less than price, in the same currency.
  • Returns: accepts_returns, return_deadline_in_days and return_policy.
  • Reviews: review_count and star_rating, on a 0 to 5 scale.

One correction to a common belief: the spec states that raw review entries and question-and-answer lists are not part of this discovery contract. Send the aggregates, not the review text.

How should prices, availability and variants be formatted?

Write money as an amount, a space and a three-letter currency code, and send one row per purchasable variant with its own price, stock status, URL and image.

Prices. The spec gives 79.99 USD as the pattern: a decimal amount in major units, a space, and an uppercase ISO 4217 code. Use a decimal point, no thousands separators, and for USD two decimal places. OpenAI asks you to submit the current price and to update the feed when a sale starts or ends.

Dates do not schedule anything. The spec is explicit that sale-window dates, expiration dates and availability dates do not schedule price or availability changes. If a sale ends on Sunday, the feed has to change on Sunday.

Availability. Omitted, empty or unrecognized availability values reject the row. Use unknown only when stock status really is unavailable. OpenAI notes that unknown does not assert that the item is in stock.

Variants. For a product sold in several sizes or colors, send a separate row for each selection with:

  1. A distinct item_id per row.
  2. The same group_id on every row, different from each item ID.
  3. listing_has_variations set to true.
  4. A variant_dict that maps option names to the selected values.

General value rules. Use UTF-8 text and absolute URLs, and prefer HTTPS. Keep identifiers as strings so leading zeros survive. In a CSV, quote any cell that contains commas, quotes or newlines. Do not write placeholder strings such as null or n/a into optional fields. Leave them empty.

Google-format files. OpenAI also documents a Google-compatible profile with column names such as id, link and image_link, and custom labels custom_label_0 through custom_label_4 for ads filters. It comes with a condition: use this format only after OpenAI confirms it for your registered feed. Note one spelling difference in that profile, preorder in place of pre_order. XML, RSS and Atom are not supported by this compatibility path.

How do you create a feed and import products in Ads Manager?

Open Tools, select Feeds, click Create Feed, then choose an import method from the three-dot menu on the feed row.

MethodOpenAI says it is best for
Upload CSV or TXTGetting started, or occasional manual updates
Hosted URLA catalog available at a stable HTTPS address
SFTP connectionTechnical teams that automate server-to-server uploads

Processing can take anywhere from a few minutes to a few hours, depending on the size of the feed. Upload History shows processing updates and errors.

The SFTP route in detail

The developer guide walks through the same setup over the Advertiser API:

  1. Create the feed with a name and the countries your catalog supports. Save the returned feed ID.
  2. Configure SFTP access with password authentication or an SSH public key. Generating a new password replaces the previous one.
  3. Prepare the file as a UTF-8 CSV with one row per product item or variant.
  4. Upload it to the SFTP root. OpenAI states that feed files go directly in the root, without nested folders.

If you split the catalog across several files, the files should collectively represent the catalog, with each product appearing once.

Processing is asynchronous. A successful file transfer only confirms that the file arrived. It does not confirm that the products were accepted.

If feed access is unavailable in your account, OpenAI's instruction is to contact your OpenAI account team.

What bulk upload cannot do

Ads Manager has a CSV bulk upload for campaigns, which is a different thing from a product feed. OpenAI states that bulk upload does not currently support creating product-feed campaigns. You build them in the guided flow or through the API. See bulk upload for what that tool does cover.

How long do feed items last, and how often should you refresh?

Feed items expire after two weeks, so a feed needs a recurring refresh. OpenAI recommends a hosted URL or automated SFTP uploads for exactly that reason.

A file uploaded by hand once will stop serving unless someone remembers to upload it again. In our view this is the most common way a working catalog campaign quietly stops.

The commerce file-upload guide explains the retention logic behind the number. A product is not deleted immediately when it is missing from a processed snapshot. OpenAI retains its most recently processed record for up to 14 days, which protects products from disappearing because a file is temporarily missing or delayed.

The same guide sets out how a snapshot pipeline should run:

TopicOpenAI's guidance
Feed typeFull snapshot, treated as the source of truth
CadenceAt least daily
FormatsParquet preferred. jsonl.gz, csv.gz and tsv.gz also supported
File namesStable. Overwrite the same file on every update
Shard sizeUp to 500k items per shard, files under about 500MB

That table describes the commerce file-upload path. For an ads feed, the ads developer walkthrough uses a plain CSV, and its diagnostics tell you to check that files use a supported format. If you plan to send anything other than CSV or TXT to an Ads Manager feed, confirm it during setup.

Three habits apply to both paths:

  • Keep identifiers stable. OpenAI matches products by item_id, not by file name.
  • Send the whole catalog. An SFTP update should include your complete current catalog, including products you want to mark out of stock.
  • Replace, do not accumulate. Replace the existing file or files and remove outdated ones.

How do you update prices and stock between uploads?

Use the Delta API for title, price and availability changes on existing items, and a fresh catalog upload for everything else.

ChangeMethod
Title, price or availability of an existing itemDelta API
New productsUpdated catalog over SFTP
Images, descriptions and other fieldsUpdated catalog over SFTP
Full refreshUpdated catalog over SFTP

With the Delta API you send only the fields that changed. A response of accepted: true confirms submission. Changes apply asynchronously, so allow time before you expect the new price to serve.

The format trap here is the price. The three surfaces use three different notations:

SurfaceExampleMeaning
CSV price79.99 USDMajor currency units and a code
Delta API priceamount 7999, currency USDInteger minor units and a code
Budgets and bids50000000 micros50 major currency units

OpenAI adds a warning for currencies without a decimal subdivision: for JPY, a delta amount of 7999 represents 7,999 yen. It also says not to use campaign budget micros for product prices.

Identifiers follow a rule too. The product ID in a delta request is the catalog's group_id when variants are grouped, otherwise the item_id. The variant ID is always the individual item_id.

To stop serving a product, set its availability to out_of_stock explicitly. OpenAI states that an out-of-stock product stops qualifying for delivery after the change propagates. When it returns, submit in_stock with its current details.

Finally, keep your source catalog consistent with whatever you sent through the Delta API. Otherwise the next full upload will overwrite your corrections with old values.

How do you check that an upload worked?

Read the upload's status and diagnostics in Upload History, or through the upload history endpoint, before you build anything on top of the feed.

StatusWhat it means
scanning, received, processingStill underway. Check again later.
completedProcessed. Check counts and inspect the products.
completed_with_errorsSome data was processed, errors remain.
skippedThe upload was not processed.
failedProcessing failed. Fix the issue and upload again.

Each upload record reports accepted rows, rejected rows and rows eligible for ads. OpenAI notes that upload counts describe one upload and can differ from the feed's current product count. The product count can also remain zero while the initial upload is processing.

The four diagnostic codes in the guide point to the usual causes:

CodeWhat to check
missing_required_columnCompare your columns with the schema
invalid_valueFormatting and allowed values, such as price and currency
unsupported_file_typeThe file format
invalid_sftp_directory_layoutFiles must sit in the SFTP root

The commerce guide names the same three failure patterns in plain words: missing required fields, outdated or non-spec field names, and malformed field values. A malformed row can be rejected while valid rows continue processing.

One sentence from OpenAI deserves attention: a completed upload does not establish that every product can serve. Product data, availability, reviews, product filters and campaign eligibility still apply.

For a new catalog, the commerce guide recommends validating in phases. Start with a small sample of around 100 items, include all required fields in every row, run QA on the first full snapshot, then automate.

Which crawlers must reach your product pages and images?

You must allow OAI-AdsBot, and for product feeds OpenAI also asks you to allow OAI-SearchBot to crawl the product image URLs.

Product pages and images must be publicly accessible HTTPS URLs. The risk is usually the image host, which is often a different domain from the shop, behind its own CDN rules. OpenAI notes that a 403 response can block feed processing.

Check three layers, in this order:

  1. robots.txt. OpenAI crawlers respect it. If access is disallowed, crawling stops immediately.
  2. Firewall, CDN and bot mitigation. These systems can block legitimate crawlers, often with 403 errors. OpenAI states that OAI-AdsBot is officially verified and allowlisted by Cloudflare.
  3. Human verification. CAPTCHAs and JavaScript challenges can block a crawler that passed the first two layers.

If your security team needs fixed IP ranges, OpenAI publishes them at openai.com/searchbot.json and openai.com/adsbot.json. If large uploads trigger rate limiting, look for 429 responses in your logs.

Allowing these crawlers is separate from model training. OpenAI's crawler overview says OAI-SearchBot is for search, that GPTBot is the crawler related to training, and that each setting is independent of the others. It also notes that data collected by OAI-AdsBot is not used to train generative AI foundation models.

How do you build a product feed campaign?

Create a campaign with the type Product feed, add an ad group that selects products with filters, and add one ad template.

In Ads Manager the steps are:

  1. In Campaigns, create a campaign and select Product feed in the campaign type dropdown.
  2. Complete the campaign settings: objective, budget, schedule and targeting.
  3. Create an ad group and select the feed.
  4. Apply product filters and check the product count Ads Manager shows.
  5. Review the bid strategy.
  6. Create one ad template for the ad group.
  7. Review the sample product preview, then submit for review.

The developer guide shows how the three levels divide the work:

LevelWhat you configure
CampaignProduct feed, objective, budget, schedule and targeting
Ad groupBid configuration and optional product filters
AdProduct-ad template

Decisions you cannot undo

OpenAI states that the campaign's mode, objective and linked feed cannot be changed after creation. Choose them before you create the campaign. In the API the mode value is product_feed.

The feed must belong to the same ad account as the campaign. A feed also cannot be archived while it is attached to a non-archived campaign or ad group. Pausing those is not sufficient.

Targeting is country level

New product-feed campaigns support geographic targeting and exclusions only at country level. The campaign help article adds that existing product-feed campaigns were not automatically changed, so earlier sub-national selections may remain, but new ones cannot be added.

What the ad template does

The template is the base for every eligible product in the ad group. In Ads Manager it currently only supports making a selection for your image field, and only one template is necessary per ad group. Titles and descriptions come from the feed, which is why the preview step matters.

In the API, the template has the creative type product_ad_template and uses four macros, written inside double curly braces: brand, product title, product body and product price. You can combine supported macros with text in the title, for example the brand followed by the product title. The selected product supplies the image and destination URL. Each product-feed ad group can contain at most one non-archived product-ad template.

Tracking parameters

To add tracking parameters to product URLs, the developer guide points to landing_page_configuration on the campaign, ad group or ad. OpenAI's help center lists supported macros including {campaign_id}, {ad_group_id}, {ad_id} and {ad_account_id}, filled in at delivery time. Our guide to URL parameters covers the syntax.

Everything starts paused in the API

Campaigns, ad groups and ads created through the API are created paused so you can inspect them. Delivery can begin once reviews, product availability, budget and other serving requirements are satisfied. If it does not, see why ChatGPT ads are not serving.

How do product filters and custom labels work?

A product set is a list of filters on an ad group that decides which products from the campaign's feed that ad group may use.

The campaign owns the feed selection and the ad group inherits it. If you add no filters, the ad group uses the whole feed.

Each filter has a field, an operator and a list of values. OpenAI's examples select products by brand, category, price and item ID, with operators such as in for a list of brands and lte for an upper price bound. Values are sent as strings, including numbers.

Three rules from the developer guide:

  • Filters combine. Each product must satisfy the filters together.
  • Updates replace. Treat the filters in an update as the complete desired list, and include the ones you want to keep.
  • Matching is not delivery. Matching a filter does not guarantee that a product will receive impressions.

Custom labels

When built-in attributes are not enough, put your own grouping in the feed. OpenAI's help article suggests values such as bidding_tier or product_line inside each product's ads_metadata, then filtering on them in the ad group.

Two cautions. The spec says not to invent targeting keys and to confirm them during Ads setup. And a label only selects products. In OpenAI's own example, a label of WA selects the products carrying that label, and does not restrict delivery to users in Washington. Location belongs in campaign targeting.

Our judgment: decide the grouping logic in your catalog data, where it can be versioned and reviewed, and keep the ad groups as thin selections on top of it.

If no products match

Query the feed with an empty filter list first. If products appear, add filters one at a time to find the condition that excludes them. If the unfiltered result is empty, check upload history. Remember that catalog updates can change which products satisfy a filter, for example after a price change.

Which bidding options work with product feed campaigns?

Product-feed campaigns can use impressions, clicks or conversions objectives, and both Maximize results strategies are available for them.

Maximize results. In Ads Manager it is selected by default for eligible new ad groups. ChatGPT Ads adjusts bids to get as many clicks or conversions as possible within your budget. OpenAI states that it prioritizes result volume and does not guarantee delivery against a specific CPA, CPC or ROAS target. To stay within a specific bid limit, select the manual max bid option.

Conversion bidding. The developer documentation states that conversion-optimized cost-per-click, or oCPC, is in open beta for both standard and product-feed campaigns. The conditions:

  • Conversion tracking is set up with the pixel, the Conversions API, or both.
  • Exactly one active standard conversion event is attached when the campaign is created. Custom events cannot be optimization goals.
  • The goal and event cannot be changed after creation.
  • The ad account supports conversion bidding.

In an oCPC campaign you still pay per valid click, not per conversion. The ad group's maximum bid is read as a CPA bid. OpenAI's example: 100000000 micros is a 100.00 USD CPA bid for a USD account. OpenAI calls that bid an optimization input, not a conversion charge.

The Ads Manager help article also describes a choice between click billing and impression billing for the Conversion optimization objective, and says impression billing is currently in beta. It adds that there is no recommended bid amount at this time.

About the numbers in OpenAI's example. The product feed walkthrough uses a 50 USD daily budget and a 2 USD maximum bid. OpenAI labels both as illustrative amounts for a USD account. They are not minimums or recommendations.

Conversion bidding depends on clean measurement. Set up conversion tracking and consider automatic advanced matching first, then read conversion campaigns for the full mechanics. For budgets and pricing models, see ChatGPT Ads cost.

How do you report on individual products?

Use product-segmented Insights in the API, or the Products tab in Ads Manager, to see which items received impressions and clicks.

The Insights API accepts a product segment and returns fields such as the feed ID, item ID, title, impressions, clicks, spend and CTR per product. OpenAI recommends matching results to your catalog with the feed ID and item ID together, since titles are only there for readability.

Two limits to plan around:

  • Product reports do not support hourly granularity. Use daily reporting to follow changes over time.
  • Products with no impressions are not included unless you request zero-impression product rows.

Product cards in multi-product ads

For product-feed ads that show multiple product cards, the API offers two more fields: product.carousel_product_card_impressions and product.carousel_product_card_clicks. They measure interactions with individual cards.

OpenAI states that a card impression is not a billable ad impression, and that card clicks are distinct from the ad click metric. So do not divide spend by card impressions to get a cost per thousand. Use card metrics to compare products with each other, and billable impressions for cost.

For purchase value and return on ad spend, OpenAI points to conversion reporting. Our guide to reporting and privacy explains those views.

Why is the Products tab empty after a successful upload?

Because the Products tab is a reporting view, not an inventory. A product appears there only after it has delivery data from an active product-feed campaign.

If the campaign has not started, has a future start date, or has not yet delivered, the tab may be empty or show fewer products than the feed contains. OpenAI says this does not necessarily mean the upload failed.

What you are checkingWhere to lookTiming
Feed readinessProduct count in the ad-group flowDuring setup
First product rowsProducts tabUp to seven hours after delivery begins
Impressions, clicks, CTRCampaign reportingAbout every 15 minutes
SpendCampaign reportingDelayed about 7 to 8 hours

If expected products are still missing after the campaign has delivered, OpenAI asks you to contact support with the ad account ID, feed ID, campaign and ad-group names, date range and time zone, example product IDs and a screenshot of the Products tab.

Does an ads feed put your products in organic ChatGPT shopping results?

No. During the beta, products from an Ads Manager feed are eligible for ads only. Organic product results are selected separately.

OpenAI's shopping help article states that product results are selected independently by ChatGPT and are not ads, nor influenced by any OpenAI partnerships. When choosing products, ChatGPT considers the query and context, structured metadata from first-party and third-party providers, model responses generated before new search results, and OpenAI safety standards.

A few points from that article matter to merchants:

  • Listings may be rewritten. ChatGPT may generate simplified product titles and descriptions, and labels such as "Budget-friendly" that are not verified statements.
  • The first price is not always the lowest. Prices in the initial response typically reflect the first merchant listed.
  • Merchants are ranked. Factors include availability, price, quality, and whether the merchant is the maker or primary seller.
  • Updates can lag. OpenAI acknowledges there may be some delay before price changes are reflected.

Three routes into organic results

Shopify. OpenAI states that for merchants on Shopify, product data is already integrated into ChatGPT through Shopify Catalog, and that no additional work is required from individual merchants.

A direct commerce feed. Other merchants can apply for direct feed access. OpenAI's get-started guide generally recommends providing the entire feed once a day via file upload, then sending updates through the day via the API. Small feeds can use the API for both. Promotions data can only be provided via the API, which has three surfaces: Feeds, Products and Promotions.

The open web. Shopping research, which OpenAI introduced on November 24, 2025, builds a buyer's guide from merchant data provided through the Agentic Commerce Protocol, publicly available product information and other retail sources. OpenAI notes that some retailers block automated access, and when that happens shopping research will skip those sources or rely on other sites.

The Agentic Commerce Protocol is the open standard OpenAI announced on September 29, 2025 together with Instant Checkout, and co-developed with Stripe. Checkout is a separate step from a feed: the spec says checkout requires a separately enabled integration, and that setting an eligibility flag does not complete checkout onboarding.

If you use a commerce feed, OpenAI's best-practices page suggests adding a feed attribution parameter to the product URL, for example utm_medium=feed, and keeping tracking parameters consistent across snapshots.

For the unpaid side as a whole, read how to appear in ChatGPT answers.

Which products are not allowed in a feed?

OpenAI's commerce guide allows only products and services that are legal, safe and appropriate for a general audience.

Its list of prohibited products includes, among others, adult content, age-restricted products such as alcohol, nicotine and gambling, harmful or dangerous materials, weapons, prescription-only medications, unlicensed financial products, legally restricted goods, illegal activities and deceptive practices. OpenAI may remove a product or ban a seller from being surfaced in ChatGPT if these policies are violated.

Ads have their own rules on top. Every product ad still goes through ad review, so read ChatGPT Ads policies before you upload a catalog with borderline categories.

What should you check before you launch?

Run through the feed, the campaign and the measurement in that order.

Feed

  • Every row has the nine required fields, with current field names.
  • is_ads_eligible is true for the products you want to advertise.
  • Prices use the amount and currency code format, and match the live site.
  • Unavailable products are marked out_of_stock, not deleted.
  • The refresh is automated, so items do not reach the two-week expiry.
  • OAI-AdsBot and OAI-SearchBot can reach product pages and the image host.

Campaign

  • The correct feed is selected, and the campaign type and objective are final.
  • The product count matches the set you intended.
  • Titles, descriptions, images and landing pages look right in the preview.
  • Budget, bid strategy and country targeting are complete.

Measurement

  • Conversion events are in place and tested.
  • URL parameters are set where you need them.
  • Someone owns the weekly product report.

Common mistakes we would avoid, based on the documentation above:

  1. Treating the ads feed as an organic listing. It is not, during the beta.
  2. Uploading once by hand and forgetting the expiry.
  3. Deleting rows to stop a product, in place of marking it out of stock.
  4. Sending Delta API prices in major units, or in micros.
  5. Reading an empty Products tab as a failed upload.
  6. Using a label such as a region code and expecting it to target a location.

If you would rather hand over the feed and campaign work, see our services and pricing, or contact us.

Frequently asked questions

What file format does a ChatGPT product feed use?

In Ads Manager you can upload a CSV or TXT file, point to a hosted URL, or connect over SFTP. OpenAI's ads developer guide describes a UTF-8 CSV with one row per product item or variant. For the commerce file-upload path, OpenAI prefers Parquet and also supports jsonl.gz, csv.gz and tsv.gz.

How many fields are required?

The products spec asks for nine required fields in basic product data: item_id, title, description, url, brand, seller_name, image_url, availability and price. For ads, is_ads_eligible is conditionally required for Ads processing.

How often do I need to update the feed?

Often enough that items never expire. OpenAI states that items expire after two weeks and recommends a hosted URL or automated SFTP uploads. For snapshot feeds, its recommended cadence is at least daily.

How do I remove a product from ads?

Set its availability to out_of_stock, through the Delta API or in the next catalog upload. You can also mark an item false for ads eligibility. OpenAI's update guidance is to keep the product in the file and mark it, not to drop the row.

Can I use a Google Merchant Center file?

Possibly. OpenAI documents a Google-compatible profile with columns such as id, link and image_link, but says to use it only after OpenAI confirms it for your registered feed. On that path, eligibility comes from registered feed settings, not from uploaded flags.

Can product feed campaigns optimize for purchases?

Yes. OpenAI states that product-feed oCPC is available in open beta. You need conversion tracking and exactly one active standard conversion event, such as order_created. You are still billed per valid click.

Can I target a city or region with a product feed campaign?

Not in new campaigns. OpenAI states that new product-feed campaigns support geographic targeting and exclusions only at country level.

Do I need a feed if my shop is on Shopify?

For organic results, OpenAI says Shopify product data is already integrated through Shopify Catalog. For product feed ads, you still create a feed in Ads Manager, because that is where a product feed campaign gets its products.

Does OpenAI publish a minimum catalog size, budget or bid for feed campaigns?

We did not find one in the OpenAI pages listed under sources. The only amounts in the product feed walkthrough are labeled illustrative, and the help center says there is no recommended bid amount at this time.

Will my feed products appear in shopping research?

Not from the ads feed. Shopping research uses merchant data provided through the Agentic Commerce Protocol, public product information and other retail sources. Keeping your product pages open to automated access helps, since OpenAI says blocked sources are skipped.

Want it done for you? ChatGPT Ads launch: we set up the account and your first campaign