Feed Anatomy: 47 Attributes Google Expects
Technical guide through Google Merchant Center spec. What is required, what is recommended, and what gives you an AI Max auction advantage. 47 attributes.

Every Google Shopping feed is essentially an XML/CSV file with up to 47 attributes per product. Most catalogs we see use 8–12. That's a problem you can measure.
01 — Spec Overview
Google divides attributes into 6 groups: identity, description, price & availability, shipping, fashion-specific, and destination-control. Each group has its own rules — some are required, some recommended, some optional. The difference between recommended and required disappears in practice: AI Max treats an unfilled recommended attribute as a low-quality signal.
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<title>MAISON · NS Catalog</title>
<link>https://maison-ns.rs</link>
<description>Premium fashion feed</description>
<item>
<g:id>SKU-1024</g:id>
<g:title>MAISON Wool Coat — Camel, M</g:title>
<g:description>Italian merino wool, 100% virgin...</g:description>
<g:link>https://maison-ns.rs/p/wool-coat-camel-m</g:link>
<g:image_link>https://cdn.maison-ns.rs/sku-1024.jpg</g:image_link>
<g:availability>in_stock</g:availability>
<g:price>34900.00 RSD</g:price>
<g:gtin>5901234123457</g:gtin>
<g:brand>MAISON</g:brand>
<g:condition>new</g:condition>
<g:color>Camel</g:color>
<g:size>M</g:size>
<g:material>Merino wool</g:material>
<g:gender>female</g:gender>
<g:age_group>adult</g:age_group>
</item>
</channel>
</rss>
The example above covers 14 attributes for one SKU. That's a solid minimum for fashion. The other 33 attributes depend on the category — auto parts have compatible_vehicle, books have isbn, food has energy_efficiency_class.
02 — Identity Attributes
The most important group. If something is wrong here — Google cannot match your product to a user's search.
| Attribute | Required | Description |
|---|---|---|
| g:id | Required | Unique product identifier. Do not change. |
| g:title | Required | Up to 150 characters. Brand + type + key variant. |
| g:description | Required | Plain text, up to 5000 characters. No HTML. |
| g:link | Required | Direct URL to the product detail page. |
| g:image_link | Required | Min 800×800px, JPG/PNG/WebP. |
| g:availability | Required | in_stock / out_of_stock / preorder / backorder |
| g:price | Required | Format: 2999.00 RSD |
| g:gtin | Recommended | EAN-8/12/13/14. If not available — use identifier_exists=false. |
| g:mpn | Recommended | Manufacturer Part Number, if you don't have GTIN. |
| g:brand | Required | Written consistently. ADIDAS → Adidas Originals. |
03 — Description Attributes
Secondary group, but key for AI Max. Description attributes tell Google what the product is — not just what it's called.
| Attribute | Required | Description |
|---|---|---|
| g:product_type | Recommended | Your internal category. Helps with ad grouping. |
| g:google_product_category | Recommended | From Google taxonomy. Numeric ID. |
| g:condition | Recommended | new / used / refurbished |
| g:color | Optional | For fashion: must. For electronics: opt. |
| g:size | Optional | For apparel/footwear: must. |
| g:material | Optional | Rich feed = better AI Max performance. |
The difference between a feed with 8 attributes and a feed with 18 attributes is not linear. It's the difference between "Google knows you sell a jacket" and "Google knows you sell a heavy winter jacket in merino wool, size M, for women aged 25–40."
04 — Price & Availability
The most common mistakes are here. Google is very strict about formats — any deviation from spec results in disapproval.
price: must be2999.00 RSD— decimal point, space before currency, no thousands separator.sale_price: if you have a sale, fill both. Google displays both and automatically calculates the discount.availability: exclusivelyin_stockorout_of_stock(underscore, not space).
05 — Shipping & Taxes
For most markets: you can set the shipping attribute globally in Merchant Center settings instead of per SKU. We recommend the global setup for simplicity, unless you have specific weight classes.
06 — Fashion-Specific
For fashion catalogs, the following attributes become required (even if marked as optional in the spec):
g:color— exact color name, not a hex code.g:size— in EU standard (S/M/L or 36/38/40).g:gender— male / female / unisex.g:age_group— adult / kids / toddler / infant / newborn.g:material— especially important for AI Max conversational search.
07 — Most Common Mistakes
- Price format inconsistencies. "2,999 RSD", "2999.00 RSD", "2999". All three Google ignores. Standard is:
2999.00 RSD— no thousands separator, with decimals, with a space before the currency. - image_link pointing to a thumbnail. Send the full-size image; Google creates the thumbnail itself. Sending a 200×200 icon disqualifies the product.
- availability "in stock" with a space. Must be
in_stockwith an underscore. No exceptions. - gtin with hex characters. GTIN is purely numeric. If you see a letter — that's a SKU, not a GTIN.
- Category in local language.
google_product_categorymust be either a numeric ID from the Google taxonomy or the name exactly as in the official list (in English).
This is Part 1 of 4 in the "Feed Anatomy" series. In the next part: how to define custom_labels for bid segmentation.
Need an attribute audit for your catalog?
Request a free Feed Audit. No commitment, results in 48h.
Want this kind of result on your store?
Request a free analysis