During the 2026-03-04 weekly call, the Quarrowstone Google Ads account was diagnosed as producing zero conversions across all campaigns. The root causes were identified and corrected in a single session — a combination of manual changes and live AI-assisted fixes via Claude Code connecting to the Google Ads API.
Related meeting: [1]
Client: [2]
Campaigns were set to Maximize Conversions despite having no conversion history. Google's algorithm cannot optimize for an event that has never occurred. The correct approach for a new or cold account is:
Start with Maximize Clicks for 60–90 days to accumulate conversion data, then switch to Maximize Conversions once the algorithm has signal to work with.
Search campaigns were set to $7/day against a ~$4 CPC, yielding roughly 1–2 clicks per day — not enough volume to build conversion history or exit the learning phase.
The account had 16 conversion actions, many of them duplicates or auto-created by Google. With so many goals active as biddable actions, the bidding algorithm had no coherent signal. Claude Code identified and fixed this, reducing biddable goals to 2 meaningful actions:
- Contact form submission (website)
- Lead form submission (Google-hosted)
All other actions (page views, email clicks, phone calls from website) were set to Observation only.
Brand searches (e.g., "Quarrowstone") were running across all three active campaigns. Brand clicks cost ~$0.30 CPC vs. ~$5.00 for non-brand — but those clicks would have come organically anyway. A dedicated brand campaign with a low CPC cap is the correct structure.
Multiple keywords scored 2–4 out of 10, indicating poor landing page relevance. This suppresses ad rank and raises effective CPC. Fix requires landing page improvements from the client (Carly).
Google penalizes accounts with an optimization score under 80. The account was at 78 before this session.
| Campaign | Before | After |
|---|---|---|
| Search (×3) | Maximize Conversions | Maximize Clicks, $4 max CPC |
| Retargeting | (unchanged) | Budget reduced to $10/day |
| Campaign Type | Before | After |
|---|---|---|
| Search campaigns (×3) | $7/day each | $16/day each |
| Retargeting | — | $10/day |
Rationale: $16/day ÷ $4 CPC = ~4 clicks/day per campaign — minimum viable volume to start building conversion history.
Claude Code added 839 negative keywords across all active campaigns, organized into categories:
| Category | Count | Examples |
|---|---|---|
| Broad match negatives | ~68/campaign | residential, bronze, fiberglass, cleaning, for sale, buy, shop |
| Competitor exact match | ~95 | competitor brand names |
| Fine art irrelevant | ~71 | art foundry, metal sculpture, wood sculpture |
| Restoration-specific | ~180 | restoration queries unrelated to Quarrowstone's offering |
| Brand terms (as negatives on non-brand campaigns) | 4 | Quarrowstone brand variants |
Before: ~50 negatives. After: ~200+ per campaign.
Never launch a campaign with Maximize Conversions. Always start with Maximize Clicks + max CPC cap for a minimum of 60 days. Switch to Maximize Conversions only after accumulating conversion history.
See also: [3]
Keep Google Ads optimization score ≥ 80 at all times. Scores below 80 result in algorithmic penalties. Review and apply relevant recommendations weekly.
Audit conversion actions on any account showing zero conversions. Auto-created and duplicate goals are a common silent failure mode — they dilute the bidding signal without surfacing as an obvious error.
839 negatives were added in a single session via Claude Code. Manual negative keyword management at this scale is impractical; AI-assisted audits via the Google Ads API are the correct approach for thorough coverage.
This overhaul was partially executed live by Claude Code connected to the Google Ads API via MCP server. Claude Code:
1. Pulled all campaign, keyword, and conversion data
2. Diagnosed issues and ranked them by severity
3. Executed API calls to fix conversion goals, add negatives, and remove irrelevant keywords
4. Generated a written summary of all changes made
Gilbert is being onboarded to run this workflow independently. Next step is a dedicated Google Ads workspace with cron-scheduled audits.
See also: [4]