Real accounts. Real before and after.
Three engagements from my live Google Ads and Merchant Center portfolio. Every number below comes straight from the Google Ads API and account screenshots — nothing modeled, nothing projected.
Client names anonymized. Screenshots blurred only where they would identify the client.
US Fragrance E-Commerce Store
16x ad spend scale in one month — while ROAS improved — on an account that started with counterfeit-policy disapprovals.
The problem
- 8 products disapproved under Google's counterfeit policy, risky title patterns across the catalog
- Product titles disconnected from what shoppers actually search
- Brand-new ads account that had to scale without tripping more policy flags
What I did
- Rewrote all 8 flagged listings policy-safe, plus title rules so new products can't repeat the violation
- 5,718-keyword study filtered through honesty gates → 450-row keyword-led shopping feed covering 1.2M+ monthly searches
- Negative-keyword banks and a branded/generic split so budget scaled into the right queries
Results — Google Ads, Jun vs Jul 2026
| June | July 1–24 | |
|---|---|---|
| Ad spend | $483 | $8,036 |
| Conversions | 12 | 380 |
| Conv. value | $723 | $15,942 |
| ROAS | 1.50x | 1.98x |
Best July performers: generic PMax at 3.63x, branded Shopping at 2.84x, discovery PMax at 2.41x.



Source: Google Ads account (screenshots) + Google Ads API pulls, Jun 1 – Jul 24, 2026.
Supplements Brand — 5 English-Speaking Markets
From a $0 cold start to a 2x ROAS month — after rescuing the bestseller from a drug-policy flag that made it invisible in Shopping.
The problem
- Bestselling product line kept getting flagged under Google's drug-class policies — effectively invisible in Shopping
- Cold-start ads account: no history, five markets at once (AU, CA, UK, IE, NZ)
What I did
- Root-caused the flag: a drug-class term in copy, not the brand name — rebuilt listings brand-led and policy-clean
- 1,539-row supplemental feed in two languages with search-grounded titles
- Full API account diagnostic: zero-converting products, starved budgets, compliance timebombs → prioritized fix plan + negatives pack
Results — launch through Jul 24, 2026
| Launch week | Latest week | |
|---|---|---|
| Ad spend | $113 | $2,025 |
| Conversions | 2 | 85 |
| ROAS | 0.57x | 2.83x |
July overall: $6,574 at ~2x blended ROAS while still scaling. Brand search at 7.86x. Merchant Center at 94.4% eligible products after the policy cleanup.


Source: Google Ads account (screenshots) + Google Ads API weekly pulls + Merchant Center product-status scan, Jul 24, 2026.
Canadian Fashion Boutique — 4,547-Variant Feed Rebuild
Every one of 4,547 product variants retitled around real search demand — 99.8% Merchant Center eligibility at launch.
The problem
- 4,547-variant catalog running on template titles — zero connection to search demand
- A niche where Google watches misrepresentation closely — sloppy titles get accounts suspended
What I did
- Pulled 21,526 keywords with real volumes from the Google Ads API (Canada geo) — demand data, not guesswork
- Exclusive-assignment system: 1,827 keyword heads, each owned by exactly one product — listings never compete for the same query
- Every title through honesty gates: claims verified against the live site, competitor brands stripped, ungrounded copy killed
Results — Merchant Center scan, Jul 24, 2026
| Before | After | |
|---|---|---|
| Keyword-grounded titles | 0 / 4,547 | 4,547 / 4,547 |
| Unique titles | Template repeats | 4,547 unique |
| Eligible in Merchant Center | — | 4,538 / 4,547 (99.8%) |
Campaigns are in early launch phase — this feed infrastructure is the same system behind case study 01.
Source: Google Ads API product-status scan + keyword-ideas API pull, Jul 24, 2026.
20-Account Shopping Portfolio — Price-Integrity Monitoring
Found live price errors on four client feeds that had never once been checked — including one feed running 60% of its rows below the price the store actually charged.
The problem
- A 20-account Google Shopping portfolio running $299,640 in 14 days — feeds built up over months, prices moving underneath them
- The weekly price check reported “0 mismatch” for several accounts. They were not clean — nothing had been compared. The id pattern silently skipped them
- Localised feeds (CA / AU / NZ / UK / IE) were invisible to any check — a store’s public product feed only serves its base currency
- A feed priced below the real checkout price is the exact condition Google penalises — and nobody was seeing it
What I did
- Audited coverage across every feed file ever built — 92 files. Only 15 were being price-checked
- Made blind spots impossible to misread: the checker now prints an explicit ZERO COVERAGE warning instead of a clean-looking zero
- Built a second checker for localised feeds, validating them against the market price books captured at build time — the only source that holds per-country pricing
- Root-caused every finding before escalating — separating errors in my own feeds from errors in the client’s store feed, so each went to the person who could actually fix it
Results — coverage rebuild, Aug 7, 2026
| Before | After | |
|---|---|---|
| Feed files price-checked | 15 / 92 | All current builds |
| Accounts with price coverage | 16 / 20 | 19 / 20 |
| Localised feeds validated | 0 | 13 feeds · 2,562 rows |
| Silent blind spots | Reported as “clean” | Flagged explicitly |
| Live price errors surfaced | 0 known | 4 accounts |
What the first run caught
- EU accessories brand — 32 of 53 rows priced €5 under the live store. The feed had been built in July; the store raised prices after. Caught the same day it went live
- Swiss footwear retailer — 89 rows advertising below checkout price
- US workwear brand — the store’s own feed was sending the was-price as the selling price. Same number, wrong column. Nothing to rebuild, one mapping to fix
- US motorcycle apparel — 19 rows at exactly half the live price, on the store’s primary feed. The matching Shopping campaigns were running at 0.50x while the same products earned 3.72x elsewhere

The dashboard ships with an anonymised mode so the interface can be shown without exposing an account roster — verified by scanning the rendered page for every real client name before publishing.
Source: Google Ads API product-status and spend pulls, live store price capture, and feed-file audit — Aug 7, 2026. Client names withheld; niches only.