A product feed for AI shopping assistants is a structured file of your catalog. Each row describes one item, and Google's Shopping Graph and ChatGPT read those rows to decide which products to show, at what price and whether they're in stock. Shoppers ask assistants long, specific questions, so the feed has to carry details such as color and size in fields a machine can read without guessing. Material and price need machine-readable fields too.

An AI-ready feed has one row per variant. Each row has a stable ID, and a shared group ID ties the sizes and colors of one product together. Google and OpenAI both read the feed as their main record of what you sell, and the scale shows why. Google says its Shopping Graph holds more than 50 billion product listings, and 2 billion of them are refreshed every hour. A listing that's sparse or out of date loses to the many listings that aren't.
The two specs overlap more than they differ. That means you can keep one master catalog and send a version shaped for each channel. The table sets the core structural rules side by side.
| Attribute | Google Merchant Center | OpenAI product feed |
|---|---|---|
| Identifier | `id`, unique per variant | `id`, max 100 characters |
| Title length | 1 to 150 characters | Max 150 characters |
| Description length | Max 5,000 characters | Max 5,000 characters |
| Category | Optional, Google can auto-classify | Required, per Malcolm Gibb's spec comparison |
| Return policy | Set at account level | Set per product |
| Platform-only fields | Custom labels 0 to 4 | `enable_search`, `enable_checkout` |
| Refresh | Scheduled fetch or API | Pushed every 15 minutes at most |
Identifier
Title length
Description length
Category
Return policy
Platform-only fields
Refresh
Before you build anything, check that your IDs never change when a product is edited or restocked. When an ID changes, both platforms treat the item as brand new and its history is lost.
Google's AI shopping needs the same core attributes as a standard Shopping feed. Each row needs an ID, with a title and description to describe the item. Supply a link and image link for it. Price and availability are required, as are brand and a product identifier. Apparel also needs color and size, with gender and age group specified. The difference with AI surfaces lies in how hard the optional fields work, because an assistant breaks one conversational question into a set of attribute filters.
Both platforms require an ID and title on every row. A description must accompany the landing page link and main image. Price and availability are also mandatory; a row missing any of these fields is rejected. Google asks for brand only when a product has a clear brand or manufacturer, but OpenAI wants it on every row. A product that passes Google's checks can still fail the OpenAI profile, as CommerceClarity notes in its field-by-field mapping.
CommerceClarity illustrates how assistants use optional fields with the query "waterproof trail shoe, black, size 10, under 100 euro." To answer it, the feed needs color and size. Material must also be specified, along with price and availability. Treat material and pattern as required for any category where shoppers ask about them. Apply the same rule to weight and product dimensions.
The Global Trade Item Number (GTIN) is the barcode number that lets Google match your item to the same product sold elsewhere. Google's own help page says "products with missing or incorrect GTIN attributes may have limited visibility." Follow its guidance by sending brand plus the Manufacturer Part Number (MPN) for store-brand and custom goods without a barcode. A made-up GTIN does more damage than a missing one.
To optimize titles for AI retrieval, put the product type and its deciding attributes first, and write the title for the attribute order your category uses. Google allows 150 characters but displays only about 70. In its help article on long text, Google writes that it "[strongly encourage[s] you to submit titles with 70 or less characters](https://support.google.com/merchants/answer/14989281?hl=en) whenever possible." An assistant reads the whole string, though. So the first 70 characters have to work for a human, and the rest can carry attributes for the machine.

Google trims "Nexus 7 tablet in black with 32 GB of storage" to "Nexus 7 tablet, 32 GB, black" in its own example. Each comma-separated chunk is an attribute a model can lift out. Write each title in this order:
If you supply ChatGPT through its Google-compatible path, keep the full title in the plain `title` field because OpenAI maps that field exclusively. Copy any title text held in Google's `structured_title` into the plain field.
The custom labels that improve rankings sort products by business value, such as margin band or season. Sales performance and price band are other useful criteria. They work through bidding. Google's spec says custom labels 0 to 4 let you build campaign filters; it supports them in Performance Max, Shopping, or Demand Gen campaigns. It also states that "the information you include in this attribute won't be shown to customers." Labels let you bid harder on the products worth winning, which lifts their paid placement. Their ranking benefit is confined to paid results.
A common scheme gives each of the 5 slots one job:
Plan the values before you fill them in. Google caps each label at 1,000 unique values across the account and won't raise the limit. Values past the cap are ignored for reporting and bidding. That's why a SKU or product ID never belongs in a label. Labels group products, while the `id` field identifies them.
You set up a Google product feed in Merchant Center. The steps below take a new store to approved listings. Time varies with catalog size, and most of the effort goes into step 4.
You'll know the setup worked when diagnostics show the large majority of items as approved and the Products view lists no account-level issues.
To structure a feed for ChatGPT shopping, follow OpenAI's product feed spec. It uses the same core fields as Google, plus two flags. `enable_search` lets ChatGPT show the product, and `enable_checkout` lets shoppers buy it inside the chat. Checkout only works when search is also on. Turning on checkout also makes two more fields required, `seller_privacy_policy` and `seller_tos`.
ChatGPT requires an application through its merchant portal and business verification by OpenAI, a different process from Google's. Next you push a sample of about 100 products for schema checks. Alhena's 2026 setup guide says the full process takes one to two weeks from application to live products. Accepted formats include compressed JSON Lines and CSV, all in UTF-8.
Your fields also decide which store ChatGPT sends the buyer to. OpenAI's release notes say that when a shopper picks an item, ChatGPT ranks merchants "by factors like inventory, price, quality, primary seller status, and Instant Checkout availability." Accurate stock counts and current prices therefore carry real weight. Check three things before launch:
Mismatches between the feed and the landing page cause most feed rejections, while missing identifiers or rule-breaking text account for the rest. Google's crawler compares your feed price with the price on the page and in its structured data. As Google's help page on mismatched prices puts it, "the product with the mismatch may be disapproved." Once the prices match again, the product is reapproved after the next crawl, and requesting a website check speeds that up.
| Rejection | Usual cause | Fix |
|---|---|---|
| Mismatched price | Sale price live on site but not in feed, or tax shown differently | Sync feed refresh with price changes, then match the page's structured data |
| Mismatched availability | Feed says in stock, page says sold out | Refresh stock more often, turn on automatic item updates |
| Limited performance, missing GTIN | Barcode not supplied | Add the real GTIN, or brand plus MPN for unbarcoded goods |
| Image too small or has overlays | Thumbnail used, promo text on image | Supply the full-size clean product shot |
| Promotional text in title | "Sale" or "free shipping" in title | Move offers to the `sale_price` and shipping fields |
| Missing brand or category (OpenAI) | Field left blank because Google allowed it | Fill both on every row |
Mismatched price
Mismatched availability
Limited performance, missing GTIN
Image too small or has overlays
Promotional text in title
Missing brand or category (OpenAI)
Fix the cause in your source data. A manual patch is overwritten at the next fetch, and the rejection comes back.
You measure feed performance on two levels. Use the channels' own reports for clicks and impressions, and track visibility in AI answers, where AI product recommendations matter as much as clicks. Merchant Center's performance reports cover Google surfaces. Google Analytics 4 (GA4) shows referral sessions from AI assistants landing on product pages.
The traffic is small but growing fast. Adobe Analytics found that traffic to US retail sites from generative AI tools rose 693.4% year over year in the 2025 holiday season. Digital Commerce 360 also cited Adobe's finding that revenue per visit from AI referrals increased 254% year over year. Measure those referrals separately from organic search, or the gains disappear into your totals.

Clicks only show the visits you won. To see the answers that left you out, you need prompt tracking. That means running the same set of shopping questions every week and recording which brands each assistant names. Snoika's tracking runs weekly prompt sets in ChatGPT and Google AI Overviews to record mentions and share of voice. It also records sentiment and citations. The before-and-after numbers make a feed fix measurable. Snoika's founder Anton Vedeshin reported to Startup Reporter 1StopVAT's move from 2.7% to 28.3% ChatGPT visibility in 16 weeks.
Choose who runs product feed management based on catalog size and how often your data changes. Building the feed and checking whether AI assistants actually show your products are separate jobs, and each option below covers a different part of the work.
| Option | What it covers | Cost (2026) | Suits |
|---|---|---|---|
| In-house feed specialist | Full control of data and fixes | $60,000 to $85,000 a year | Large catalogs with daily price changes |
| Feed management platform | Rules, channel mapping, scheduled exports | $300 to $2,000 a month by catalog size | Stores with a person who can own the rules |
| Ecommerce ads agency | Feed work bundled with campaign management | $2,000 to $5,000+ a month flat fee | Brands whose budget goes mostly to Shopping ads |
| AI visibility platform (Snoika) | Tracks whether assistants mention your brand, but doesn't build the feed | Plans on the pricing page | Teams that need proof the feed changes AI answers |
In-house feed specialist
Feed management platform
Ecommerce ads agency
AI visibility platform (Snoika)
For a store under a few thousand SKUs, use a feed platform with one owner on staff, and add an agency only when ad spend justifies the fee. Large catalogs earn back a specialist's salary. Whichever option builds the feed, you still need weekly generative engine optimization data. That data shows whether feed optimization improves visibility on the surfaces where AI shoppers now start.
Check your feed against the OpenAI spec this week, even if Google already approves every item. The gaps that block ChatGPT are fields Google allowed you to skip, such as brand and category. Per-product return policies are another gap. They take a few hours to fill and decide whether the product feed reaches a second assistant at all. Once the feed passes, measure whether ChatGPT and AI Overviews actually name your products, because approval alone doesn't tell you that. We track brand mentions and share of voice across AI assistants every week, with a human review layer on top of the automated runs. To see where you stand today, get a free AI visibility report.
Google's AI shopping uses standard Shopping requirements, including price and availability. The product feed also needs identifying information and product-page details, with extra requirements for apparel. Add material and dimensions where relevant, because assistants use these attributes to match specific shopping questions.
Use one row per variant with a stable ID, and connect related variants through a shared group ID. Include the core shopping fields, ensuring every row has a brand and category. Set return terms per product, and enable search before enabling checkout.
Labels such as margin band and season can support paid placement by grouping products for bidding. They don't improve organic rankings. Give each label a consistent purpose, and keep its values below the 1,000-value account limit so they remain available for reporting and bidding.
Put the product type and deciding attribute first, unless shoppers primarily search by brand. Keep the product identifiable within the first 70 characters, and use the remaining space for relevant variant details. For ChatGPT's Google-compatible feed path, keep the complete text in the plain title field.
No, approval confirms that listings passed the channel's checks, but it doesn't establish visibility in AI answers. Track a consistent set of shopping questions weekly to see whether products appear. Compare those results with referral traffic to distinguish mentions from visits.


