Case study 01
Unifying retail campaign management into a single, intelligent surface
How I turned three disconnected tools — and a deeply technical product group problem — into one workflow that tripled MRR, reduced support load by 80%, and compressed weeks of manual campaign work into minutes.
3.5×↑ MRR
$100K → $350K monthly recurring revenue
80%↓ tickets
50+ support tickets/week down to under 10
3 → 1
Fragmented tools unified into one workflow
Weeks→ mins
Complex strategy implementation for large accounts
Solo PM
~12 months
2 engineers, no designer
Shopping Ads
Performance Max
Feed automation
The problem
Creating Shopping campaigns at scale is a uniquely unforgiving task
Unlike Search campaigns where the main authoring task is writing keywords, Shopping and Performance Max campaigns are built around product group trees — hierarchical structures that determine which products get shown and at what bid. One misplaced exclusion node, one incorrect "everything else" catch-all, and products outside your intent start consuming budget silently.
Our platform had the automation to help — but it was split across three separate tools: one for creating campaigns, one for keeping them in sync with merchant feed changes, and one for restructuring existing campaigns when strategy shifted.
Users had to mentally context-switch between tools to answer a single question: "Is my campaign set up correctly, and is it staying that way?" The fragmentation itself was causing errors — and driving a flood of support tickets.
The real cost of manual campaign management
Hours for simple setups. Weeks for complex strategies.
| Task | Manual (before) | With the tool |
| 2–3 well-structured campaigns | Several hours | Minutes |
| Complex strategy, large account | Days to weeks | Minutes |
| Feed sync after catalogue change | Manual re-check across tools | Automated, single surface |
| Campaign restructure | Start-from-scratch rebuild | In-place from unified view |
Constraints
No designer. Half a design handoff. A technically complex domain.
I inherited a half-finished design with no designer to continue it, a 2-engineer team, and a product domain that requires representing tree-structured data clearly to users who are marketers — not engineers.
The product group tree is inherently dense: every node needs to show its match type, bid, status, and relationship to its siblings and parent — all while the user needs to understand the whole tree at a glance before making a change. Cognitive load was the core design problem.
Strategy & decisions
One surface, reduced cognitive load, and intelligent error translation
The core strategic bet was consolidation: give users a single view of all campaigns and the ability to take any action — create, sync, restructure — from one place.
My approach: navigation as a cognitive load lever. Rather than showing everything at once, I built a mechanism that lets users progressively reveal detail. This also meant enforcing a one-campaign-at-a-time flow — which initially felt like a limitation but turned out to reduce errors significantly.
Before
- Three separate tools for create / sync / restructure
- Full tree visible at once — high cognitive load
- Raw machine errors surfaced to marketers
- No guidance on user-fixable vs support issues
- Implicit multi-campaign context switching
After
- Single unified campaign management surface
- Progressive reveal — expand detail on demand
- Errors translated to plain-language, actionable steps
- Clear signal: fix yourself vs contact support
- Mandatory one-campaign-at-a-time flow
Impact
3.5× revenue growth. 80% fewer support tickets. Weeks of work compressed to minutes.
MRR grew from $100K to $350K — driven by increased adoption, reduced churn, and the ability to upsell once customers could actually use the product without friction. Support ticket volume dropped from 50+ per week to under 10.
The time compression resonates most with practitioners. Campaign setups that previously took hours for straightforward accounts — and days to weeks for complex strategies — now take minutes. For agencies managing dozens of clients, that's the difference between a service that's feasible to offer and one that isn't.