>_

SpendSignoff documentation

The always-on operator for your ad accounts. Read and draft from your AI client — approve before anything goes live.

Ad platform

Integrate Google Ads

Connect a Google Ads account over Google OAuth. The first authorization is read-only: the operator reads your campaign structure, budgets, bids, and spend, then drafts changes you approve. Google Ads is live today.

Your AI can read and draft — it can never spend without your approval.

What the integration reads

SpendSignoff links your Google Ads account through Google’s own OAuth consent screen. The connection starts read-only — it pulls account structure and the last spend and performance windows so the operator can find money to move. Nothing in the account changes during linking.

You can keep a Google Ads account connected at read level indefinitely. Reads are ungated: they run on every plan, including Free. You only ever decide to push a change live when you approve a specific draft in the SpendSignoff app.

Entities you can read and draft on

The operator reads the full account tree and drafts changes against these objects via propose_change:

  • Campaigns — status, daily budget, bid strategy, and pacing.
  • Ad groups — default bids, status, and the keywords or audiences attached.
  • Budgets — shared and campaign-level daily budgets, for reallocation between campaigns.
  • Bids — target CPA, target ROAS, and manual CPC values where the strategy allows.
  • Keywords — match type and status (pause and enable), read for context on spend.
  • Performance — impressions, clicks, cost, conversions, and ROAS over the recent windows.

How a change happens

1

Link the account read-only

Authorize SpendSignoff through Google OAuth. The grant is read-first — the operator can read structure and spend, and draft proposals, but it is issued mcp.read and mcp.draft only.

2

The operator reads structure and spend

It pulls campaigns, ad groups, budgets, bids, and recent performance to find a stalled budget, an over-paced campaign, or a bid that is leaving conversions on the table.

3

It drafts a change

The proposed change — say, moving budget from an under-delivering campaign to one hitting target ROAS — lands as a draft with the before → after diff and projected impact. Nothing is live yet.

4

You approve and push live

You review the draft in the approval queue and run the two-step Approve & push live → Confirm control. Only then does SpendSignoff call the Google Ads API, with a signed audit entry and one-click rollback.

Write access stays dormant until you approve

Linking Google Ads grants read access, not spend authority. The operator can draft any change, but no write reaches your Google Ads account until you approve that specific draft. There is no mcp.approve scope issued to the AI.

Not yet supported

V1 keeps the Google Ads surface tight. These are out of scope for now:

  • Creating new campaigns or ad groups from scratch — drafts edit existing structure.
  • Ad creative and asset editing — copy, images, and responsive assets are read-only.
  • Search query and negative-keyword mining as an automated draft source.
  • Conversion-action and tag configuration — read for ROAS context, not editable.

Next

Meta Ads

The other platform live today: read-first OAuth, drafted budget and bid changes.

    Integrate Google Ads — SpendSignoff Docs