Short answer. Merchant Center requires item_group_id for product variants in free listings, and for Shopping ads targeting Brazil, France, Germany, Japan, the United Kingdom and the United States; without it, sizes and colours of one product are treated as unrelated products. Give every variant of a product the same item_group_id, usually the parent product’s id, and its own id.
| Shown in Merchant Center as | Missing value [item_group_id] |
|---|---|
| Attribute | item_group_id |
| Effect | Product disapproved — Required for variants in free listings and in six countries for ads; elsewhere variants are simply ungrouped |
| Where to find it | Products → Needs attention, then filter by this issue |
| Free check | Reported by the free feed check |
What Merchant Center means by “Missing value [item_group_id]”
item_group_id is the value that tells Google several rows are sizes or colours of one product. Google’s specification makes it required for product variants in free listings, and for Shopping ads targeting Brazil, France, Germany, Japan, the United Kingdom and the United States; elsewhere it is recommended. Without it, variants are shown separately instead of as a group: six rows for one shirt compete with one another and with the rest of your catalogue, and Google may pick the sold-out size to show.
Where the attribute is required and a row is a variant with none, Merchant Center reports “Missing value [item_group_id]”, following the pattern for absent required attributes in the Content API’s product issues reference, and the row is disapproved. Where it is only recommended, there is no error; the variants are simply ungrouped, which is the more common and the quieter problem.
Why it happens
- An export that does not know about variants. Each variant is written as a stand-alone product with its own id and nothing linking it to its siblings.
- The parent id written as
idinstead of asitem_group_id, which produces duplicate ids rather than groups. - A column mapping gap. The source has the parent reference; the template does not map it.
- Variants that are separate products in the store, created as individual listings rather than as options of one product.
How to fix it
In Shopify
Shopify’s channel and our integration write the product id as item_group_id and the variant id as id for every variant, so grouping comes for free when products are modelled as products with options. If sizes exist as separate products in your store, merge them into one product with a Size option, or the feed cannot group what the store does not.
In WooCommerce
Variable products have a parent and variations; our free connector writes the parent’s id as item_group_id on every variation row and leaves the attribute out for simple products. Simple products that are really variants of one item (“Blue shirt”, “Red shirt” as two products) need converting to one variable product with a Colour attribute.
In a CSV or XML feed
Add an item_group_id column and fill it, for every variant row, with a value shared by all variants of that product and by nothing else, up to 50 characters; the parent product’s id or handle is the natural choice. Give each variant row its own id. Then make sure the variants differ in an attribute Google reads (color, size, material, pattern), or Google has no way to tell them apart inside the group.
How long until Merchant Center clears it
Grouping takes effect on the next fetch: disapproved variant rows in required markets are re-approved within 24–72 hours, and elsewhere the products start appearing as one listing with a variant picker as Google re-processes them.
What FeedRobin does about it
The free check finds ungrouped variants by a fact the file cannot hide: rows that share a product page but carry no group id. It reports them and the fix preview shows the repair, the shared page’s slug used as item_group_id, before and after. The check skips the other reason links repeat, a feed where every row points at one page, because that is one defect and not a thousand ungrouped variants. For connected stores the group is the platform’s product id and the id its variant id, so grouping cannot break.
Questions merchants ask
What should the item_group_id be?
Any value shared by all variants of one product and by nothing else, up to 50 characters. The parent product’s id or handle is the usual choice. It must stay the same across uploads.
A product with no variants: does it need item_group_id?
No. Only variants need it. Setting it on single products does no harm, but leaving it empty is correct.
My variants are grouped but still show as separate products. Why?
Because grouping needs the variant attributes too. Google groups variants by item_group_id and tells them apart by color, size, material, pattern and the like. Variants that share a group but differ in nothing Google can read are not shown as a group.
Sources
- Item group ID [item_group_id] — Google Merchant Center Help
- Product issues (Content API for Shopping): the issue codes and the titles Merchant Center shows — Google Merchant Center Help
- Product data specification — Google Merchant Center Help