google-ads-budget

Installation

$npx skills add TheMattBerman/google-ads-copilot --skill google-ads-budget

Summary

The agent can audit campaign budgets against signal quality, intent clarity, tracking confidence, and structural health, then produce targeted reallocation drafts. Invoke this when budget decisions need to be informed by data integrity and impression-share diagnostics, not just raw spend.

SKILL.MD

Google Ads Budget

Read first:

  • google-ads/references/operator-thesis.md
  • google-ads/references/intent-map.md
  • google-ads/references/tracking-playbook.md
  • google-ads/references/structure-playbook.md
  • google-ads/references/budget-playbook.md
  • google-ads/references/deliverable-templates.md

Read workspace if available:

  • workspace/ads/account.md
  • workspace/ads/goals.md
  • workspace/ads/intent-map.md
  • workspace/ads/winners.md
  • workspace/ads/findings.md
  • workspace/ads/change-log.md
  • workspace/ads/learnings.md
  • workspace/ads/drafts/_index.md — check if tracking fixes are pending (gates scaling)

Data Acquisition

Connected Mode (MCP available)

Pull via the search tool on google-ads-mcp:

Primary: Campaign budgets and spend:

SELECT
  campaign.name,
  campaign.status,
  campaign_budget.amount_micros,
  campaign_budget.delivery_method,
  campaign.bidding_strategy_type,
  metrics.cost_micros,
  metrics.conversions,
  metrics.cost_per_conversion,
  metrics.impressions,
  metrics.search_impression_share
FROM campaign
WHERE campaign.status = 'ENABLED'
  AND segments.date DURING LAST_30_DAYS

Primary: Impression share and budget-limited detection:

SELECT
  campaign.name,
  metrics.search_impression_share,
  metrics.search_budget_lost_impression_share,
  metrics.search_rank_lost_impression_share,
  metrics.cost_micros,
  metrics.conversions
FROM campaign
WHERE campaign.status = 'ENABLED'
  AND campaign.advertising_channel_type = 'SEARCH'
  AND segments.date DURING LAST_7_DAYS

Supplementary: Tracking confidence check:

SELECT
  conversion_action.name,
  conversion_action.type,
  conversion_action.counting_type,
  conversion_action.include_in_conversions_metric,
  metrics.conversions
FROM conversion_action
WHERE conversion_action.status = 'ENABLED'
  AND segments.date DURING LAST_30_DAYS
ORDER BY metrics.conversions DESC

See data/gaql-recipes.md for additional queries.

Date Range Fallback

If LAST_30_DAYS returns 0 rows, fall back to LAST_90_DAYS. For budget analysis, older data is less useful — if 90 days is also empty, note "Account dormant: no activity to base budget decisions on" and recommend a plan or audit instead. Always state the date range used.

Export Mode (no MCP)

Ask the user for:

  • Campaign budget report: Budget, Spend, Conversions, Search IS%, Budget Lost IS%
  • Last 30 days preferred

Process

  1. Announce mode (connected/export).
  2. Check tracking confidence first — from workspace findings or quick tracking check.
    • If tracking confidence is Low/Broken, flag that budget decisions are provisional.
    • Check workspace/ads/drafts/_index.md for pending tracking fix drafts.
  3. Identify which buckets are buying clean signal vs. noisy traffic.
  4. Assess impression share — where is budget the constraint vs. where is it quality?
  5. Distinguish between budget constraints and structural/intent problems.
  6. Recommend:
    • Scale — clean signal, budget-limited, good CPA
    • Protect — working well, don't starve it
    • Reduce — noisy traffic, poor signal, overfunded
    • Hold — needs more data or structural fix before budget decision
    • Fix-before-scaling — blocked by tracking, structure, or intent problems

Draft Output

Budget Reallocation Draft

Trigger: Analysis identifies campaigns where budget is clearly misallocated (strong campaign starved while weak campaign overfunded), AND tracking confidence is at least Medium.

Create using drafts/templates/budget-draft.md:

  • Write to workspace/ads/drafts/YYYY-MM-DD-[account-slug]-budget-realloc.md
  • Include: current daily budget, proposed daily budget, change amount, reason, expected impact
  • Show net budget change (budget-neutral reallocation vs. total spend change)
  • Note tracking confidence gate
  • Update workspace/ads/drafts/_index.md

Blocking conditions

Do not produce a budget draft if:

  • Tracking confidence is Low or Broken (recommend tracking fix instead)
  • A pending tracking fix draft exists that hasn't been applied

Instead, note: "Budget decisions are blocked until tracking fix draft [X] is resolved."

Always update workspace memory:

  • workspace/ads/findings.md — budget observations
  • workspace/ads/learnings.md — what we learned about spend efficiency

Rules

  • Do not scale ambiguous traffic just because volume is available.
  • Do not mistake structure problems for budget problems.
  • If tracking confidence is low, say that budget decisions are provisional.
  • Budget scaling is the highest-risk action in the system. Gate it behind tracking trust.