How to Fix “Variants grouped incorrectly (item_group_id missing)” in Meta
item_group_id ties every colour and size of one product together. Without it, Meta shows five near-identical items in the same carousel and splits performance data across them.
Scan your feed for this error for free
Paste your product feed URL (XML, CSV or JSON). The audit checks Variants grouped incorrectly (item_group_id missing) along with 25+ other pre-channel rules.
Why this happens
Technical root cause
Feeds are usually built at the variant level with the variant SKU as the only identifier. The parent product ID exists in the source system but is never carried into the exported row.
Meta Commerce Manager reports it as Variants grouped incorrectly (item_group_id missing) and applies: Duplicate variants competing in the same dynamic ad set.
Native CMS friction
Shopify
Variant rows expose the variant ID and SKU; the parent product ID has to be joined in explicitly.
VTEX
SKUs are children of a product entity, but flattened exports drop the productId column entirely.
WooCommerce
Variations store the parent post ID in post_parent, which default XML exports do not surface.
Fixing it manually
- 1
Identify the parent product identifier in your source data.
- 2
Add it as item_group_id on every variant row of that product.
- 3
Keep the variant's own unique value in the id attribute — the two must differ.
- 4
Populate the differentiating attributes (colour, size, pattern) so Meta can build the variant picker.
The IRONFEED automated solution
One rule, applied to every product on every export. No spreadsheets, no re-uploads.
IF item_group_id IS EMPTY AND parent_id IS NOT EMPTY
SET item_group_id = parent_id
ELSE SET item_group_id = split(sku, '-')[0]Run automatic linter checks before Meta Commerce Manager crawls your feed. IRONFEED validates every export against the channel spec, so this error is caught in Feed Review instead of in your channel dashboard.
Attribute requirements
| Attribute | Meta Ads requirement | Accepted format | IRONFEED transformation |
|---|---|---|---|
item_group_id | Required when a product has variants | Up to 100 characters, identical across all variants | Parent-ID mapping with SKU-prefix fallback |
id | Required and unique per variant | Up to 100 characters, stable over time | Variant SKU, validated for uniqueness before export |
Frequently asked questions
Related Feed Issues & Fixes
Other critical errors affecting catalog performance on Google, Meta, TikTok, and Mercado Libre.
Pixel and catalog price/currency mismatch
The pixel reads the rendered storefront price (already localized) while the catalog carries the raw database price. Different rounding, currency symbols or decimal separators put the two out of sync even when the underlying amount is identical.
View Fix & RuleCombinación de variantes no válida para la categoría
Store catalogs allow arbitrary option names such as material, flavour or pack size. Mercado Libre rejects axes its category does not define, and it also rejects two variants that resolve to the same combination.
View Fix & RuleMissing value [color] / [size] / [age_group] / [gender]
Variant options are free-text in every storefront. One catalog has Colour, another Color, a third stores the shade inside the title, and none of them carry age_group or gender at all.
View Fix & RuleLooking for a different error?