Shopify Variants and item_group_id in Google Shopping
How Shopify product variants map to Google's item_group_id attribute and why getting it wrong splits your listings.
Written by Mantas Jurgutis — Founder, Adsify — builds the Google & Meta automation merchants use daily
Editorially reviewed by Adsify Editorial on May 5, 2026 — Reviewed against Shopify, Google Ads and Meta official documentation.
What item_group_id does
When a single Shopify product has multiple variants — say, a t-shirt in five colors and four sizes — Google needs a way to know all 20 variant combinations belong to the same underlying product so it can group them for the 'select a size/color' experience in Shopping ads. That grouping is the item_group_id attribute, and it should be identical across every variant of one Shopify product while the id attribute (mapped from Shopify's variant ID) stays unique per variant.
How feed apps typically derive it
Most Shopify feed apps, including the native Google & YouTube channel, automatically set item_group_id to the Shopify product ID, since that value is stable and shared across all variants of one product by definition. You generally don't need to configure this manually unless you're using a custom feed pipeline, in which case confirm it maps to Products > [product] and not to the variant level, which is a common misconfiguration.
What goes wrong when it's missing or inconsistent
If item_group_id is blank or, worse, generated inconsistently (for example, accidentally set to the variant ID instead of the product ID), Google treats each color and size combination as a completely separate, unrelated product. This fragments your Shopping presence — instead of one strong listing with a color/size selector, you get 20 disconnected listings each with lower individual signal, which can hurt how often any of them shows for a broad query like 'women's t-shirt.'
When you should NOT group variants
Google's guidance is that item_group_id should only group variants that differ by color, size, pattern, or material — not variants that are meaningfully different products, like a bundle vs. a single unit, or a refurbished vs. new condition of the same base item. If your Shopify product uses variants to represent something that isn't a true color/size/material variation (some merchants misuse variants for bundle tiers), grouping them under one item_group_id will confuse rather than help the shopper-facing selector.
Checking your current setup
Export your feed (or view it via your feed app's preview) and confirm that every variant row belonging to the same Shopify product shares one item_group_id value and that this value is stable across sync cycles — some custom scripts inadvertently regenerate IDs on each export, which breaks the grouping every time the feed refreshes even if nothing about the product changed.
Color and size attributes need to accompany the grouping
item_group_id alone doesn't create the selector experience — Google also needs the color and size attributes populated per variant (mapped from Shopify's variant Option values, typically Option1/Option2 named 'Color' and 'Size'). Without both the grouping ID and the distinguishing attributes, Google can't build a meaningful variant picker even if the products are technically linked.
