Skip to main content

Google Merchant Center feed

Plans: Starter ✗ · Growth ✓ · Pro ✓ · Agency ✓

Google Shopping — and the AI shopping surfaces built on top of it — read your product feed, not your storefront's HTML. If your feed carries the description your platform generated years ago, that is what Google has, however good the copy on your product page is.

Clione publishes its enriched copy as a supplemental feed: a second file Merchant Center reads alongside the feed you already send, matched to it row by row on the product id.

What it does and does not touch​

A supplemental feed can only add or override the columns it contains. Clione's contains:

ColumnWhere it comes from
title, structured_titlethe product title in Clione's canonical form (brand, title, SKU), or your own override if you wrote one
description, structured_descriptionthe enriched product summary (core identity, who it's for, why choose it), or your own description override if you wrote one
product_highlightthe buyer-facing lines from the enrichment (who it is for, when to choose it, the common objection, seasonal relevance). Lines over 150 characters are left out
product_detailthe "not recommended for" and "limitations" lines, when the enrichment has them
link, image_link, additional_image_linkyour storefront URL and product images
availabilityin stock / out of stock / preorder, read from your platform. Always sent: in_stock when your platform reports no stock data
priceonly when the product has one real price
brand, gtin, mpn, product_typeyour own catalogue values
google_product_categoryGoogle's own category number, only when the category proposed during enrichment is exactly one of Google's; otherwise empty
color, material, size, gender, age_grouponly what your platform states (a custom field, an option every variant shares, a WooCommerce attribute). gender and age_group only with one of Google's accepted values
custom_label_0, custom_label_1measurement labels: the product's experiment group and the enrichment version the text comes from. Empty when not set

Anything Clione cannot fill honestly is left empty, and an empty cell in a supplemental feed means "keep what the primary feed said". Concretely:

  • A product with no barcode gets no gtin. Clione never invents one.
  • A product priced at 0 — a call-for-price item, a free item — gets no price, rather than a made-up 0.01.
  • A product whose variants genuinely differ in price gets no price either: a supplemental row keyed on the parent has one cell for it, and a "from" price is against Google's rules. Your primary feed's per-variant prices stand.
  • A product whose title never synced gets no title, so Clione cannot overwrite a real title with a part number.

structured_title and structured_description carry Google's digital_source_type marker. Clione-generated text is labelled trained_algorithmic_media; text you wrote yourself in the editor is labelled default. That is a disclosure Google asks for, and it is filled from what actually happened rather than set to one value for everything.

Products only​

Merchant Center describes offers — something with a price, an availability and a page you can buy it from. Categories, collections and content pages are none of those, and the specification has no attribute that would accept one, so there is no category or page feed and there will not be one. Their enrichment reaches Google through the storefront signals (JSON-LD, meta tags, the FAQ widget) instead.

Turning it on​

  1. Store Settings → Integrations → Google Merchant Center feed → Turn the feed on.
  2. Copy the URL it shows you.
  3. In Merchant Center: Data sources → Add product data source → Scheduled fetch, paste the URL, and choose supplemental feed when asked what kind of source it is. A daily fetch is plenty.
  4. Link the supplemental source to your primary feed.

After the first fetch — check the match count​

Merchant Center reports how many items the supplemental source matched. If it matched 0, the ids do not line up, and that is the one thing worth checking.

Feeds key their id on different things. Clione defaults to your platform's product id, which is what most BigCommerce feed apps use. If your primary feed is keyed on SKU instead, add ?idSource=sku to the end of the feed URL in Merchant Center and fetch again. Feeds sent by a sales channel (for example Shopify's Google channel) often use ids built from country, product and variant; those can't be matched.

Nothing breaks when the ids do not match — the rows simply join nothing, which is why the number in that report is worth a look rather than assuming it worked.

The same URL for Microsoft and Meta​

Microsoft Merchant Center and Meta Commerce catalogues both take a supplemental feed by URL, matched on id. Paste the same URL there: see Microsoft Merchant Center and Meta Commerce.

Keeping it up to date​

The file rebuilds itself whenever the catalogue changes: a re-enrichment, an edit you save, a sync. In between, it is served from cache, so a Merchant Center fetch schedule of a few times a day costs nothing. The card in Store Settings shows when the file was last actually rebuilt.

Rotating or turning it off​

The URL is the only credential on the file — Merchant Center's scheduled fetch cannot send a password or an API key. What the URL exposes is the enriched copy for one store's products, most of it already public on your storefront, plus two measurement labels (custom_label_0, the experiment group, and custom_label_1, the enrichment version): no credentials, no other stores, and nothing that can be written to.

If you would rather it were not shared, Generate a new URL invalidates the old one immediately; paste the new one into Merchant Center. Turn it off stops the URL working at all — Merchant Center will then report a failed fetch until you remove the source there.