Feed Optimization
Product ID Splitting: The 2026 Requirement for Online vs. In-Store Products
Google now requires separate product IDs for the same item sold online vs. in-store. What changed, who is affected, migration steps, and item_group_id…
What changed
Google now requires that products available both online and in physical stores use separate product IDs in their respective feeds. A product that previously used ID SKU-1234 for both its online listing and its Local Inventory Ad listing must now use two distinct IDs: one for the online channel and a different one for the local/in-store channel.
This requirement applies to merchants running both Shopping ads (online) and Local Inventory Ads (in-store), where the same SKU appears in both a primary product feed and a local inventory feed. If you run only online Shopping ads with no Local Inventory Ads program, this change does not affect you.
Why Google made this change
When the same product ID is used for both online and in-store inventory, Google’s bidding system receives mixed signals. Performance data from both channels is attributed to one product ID, making it difficult for the algorithm to optimize each channel independently:
-
A product that converts well in-store but poorly online will have blended performance signals that Smart Bidding can’t act on correctly
-
Price and availability for online vs. in-store can differ — the same SKU may be €29.99 online and €34.99 in the physical store
-
In-store pickup conversions and online delivery conversions require different optimization signals
Splitting IDs allows Google’s system to treat each channel as a distinct product for bidding and attribution — even though the physical product is identical.
Who is affected
You are affected if you:
-
Submit a primary product feed to Merchant Center for online Shopping ads
-
Also submit a local inventory feed (or use Local Inventory Ads)
-
The same product SKU/ID appears in both feeds
Online-only merchants are not affected.
Migration guide
Step 1: Audit your ID overlap
# Find overlapping IDs across feeds
online_ids = set(primary_feed['id'])
instore_ids = set(local_inventory_feed['id'])
overlapping = online_ids.intersection(instore_ids)
print(f"Products requiring ID split: {len(overlapping)}")
Step 2: Define your naming convention
Common patterns:
-
SKU-1234-onlinevs.SKU-1234-store -
online_SKU-1234vs.store_SKU-1234 -
SKU-1234-W(web) vs.SKU-1234-S(store)
Critical constraint: product IDs cannot exceed 50 characters and must not contain spaces. Verify your new IDs comply before bulk implementation.
Step 3: Update your primary product feed
Change all affected product IDs to use the new online-channel convention. All other attributes (title, price, GTIN, images) remain unchanged — only the id attribute changes.
Step 4: Update your local inventory feed
Change all affected product IDs in the local inventory feed to use the in-store convention. The IDs must now correspond to the new store-channel IDs, not the online-channel IDs.
Step 5: Handle item_group_id
If your products use item_group_id to group variants, you need a consistent strategy. Google’s current guidance is to use the same item_group_id for the same product across channels — they’re still the same physical product, just different channel representations. This maintains consistent variant grouping and simplifies feed management. See the item_group_id attribute guide for details.
Step 6: Submit and verify
After updating both feeds, monitor Merchant Center Diagnostics. You should see online products with new channel-specific IDs and no “conflicting product ID” warnings.
Impact on Smart Bidding performance
Changing a product ID creates a new product entity in Google’s system. The performance history associated with the old ID is not transferred. Smart Bidding will need to build new models for the updated IDs — typically a 2-4 week learning period. Budget slightly conservatively during the transition; ROAS may fluctuate.
Important: don’t delete old IDs immediately
When you introduce new IDs, don’t immediately remove the old ones if any Google Ads campaigns or product groups still reference them. First update campaign product group filters to reference the new IDs, then remove old ones from the feed. Removing a referenced ID causes the campaign to serve nothing for that product group until the filter is updated.