The problem
Shopping and catalog campaigns run on the product feed. Missing GTINs, generic titles, wrong categories and empty attributes never show up as a line item, yet they decide which products are eligible, which searches they match and what each click costs.
Most merchants notice only when Merchant Center disapproves products. The fix is then a spreadsheet and a wait for a developer. I ran these campaigns for years: the data layer between a shop and the ad platforms is where performance is won or lost, and almost nobody owns it.
How it works
- Read. Paste a feed URL (XML, CSV, JSON or Google Sheets). Presets show where Shopify, WooCommerce and other platforms publish theirs. The source feed is never changed.
- Check. More than 30 checks per product, grouped into 13 fix groups and ranked by impact, so the next fix is always the one that matters most. The first score arrives in about two minutes.
- Fix. Gemini writes titles, descriptions and missing attributes. Category matching maps each product to one of 5,500 Google categories, with a local pre-filter before the model is asked.
- Control. IF-THEN rules (11 operators, 10 actions, 37 fields) and supplemental feeds change thousands of products safely. Broken size runs are suppressed before they waste budget.
- Publish. 33 channels, 28 of them with presets. Products go to Merchant Center through the Content API, with disapproval reasons read back, and to Meta catalogs through a real OAuth connection.
- Measure. 13 GA4 reports per product and A/B title tests close the loop from a feed change to revenue.
What I own
Everything: the product decisions, the interface, the code, the integrations, the brand and the launch ads. Building it alone forced the same discipline I bring to a marketing team: decide what matters, ship it, measure it, cut the rest.
Why it is on this page
I would rather fix the cause than report the symptom. In shopping campaigns the cause was usually the feed, so I built the tool that fixes it. Running it as a product keeps me honest about what actually drives revenue.