Sales channel
Google Shopping
Feeds are consumed by Google Merchant Center.
Google Shopping is the surface where Google displays product listings from a merchant's catalogue, fed by a product feed uploaded to Google Merchant Center. Google's product data specification is the most detailed of the major channels, and the one whose attribute names the other channels tend to borrow.
Feed specification
- Destination
- Google Merchant Center
- Accepted formats
-
Text (CSV/TSV)XML (RSS 2.0)XML (Atom 1.0)Content API for Shopping - Refresh
- A scheduled fetch can run daily, weekly or monthly, and Merchant Center re-fetches the feed URL on that schedule. Product data must not be older than 30 days or items expire, so a feed that stops regenerating will silently empty out.
Attributes for Google Shopping
Every attribute documented in this knowledge base that Google Shopping accepts.
| Attribute | Requirement | Notes |
|---|---|---|
| availability | Required | Crawled from the landing page and compared against the feed. |
| brand | Required in some cases | Required for all products except movies, books and musical recordings. |
| condition | Required in some cases | Required when the item is not new. Assumed new when omitted. |
| custom_label_0 | Optional | Five labels available, custom_label_0 through custom_label_4. |
| description | Required | HTML is rejected. Only the first 150 to 500 characters typically display. |
| google_product_category | Recommended | Required for some categories including alcohol and subscription hardware. |
| gtin | Required in some cases | Required when the manufacturer has assigned one. Omit for genuinely custom goods. |
| id | Required | Cannot be changed without losing the item's performance history. |
| identifier_exists | Optional | Defaults to yes. Set to no only for genuinely unidentified products. |
| image_link | Required | Promotional overlays and watermarks cause disapproval. |
| item_group_id | Required in some cases | Required when a product has variants. Must accompany the variant attributes. |
| link | Required | Crawled and compared against feed price and availability. |
| mpn | Required in some cases | Required when the product has no GTIN. Must be paired with brand. |
| price | Required | Crawled from the landing page and compared. Must be the pre-discount price. |
| sale_price | Optional | Must be lower than price. Pair with sale_price_effective_date when time-limited. |
| title | Required | Matched against search queries. Promotional text causes disapproval. |
What catches Shopify merchants out
Shopify variants are separate products to Google
Each Shopify variant becomes its own row with its own id, and all variants of one product share an item_group_id. Submitting one row per product instead of per variant loses every size and colour a shopper could filter on.
Google crawls your landing page and compares it to the feed
Price and availability in the feed are checked against the structured data and visible content on the product page. A feed that is correct but stale gets disapproved for mismatching, which is why regeneration cadence matters as much as mapping.
Shopify descriptions carry HTML that Google does not want
The body_html field is rich text. Submitted as-is it brings markup into the description attribute, which Google rejects or truncates awkwardly. The description needs the HTML stripped and entities decoded first.
Barcodes live on the variant, not the product
Shopify stores the barcode on each variant, and it is frequently blank because it is optional in the admin. An empty barcode is the single most common reason a Shopify catalogue fails GTIN validation.
Common Google Shopping errors
- Duplicate product id A duplicate id error means two or more rows in a feed claim the same identifier, so the channel cannot tell which one describes the item and keeps only the last it processed. On Shopify it usually means the feed was built per product rather than per variant, or that a SKU used as the id is blank or reused across variants.
- Image link cannot be crawled An image crawl failure means the channel could not retrieve the file at image_link, or retrieved it and judged it unusable. On Shopify the URL itself is rarely wrong, so the cause is usually a rate limit hit during a first full crawl, a temporary CDN response, or an image whose content breaks policy rather than one that is genuinely missing.
- Invalid value: GTIN The "Invalid value: GTIN" error means the feed supplied a value in the gtin attribute that is not a structurally valid Global Trade Item Number. Unlike a missing GTIN this is usually a disapproval rather than a warning, because a wrong identifier matches the item to the wrong product rather than to none.
- Mismatched value: availability The availability mismatch error means the feed says an item is purchasable but the crawled landing page suggests otherwise, or the reverse. On Shopify it is usually a stale feed after a sell-out, or an availability value derived from inventory quantity alone without accounting for variants that do not track inventory or that allow overselling.
- Mismatched value: price The price mismatch error means the price in the feed does not agree with the price the channel found when it crawled the landing page. On Shopify the three usual culprits are a feed that has not regenerated since a price change, a link pointing at the wrong market's storefront, and a tax convention difference between the feed and the displayed price.
- Missing value: brand The "Missing value: brand" issue means a channel expects a brand name for a product and the feed did not supply one, or supplied a placeholder it treats as empty. On Shopify it usually means the vendor field is blank, or holds a supplier or internal category rather than the brand a shopper would recognise.
- Missing value: GTIN The "Missing value: GTIN" issue means a channel believes a product has a manufacturer-assigned barcode but the feed did not supply one. On Shopify it almost always traces back to the variant barcode field, which is optional in the admin and therefore left empty across large parts of most catalogues.
Frequently asked questions
What attributes are required for a Google Shopping feed?
Every item needs id, title, description, link, image_link, availability and price. Beyond that, brand and a product identifier (gtin or mpn) are required for most products, condition is required when an item is not new, and item_group_id is required for variants.
How often does Google Merchant Center fetch a scheduled feed?
You choose daily, weekly or monthly when you set up the scheduled fetch, and Google pulls the URL on that cadence. Because product data expires after 30 days, a daily fetch is the safe default for any catalogue where price or stock moves.
Can I submit a Shopify feed without GTINs?
Yes, but only for products that genuinely have no manufacturer-assigned GTIN, such as custom or handmade goods. In that case you supply brand and mpn instead, or set identifier_exists to no. Omitting GTINs on branded retail products that do have them causes disapprovals.
Primary sources
Channel specifications change. These are the official documents this page is based on.