SpendSignoffSpendSignoff
Tutorial7 min read··SpendSignoff

Manage Google Ads and Meta campaigns from Claude Code

Claude Code is a terminal-first AI coding assistant, but its MCP support makes it equally capable as an ad operations tool. The same {list_campaigns} and {propose_change} tools that work in Claude Desktop work here — same safety contract, same draft-before-live enforcement.

Why Claude Code for ad management

Claude Code operators live in the terminal, write code, and already have MCP wired in. If you manage a mix of paid media and technical work in the same session, keeping ad operations in the same client removes a context switch. You can pull a campaign report, spot a CPA drift, draft a bid adjustment, and push the approved change — all without leaving your terminal.

The read/draft scope model means there is no different risk profile compared to Claude Desktop. The AI never holds spend authority.

Install SpendSignoff in Claude Code

Open your .claude/settings.json (or ~/.claude.json for global config). Add SpendSignoff to the mcpServers block:

~/.claude.json (mcpServers section)

{
  "mcpServers": {
    "spendsignoff": {
      "type": "http",
      "url": "https://mcp.spendsignoff.com/mcp"
    }
  }
}

OAuth on first use

The first time Claude Code calls an SpendSignoff tool, it will open a browser window for the OAuth flow. After that, the session token is stored and re-used automatically.

Connecting your ad accounts

Once Claude Code can reach SpendSignoff, ask it to list your connected accounts: "Show me my Google Ads accounts." If none are linked, it will return an empty list and point you to the SpendSignoff dashboard where you link ad-platform credentials via the account-level OAuth flow.

Linking happens once per platform. The credentials are KMS-vaulted server-side — Claude Code never sees your ad-platform access tokens directly.

Reading, drafting, approving

With accounts connected, three verbs describe every operation. Read — the model fetches live data: campaign list, yesterday's spend, keyword-level ROAS. Draft — the model stages a before→after diff, e.g. raising a daily budget from $120 to $150. Approve — you log into the SpendSignoff dashboard, review the diff, and click "Approve & push live." The model cannot skip that step.

Sample session in Claude Code: "Pause all campaigns with a 30-day CPA over $80 and more than 50 conversions." Claude Code calls query_entities to pull the candidates, then calls propose_change once per qualifying campaign. Each change lands in your approval queue as a separate reviewable diff.

No auto-approve path

There is no flag, environment variable, or prompt that enables auto-approval. The mcp.approve scope is not issued to any AI client. Budget-moving actions require a human sign-off every time.

Practical workflows

  • Weekly hygiene — "List keywords with CTR below 0.3% and spend above $50 last 30 days" → review the list → "Pause the top 10 by wasted spend."
  • Launch a campaign — "Create a Google Ads search campaign for [product], $80/day, broad-match keywords [k1, k2, k3]." SpendSignoff stages the full campaign object as a draft.
  • Cross-platform budget check — "Show me yesterday's spend and conversions for all accounts." Reads both Google Ads and Meta in one response.
  • CPA spike triage — "Which ad groups spiked CPA by more than 40% this week vs last week?" Returns a ranked list with before/after figures.

FAQ

Does SpendSignoff work with Claude Code's agent mode?
Yes. In agent mode Claude Code can chain multiple tool calls — reading account data, deciding which changes to draft, and queuing several proposals in a single run. All drafts still land in your approval queue; none are applied automatically.
Is there a difference between connecting via Claude Desktop vs Claude Code?
The MCP server is identical. The only difference is where you configure the mcpServers block — in Claude Desktop's settings UI vs a JSON file for Claude Code. Same OAuth flow, same tools, same safety contract.

Connect an account read-only and watch the operator work.

Reads are free on every plan. Nothing spends without your two-step approval.

Book a demo

Related reading

    Manage Google Ads and Meta campaigns from Claude Code — SpendSignoff · SpendSignoff