wiki/clients/current/quarra/2026-03-04-inventory-performance-marketing.md · 1116 words · 2026-04-05
Overview
Weekly review covering two primary topics: (1) Amazon FBA inventory stockouts suppressing ROAS, and (2) a full Google Ads account overhaul for Quarrowstone, including a live demonstration of [1] diagnosing and fixing the account in real time via the Google Ads API.
Attendees: Gilbert Barrongo, Mark Hope, Sebastian Gant, Karly Oykhman
Source: Fathom Recording
Key Decisions
- Switch Quarrowstone bidding from Maximize Conversions → Maximize Clicks with a $4 max CPC cap. Maximize Conversions requires ~30 days of conversion history to function; using it on a new account with zero conversions is a no-op.
- Raise search campaign budgets to $16/day (from $7/day) to generate ~4 clicks/day at $4 CPC. Retargeting budget set to $10/day. Total exposure ~$58/day; to be monitored and reviewed next week.
- Maintain Google Ads optimization score ≥ 80. Scores below 80 incur algorithmic penalties from Google. Applied Responsive Search Ads recommendation to bring score from 78 → 83.
- Create a dedicated brand campaign for Quarrowstone and remove brand terms from non-brand campaigns. Brand clicks cost ~$0.30 CPC vs. ~$5.00 for non-brand; spending non-brand budget on brand terms is waste.
- Reduce conversion goals from 16 → 2 biddable actions. Duplicate and auto-created goals were confusing the bidding algorithm. Only contact form submissions and Google-hosted lead forms remain as biddable; others set to observation only.
Action Items
- [ ] Monitor new Google Ads budgets ($16/day search, $10/day retargeting); review next week (@Gilbert Barrongo)
- [ ] Present AI inventory-shipment model demo to Mark next week (@Gilbert Barrongo)
- [ ] Maintain Google Ads optimization score ≥ 80 (@Gilbert Barrongo)
- [ ] Create dedicated brand campaign; move brand terms out of non-brand campaigns (@Gilbert Barrongo)
- [ ] Email Carly re: low Quality Scores (2–4); request landing page improvements (@Gilbert Barrongo)
- [ ] Verify retargeting audience list is populated; add if missing (@Gilbert Barrongo)
- [ ] Create Google Ads-only Claude Code workspace; set up cron jobs for automated audits (@Gilbert Barrongo)
- [ ] Post Google Ads changes report to Slack/Drive (@Mark Hope)
- [ ] Fix ClientBrain login/auth for Gilbert (@Mark Hope)
Current Stockouts
| Product |
FBA Stock |
In Transit |
30-Day Sales Velocity |
| Old World White Popcorn |
0 units |
2,400 units |
425 units/mo |
| Kidney Beans (5 lb) |
0 units |
288 units |
72 units/mo |
| Various 25 lb SKUs |
0 units |
In transit |
Lower velocity |
Shipments scheduled for March 9 are delayed due to unresolved pickup issues Carly is managing.
- ROAS: 3.35 (up from 3.3 the prior week)
- TACOS: Decreasing → improved profit margin trend
- Organic units: Growing
- Subscribe & Save sales: Growing
Inventory stockouts are the primary suppressor of ROAS. Mark's position: resolve the stockout problem permanently and stop discussing it week-over-week.
Gilbert is building an AI-driven shipment quantity calculator using:
- 30-day sales velocity per SKU
- Lead time (typically 2–3 weeks)
- Current FBA stock levels
Demo planned for next week's call.
Google Ads Campaign Overhaul (Quarrowstone)
Root Cause Analysis
The Quarrowstone account had zero conversions across all campaigns. Claude Code's API-based diagnosis identified the following:
| Issue |
Detail |
| Wrong bidding strategy |
"Maximize Conversions" with no conversion history — algorithm has nothing to optimize |
| Budget too low |
$7/day at $4 CPC = ~2 clicks/day; insufficient signal |
| 16 duplicate conversion goals |
Auto-created goals confused the bidding algorithm |
| Keyword bloat |
200 keywords; only 10 generating any traffic |
| Irrelevant broad match traffic |
Queries like "bronze statues," "marble floor cleaner," "wax statue maker" |
| No negative keywords |
Two largest campaigns had zero negatives |
| Low Quality Scores |
Scores of 2–4; root cause is poor landing page relevance |
| Brand terms in non-brand campaigns |
Brand CPC ~$0.30 vs. non-brand ~$5.00; wasted budget |
| Retargeting display: zero impressions |
Likely missing audience list |
| Optimization score below 80 |
Google penalizes accounts below this threshold |
Fixes Applied (This Session)
- Bidding strategy: Changed all search campaigns to Maximize Clicks, $4 max CPC
- Budgets: Search campaigns → $16/day; retargeting → $10/day
- Conversion goals: Reduced from 16 → 2 biddable actions (contact form, Google lead form)
- Negative keywords: Added 839 negatives via Claude Code, including:
- Brand terms (to be isolated in dedicated brand campaign)
- Irrelevant materials: bronze, fiberglass, granite, marble
- Competitor terms (~95 exact match)
- Fine art / foundry queries (~71 exact match)
- Restoration-specific terms (~180)
- Residential / transactional modifiers: "for sale," "buy," "shop"
- Keyword purge: Removed irrelevant keywords from ad groups (127 → 104 remaining)
- Optimization score: Applied Responsive Search Ads recommendation; score raised 78 → 83
Remaining Items (Not Yet Done)
- Create dedicated brand campaign
- Fix landing pages to improve Quality Scores (requires Carly)
- Verify/add retargeting audience list
- Monitor impression share improvement from budget increase
Claude Code Live Demo
Mark demonstrated [1] connecting to the Google Ads API via ~100 pre-built MCP server tools. Key observations:
- Diagnosis speed: Pulled full account data, identified all major issues, and produced a structured findings table in minutes (slowed this session by Claude server degradation)
- Real-time execution: Changed bid strategies, modified conversion goals, added 839 negative keywords, and purged irrelevant keywords — all without opening the Google Ads console
- Self-correcting: When API calls returned syntax errors, the agent identified the issue and retried with corrected syntax
- Scriptable: Sessions can be saved as named scripts and run on cron jobs for automated weekly audits
- Agent swarms: Multiple agents can run simultaneously across accounts
Next step for Gilbert: Set up a Google Ads-only Claude Code workspace (isolated from Mark's multi-tool environment) and configure cron jobs for automated weekly audits.
"It's like a hacker. An AI hacker." — Gilbert Barrongo
ClientBrain Demo
Mark briefly demonstrated [2] (clientbrain.asymmetric.pro), an internal tool aggregating all client communications (email, Slack, Fathom transcripts, ClickUp tasks, Google Drive) into a searchable, AI-queryable interface. Features shown:
- Per-client activity dashboard (emails, meetings, Slacks, Drive docs, ClickUp tasks)
- AI-generated 7-day communication summaries
- Sentiment analysis on client relationship health
- Natural language Q&A against all client data
Gilbert's login is broken; Mark to fix auth issue before next session.