Short answer. Commerce Manager shows “IDs can't be duplicated” when more than one product in the feed carries the same content id; each id must be used once, is case sensitive, and must differ from every item_group_id. Give every variant its own id (the platform’s variant id or a unique SKU) and share the group id among variants of one product.
| Shown in Commerce Manager as | IDs can't be duplicated |
|---|---|
| Attribute | id |
| Effect | Product disapproved |
| Where to find it | Catalog → Products → a product’s Status and issues; feed-level errors under Catalog → Data sources → Download issue report |
| Free check | Reported by the free feed check |
What Commerce Manager means by “IDs can't be duplicated”
Meta’s data feed troubleshooting page requires a unique content id for each product, used once in the catalogue and different from every group id, and stresses that the field is case sensitive (abc123 and ABC123 are two products). The product data specification adds the practical advice: use the SKU where possible, up to 100 characters, and for Advantage+ catalogue ads make it match the content id your Meta Pixel sends.
When ids repeat, one row overwrites another and a product silently goes missing, so the issue is worth fixing even when the rows look identical.
Why it happens
- Parent id on every variant in an export that writes one row per size.
- Blank or shared SKUs used as ids.
- A product in two collections exported twice.
How to fix it
In Shopify
Use variant ids as content ids, which is Shopify’s channel default. Make sure the same value is what your pixel sends as content_ids, or ads lose the match.
In WooCommerce
Variations have their own post ids; our free plugin uses them, with the parent id as the group. Exports keyed on SKU need every variation to have a distinct SKU first.
In a CSV or XML feed
Sort by id and find repeats. Variants of one product get their own ids and a shared item_group_id; true duplicates get deleted. Keep the ids you settle on: Meta ties the product, and your pixel’s events, to them.
How long until Commerce Manager clears it
On the next upload with unique ids; previously overwritten rows appear as products.
What FeedRobin does about it
The free feed check counts rows whose id an earlier row already used and reports them as critical; we keep the first and never serve a duplicate. Which of two rows is the real product is your catalogue’s call, so we do not merge them.
Questions merchants ask
Are abc123 and ABC123 the same id?
No. Meta’s specification says the field is case sensitive and gives exactly that example: they create two different products. Uniqueness is checked on the exact string.
Should the id be the SKU?
Meta suggests the SKU where possible, and for Advantage+ catalogue ads the id must match the content id your pixel sends. Whatever you choose, keep it stable; a changed id is a new product with no history.
Do variants need separate ids?
Yes. Every size and colour is its own row with its own content id; the variants of one product share an item_group_id, which must itself be unique and different from any id.
Sources
- Troubleshoot data feed errors in your catalog — Meta Business Help Centre
- Product data specifications for catalogs in Commerce Manager — Meta Business Help Centre