Product Feed for AI Shopping: Which Fields Actually Get Quoted

by

·

Field echo rates across a product feed for AI shopping, showing price and title quoted most often and GTIN never quoted

A product feed for AI shopping is the structured catalogue file — the same Google Shopping spec, plus platform-specific eligibility flags — that assistants read to name, price and describe your products inside a generated answer. It is not a new file format. It is the same feed, judged by a different consumer.

Most merchants build one the way they built for Google Shopping in 2018: fill every column, chase 100% attribute completeness, celebrate a clean diagnostics dashboard. Then an assistant writes a four-sentence recommendation that repeats a price, half a title, one spec, and a star rating — and ignores the other fifty fields.

That gap between what merchants populate and what assistants repeat is measurable. Over six weeks we captured 4,480 AI shopping answers and diffed every product mention against the merchant's underlying feed record. Nine fields carried 93% of everything the models actually quoted. Several fields that feed vendors sell as "AI-critical" were echoed zero times.

Here is the field-by-field evidence, the framework we now use to read a feed, and the fixes that follow from it.

What "getting quoted" means in an AI shopping answer

A field is quoted when its value appears in the generated prose the shopper reads — not in a card, not in a filter, not in a link. "Runs $189 and ships free in two days" quotes price and shipping. A product card showing an image quotes nothing; it renders.

The distinction matters because the three behaviours have different owners. Rendered fields are controlled by the surface's UI. Filter fields decide whether you enter the candidate set at all. Quoted fields are the only ones that shape how a shopper hears about you — the sentence that makes them click or skip.

Merchants optimise all three as if they were one job. They aren't.

How we tested: 4,480 answers across four surfaces

We ran 1,120 shopping-intent prompts between 22 April and 2 June 2026 across four surfaces: ChatGPT with shopping enabled, Google AI Mode, Perplexity, and Microsoft Copilot. Prompts spanned eight categories chosen for different attribute density — running shoes, standing desks, espresso machines, dog food, video-editing laptops, mattresses, vitamin C serums, and cordless drills.

That produced 4,480 captured answers containing 27,400 product mentions from 1,860 merchant domains. For 812 of those domains we could read the underlying feed record (public Google Shopping feed or client-supplied file), which left 11,318 mentions where a field-level comparison was possible. Every rate below is calculated on those 11,318.

Our matching rule: a field counts as echoed when a normalised version of its value appears in the answer text as a span of three or more consecutive tokens. We excluded matches where the value was trivially derivable from the brand name or the URL slug.

Two honest limits. First, we cannot always prove provenance — a price in an answer may have come from the feed, the page, or a retailer aggregator, and for shared values we can only observe co-occurrence. Second, this is one sample in one quarter; surface behaviour changes with model releases, and we have already seen Copilot's answer length shift twice. Treat the ranking of fields as robust and the exact percentages as a snapshot.

Field echo rates across a product feed for AI shopping, showing price and title quoted most often and GTIN never quoted

The field echo table: what actually surfaced in answer text

Fields are sorted by echo rate. The "job" column is our classification, explained in the next section.

Feed field Echo rate Primary job
price / sale_price 88% Quote
title (3+ token span) 84% Quote
brand 79% Quote
description (any span) 61% Quote
star_rating + review_count 44% Quote
availability 33% Quote
shipping / delivery window 27% Quote
color / size variant attributes 22% Quote
material 16% Quote
dimensions / weight 13% Quote
return_policy / return_deadline_in_days 11% Quote
q_and_a 9% overall — 31% where populated Quote
unit_pricing_measure 6% overall — 38% in consumables Quote
condition 3% Filter
age_group / gender 2% Filter
video_link 0.4% Render
gtin / mpn 0.2% Gate
image_link 0% quoted, rendered in 51% Render
product_category (taxonomy) 0% Filter
item_group_id 0% Filter
promotion_id 0% Filter
custom_label_04 0% Neither
model_3d_link 0% Neither

Nine fields — price, title, brand, description, rating, review count, availability, shipping and variant attributes — accounted for 93% of every echoed span in the sample. If your feed roadmap this quarter does not touch those nine, it is not a plan for AI shopping visibility.

Gate, Filter, Quote: a framework for reading your own feed

Every field in a product feed for AI shopping does exactly one of three jobs, and confusing them wastes most feed budgets.

  • Gate fields decide whether your item is ingested at all. gtin, mpn, id, link, is_eligible_search. They are never quoted and never seen. Get them right once; they are pass/fail, not optimisable.
  • Filter fields decide whether you match a constrained request. product_category, item_group_id, condition, age_group, size_system, target_countries. They shape the candidate set silently.
  • Quote fields decide what the shopper hears. Price, title, description, ratings, availability, shipping, physical attributes.

The practical rule: you cannot write your way into a gate field, and you cannot filter your way into a sentence. A GTIN that is 100% populated buys eligibility and nothing else. Perplexity in particular uses GTIN as an identity key to collapse the same item across ten retailers into one card — which means a perfect GTIN gets you into a comparison you then lose on price, shipping and returns.

Gate, Filter, Quote framework mapping each feed attribute to its job in AI shopping answers

Gate fields are also where the platforms are most explicit. The OpenAI product feed specification for agentic commerce makes enable_search and enable_checkout explicit booleans — a merchant can be fully compliant and still switched off. Google's Merchant Center product data specification does the same work through required attributes and disapprovals, and the Agentic Commerce Protocol co-authored by OpenAI and Stripe defines the checkout handoff that sits behind those flags. None of these documents tells you which fields will appear in prose, because that is model behaviour, not spec.

Where each surface actually gets your feed

Feed submission and answer retrieval are different pipelines, and merchants routinely fix the wrong one. Before rewriting a single attribute, confirm which door your data walks through on each surface:

Surface Primary feed source What you submit
Google AI Mode Merchant Center Standard Google Shopping feed
ChatGPT shopping OpenAI product feed spec Separate submission with eligibility flags
Perplexity Merchant/partner feeds + live crawl Google-spec feed, heavily supplemented by PDP crawl
Copilot Bing Merchant / Microsoft Shopping Bing Merchant Center feed

The practical consequence: a merchant with a spotless Merchant Center account can be entirely absent from ChatGPT because they never submitted through the separate path, and absent from Copilot because Bing Merchant Center was never set up. Feed health is per-pipeline, not global. Which index each assistant reads from is mapped in which search index powers each AI engine, and it explains most "we're invisible on one surface only" cases we audit.

The fields that were never echoed once

Five field groups produced zero echoed spans across all 11,318 matched mentions: custom labels, promotion_id, model_3d_link, ad-grouping attributes, and the tail of keyword-stuffed descriptions past roughly 600 characters.

Custom labels are the expensive one. They exist to segment paid campaigns, and they do that well — but we have watched teams spend a sprint building a custom-label taxonomy under the belief that it "helps AI understand the catalogue." In our sample it did not appear in a single generated sentence, and it is not a documented retrieval signal on any of the four surfaces.

model_3d_link deserves a caveat rather than a dismissal. It is a young field, accepted by newer specs, and near-zero usage today is what you would expect from a capability that hasn't shipped in most answer UIs. It is a bet, not a lever. Budget it as such.

Why description position beats description length

Of 6,904 echoed description spans, 76% began within the first 200 characters, and only 4% came from beyond character 600. Assistants do not read your description to the end and select the best sentence. They overwhelmingly reuse the opening.

The second pattern is sharper. Spans containing a numeral with a unit — "14-hour battery," "58 dB," "0.9 kg," "9-bar pump" — were echoed 3.4× more often than purely adjectival spans of comparable length. "Premium build with a luxurious finish" is not competing with "brushed 304 stainless, 1.7 kg." It is losing to it.

Three rewrites that followed from this, tested on a 900-SKU homewares catalogue:

  1. Move the three most differentiating specs into the first sentence of description.
  2. Convert adjective phrases into measured claims wherever a number exists.
  3. Cut the SEO tail — the category keywords stuffed after character 600 — entirely.

Six weeks later, description echo rate on those SKUs moved from 54% to 71%, and the mentions were more specific: the assistant repeated the spec instead of paraphrasing "high quality." Same product, better sentence.

A before/after that shows the whole method

The rewrite is easier to copy than to describe. One SKU from that catalogue:

Before (echoed in 2 of 14 answers, always as brand + price only):

Premium stainless steel electric kettle with elegant design and superior build quality. Perfect for any modern kitchen. Fast boiling technology ensures your water is ready in no time. Ideal gift for coffee lovers, tea enthusiasts, and home baristas. [continues 340 characters of category keywords]

After (echoed in 9 of 14 answers, twice quoting the pour spout):

1.7 L brushed 304 stainless kettle, boils in 4 minutes, 1500 W. Gooseneck pour spout with ±1°C temperature hold at five presets. 0.9 kg empty, cordless base with 360° pickup. Two-year warranty.

Nothing was invented. The specs existed in the PDP spec table and were absent from the feed. The rewrite moved them into the first 200 characters and deleted the adjectives.

The corroboration effect: values that appear twice get quoted more

Values present in both the feed and the visible product page were echoed in 58% of eligible mentions, versus 22% for values that existed only in the feed — a 2.6× gap.

This is the single most actionable finding in the dataset, because most merchants treat the feed and the PDP as separate systems maintained by separate teams. Material lives in a feed column and never appears in on-page copy. Dimensions sit in a spec table the feed doesn't read. Each system is individually complete and jointly incoherent.

Assistants assemble answers from more than one retrieval pass, and corroborated values are safer to state. If you want an attribute quoted, write it in both places in compatible language — "brushed stainless steel" in the feed and "brushed stainless steel" on the page, not "SS304."

Corroboration also extends past your own domain. Values that matched a third-party source — a retailer listing, a review site spec table — were the ones assistants stated most confidently, which is the same mechanism that makes independent citations decide who gets recommended in agentic and assistant-led research.

Side-by-side of a ChatGPT shopping answer and the merchant feed record it quoted, with matching spans highlighted

Ratings and reviews: the highest-use optional field

Star rating and review count were echoed in 44% of mentions overall and 57% on ChatGPT — higher than availability, shipping, and every physical attribute. They are optional in most specs. They behave like required fields.

Two observations worth acting on. First, review count is quoted almost as often as the rating itself; "4.6 stars from 2,300 reviews" is the standard construction, and a 4.9 with eleven reviews reads worse than a 4.5 with two thousand. Second, when q_and_a was populated, its echo rate was 31% — three times the sample-wide figure — because it answers exactly the constrained questions shoppers type. Almost nobody populates it.

Two mechanical notes that decide whether ratings show up at all. Google requires product ratings to come through an approved reviews feed or a licensed aggregator, not a self-declared number in the product feed — see the Merchant Center product ratings requirements. And review counts under roughly 50 were quoted far less often in our sample than counts above 500, so a thin review programme is a data problem before it is a trust problem.

Constraint prompts rewrite which fields matter

The field mix is not fixed. It reshapes around the constraint in the prompt, which is why a single average is misleading.

Prompt constraint Field that jumps Baseline → constrained
"under $150" price 88% → 99%
"in stock" / "ships by Friday" availability / shipping 33% / 27% → 71% / 68%
"for a small kitchen" dimensions 13% → 44%
"best reviewed" / "most reliable" star_rating + review_count 44% → 79%
"cotton" / "stainless" / "vegan" material 16% → 57%

Read the table as a targeting instruction. If your category's real buying questions are dimensional — desks, mattresses, cookware — then dimensions is not a 13% field for you, it is a 44% field, and leaving it blank removes you from the answers that convert best.

Pull your own constrained queries from support tickets and site search, then check which fields those prompts demand. That is a sharper prioritisation input than any generic feed checklist.

Surface by surface: four assistants, four quoting habits

Beyond title and price, which every surface repeats, the four behaved distinctly:

Surface Most-echoed additional field Observed habit
ChatGPT star_rating + review_count (57%) Compresses description to a single clause; states price with currency
Google AI Mode availability + shipping (61%) Leans hardest on Merchant Center data; uses local-stock phrasing
Perplexity description spec spans (74%) Quotes numeric specs; collapses one GTIN across retailers into a single card
Copilot brand + price (81%) Shortest answers in the sample; least attribute detail

Perplexity is the outlier that changes strategy. It quoted description spans at 74% — meaning your description is your ranking copy there, while on Copilot it is nearly invisible. A merchant selling technical products under-invests badly by optimising for the average across surfaces. Marketplace-led surfaces such as Amazon Rufus add another layer, which we cover in getting your product picked by AI shopping assistants.

The stale availability problem nobody is watching

In 4.1% of matched mentions, an assistant told a shopper an item was in stock while the merchant's own product page showed it sold out at capture time. Median lag between the page going out of stock and the answer catching up was 19 hours. The worst case ran six days.

This is a quiet reputation cost. The shopper follows a recommendation, hits a sold-out page, and attributes the failure to the brand rather than the assistant. It also compounds: our tracking shows merchants with repeated availability mismatches drift down the shortlist over subsequent weeks, though we have not isolated that effect well enough to call it causal.

The fix is unglamorous. Increase feed refresh frequency on fast-moving SKUs, push stock changes through your channel's real-time inventory update mechanism rather than waiting on the scheduled fetch — Google exposes this as the Product Inventory Update API — and, critically, audit it from the answer side, not the feed side. A feed that is correct at upload and stale at retrieval is still a broken product feed for AI shopping.

Where the feed stops and the checkout starts

A quoted product still loses the sale if the assistant cannot complete or hand off the purchase. This is the newest failure mode and the least audited.

ChatGPT's Instant Checkout and the Agentic Commerce Protocol behind it require more than a readable catalogue: a checkout eligibility flag, live price and inventory at the moment of purchase, and an endpoint that accepts a delegated payment token. Feed accuracy is a precondition, not the whole job.

Three checks that catch most of it:

  1. Price parity at the second. If the feed says $189 and checkout charges $199, agentic purchase attempts fail or get abandoned. Same for shipping estimates.
  2. Eligibility flags set deliberately. Being quoted with checkout disabled means the assistant sends the shopper to a link instead of closing the loop.
  3. Variant resolution. If item_group_id groups ten colours and the answer names one, the landing URL must open that variant, not the parent.

Assistants that browse and act on the shopper's behalf are the direction of travel across categories, not just retail — the buying-side behaviour is covered in when AI becomes the buyer.

A field priority order for the next 30 days

Work in this order. It is sorted by echo rate weighted against effort, based on the data above.

  1. Fix the gates. GTIN coverage above 80%, valid link, correct eligibility flags. Pass/fail, no partial credit.
  2. Rewrite the first 200 characters of every description on your top 200 SKUs, leading with measured specs.
  3. Populate star_rating and review_count through an approved reviews feed. Highest-echo optional field in the sample.
  4. Reconcile feed values against on-page copy for material, dimensions and variant attributes — same wording in both places.
  5. Tighten availability refresh on SKUs that sell out weekly, then verify from answers rather than dashboards.
  6. Fill shipping and return_policy with real values, not defaults. Both are quoted more in constrained prompts.
  7. Populate q_and_a with your five most common pre-purchase questions.

Everything below this line — custom labels, 3D models, promotion IDs, keyword tails — is not a visibility lever today. Move it off the sprint.

How to know whether a feed change actually worked

Feed edits are unusually hard to attribute, because you typically ship dozens at once and every surface refreshes on its own cadence. The pattern that works: change one field group at a time, hold a control set of SKUs untouched, and measure echo rate rather than traffic. Traffic lags by weeks and is contaminated by seasonality; echo rate moves within days and tells you whether the model even saw the change.

That means tracking the answers themselves — running the same prompt set on a schedule, capturing which products get named, and diffing the quoted spans against your current feed. It is the same discipline as any AI search monitoring programme, applied to catalogue data instead of blog content. Our method for isolating which change earned a citation is written up in proving causality in AI search.

Two metrics worth standing up: field echo rate (share of mentions repeating a given field) and AI share of voice (share of category answers naming you at all). The first tells you whether your data is good enough to quote. The second tells you whether it is good enough to pick.

A workable cadence for a mid-size catalogue: 40–60 prompts per category, run weekly, 20% of SKUs held as an untouched control. Below about 30 prompts the week-to-week noise on a single field exceeds the effect size of most feed edits, which is why one-off spot checks tend to produce confident wrong conclusions.

Frequently asked questions

Does a product feed for AI shopping need to be different from my Google Shopping feed?
Mostly no. Perplexity ingests the standard Google Shopping spec, and Google AI Mode reads Merchant Center directly. ChatGPT is the exception: its agentic commerce spec has its own required fields and a separate submission path, and Copilot pulls from Bing Merchant Center. Start from your Google feed, then add the platform-specific flags and submissions.

Is GTIN still worth chasing if it's never quoted?
Yes — it is a gate, not a lever. Without valid identifiers you may not be ingested, and on Perplexity the GTIN is the key used to merge retailers selling the same item. Get to high coverage once, then stop optimising it and move budget to quoted fields.

Why did my competitor get recommended with a thinner feed?
Feed quality decides eligibility and phrasing, not selection. Selection also weighs reviews, brand mentions across the wider web, and corroboration between your feed and independent sources. A thin feed with strong third-party review coverage regularly beats a complete feed with none.

How often should the feed refresh for AI shopping surfaces?
Match refresh frequency to sell-out speed rather than to a fixed schedule. In our sample, availability mismatches clustered in SKUs that sold out faster than the daily fetch cycle. Fast movers need near-real-time inventory updates; a stable long tail is fine on daily.

Do longer descriptions help?
Not past roughly 200 characters for quoting purposes. Only 4% of echoed spans came from beyond character 600. Length may help elsewhere; it does not help you get quoted.

Can a marketplace-only seller do any of this?
Partly. On Amazon or Etsy you control title, bullets, attributes and A+ content but not the feed submitted to assistants, and the marketplace's own listing becomes the quoted source. The lever that remains is spec density in the fields you do control, plus off-marketplace corroboration so your specs match wherever else the product appears.

How long until a feed change shows up in answers?
In our sample, description rewrites began appearing in answers 4–11 days after the feed refresh, with Google AI Mode fastest and ChatGPT slowest. Availability changes propagated in hours to a day. If nothing has moved after three weeks, the problem is ingestion, not copy.


Written by

Founder of MaxAEO. Helping brands get found in AI search across ChatGPT, Perplexity, Google AI Overviews, and more.

Run a free AI visibility audit →