A quicker way to trace Merchant Center affected IDs back to Shopify feed rows

I kept running into the same problem with Merchant Center issue exports: Google tells you which item IDs are affected, but the slow part is finding the corresponding row in the Shopify or supplemental feed.

The workflow that has worked best for me is:

  1. Export the affected products from the Needs attention view.
  2. Export the exact feed source that was sent to Google.
  3. Check how that feed builds its IDs before comparing them. Some feeds use a variant ID, some use a product ID, and others combine country, language, product, and variant values.
  4. Check country and language when the same item is submitted to more than one market.
  5. Review unmatched rows instead of assuming the product was deleted. They can come from a supplemental feed or another source.

One easy CSV mistake: spreadsheet apps may remove leading zeros, so I import ID columns as text.

I made a small browser tool to speed up this matching step. Both CSV files stay in the browser; it does not connect to Shopify or Merchant Center, and it cannot fix policy or account-level suspensions.

Full disclosure: I built it. The matcher is free. If you try it, the most useful feedback would be a masked example of an ID pattern it fails to match, with store and customer data removed.

Useful workflow. The ID format check (step 3) is the part most people skip and then waste an hour on “missing” rows.

For native Google & YouTube sync the offer ID is usually shopify_{country}{productId}{variantId} (sometimes with language/market bits after the Merchant API split). Supplemental / feed apps often use SKU, barcode, or a custom prefix instead - so joining GMC export → Shopify product CSV on Handle alone fails every time. Match on the same field the feed actually emits.

Also: multi-market = same variant, multiple offer IDs. Filter Needs attention by feed label / country first or you’ll “fix” a DE row while staring at the US export.

Leading zeros as text - yes. Excel turns GTINs into scientific notation and the join silently dies.

Will try the matcher on a masked FR + DE export next time a big disapproval batch lands. If it chokes, the pattern that usually breaks these tools is shopify_XX_… vs a supplemental id that dropped the country prefix.