SpendSignoffSpendSignoff

Guide

Google Ads automation with SpendSignoff: beyond scripts and rules

Google Ads scripts break when the API changes. Smart Bidding is a black box. SpendSignoff gives you an operator that reads your account continuously, proposes specific changes with full reasoning, and executes only what you approve.

Why existing automation falls short

Google Ads rules fire on a single metric threshold: if CPA exceeds $X, pause. They have no memory, no cross-campaign context, and no way to reason about whether pausing one campaign will inflate CPA in another by reducing competition for shared audiences.

Scripts give you more control but require maintenance. The Google Ads Script API changes regularly. A script that worked in Q3 may throw a type error in Q4 after a platform update. Most advertisers who wrote scripts in 2022 are running stale code today.

Smart Bidding optimizes for the signals Google has, within the platform. It does not know that your offline conversion import is lagging by 48 hours. It does not know that you ran a promotion last week that inflated CTR and is now distorting the model. It applies target CPA and target ROAS against a data picture that may not match your actual business state.

SpendSignoff reads your account with the same Google Ads API access, but the reasoning layer is not inside Google. The operator can see cross-campaign patterns, account for your custom conversion windows, and produce a change proposal with explicit reasoning you can inspect and push back on.

What the SpendSignoff operator reads from Google Ads

The operator reads these data points on every sync cycle:

  • Campaign budgets and pacing — daily budget, amount spent, amount remaining, projected end-of-day spend vs. daily cap.
  • Keyword performance — impressions, clicks, CTR, average CPC, conversions, conversion rate, CPA, ROAS, and quality score components per keyword.
  • Search term report — actual queries, with full performance data including zero-conversion spend.
  • Ad group structure — keyword counts, active/paused state, and ad group quality signals.
  • Impression share — lost impression share by budget versus by rank, per campaign.
  • Conversion data — conversions by type, lag distribution, and attribution model.
  • Anomaly signals — CTR deviations beyond two standard deviations, CPC spikes, approval status changes, and budget exhaust timestamps.

The autonomy loop: always-on, propose-only in V1

The SpendSignoff autonomy loop runs on a configurable cadence — hourly for anomaly detection, daily for structural optimization proposals. In V1, the loop posture is propose-only: every finding generates a draft in the approval queue, never a direct write.

You configure the loop with three parameters: a daily budget ceiling (the operator will not propose any single-day spend increase that takes you above it), a maximum bid change percentage (bids can be proposed up or down by at most X% per cycle), and a change frequency cap (at most N drafts per campaign per day to prevent churn).

These parameters are enforced server-side, not in the client. The loop itself runs as a background worker in SpendSignoff infrastructure, not in your AI client session. The client session can ask for a manual analysis run, but the always-on loop runs whether your client is open or not.

The loop proposes, you approve

The autonomy loop cannot spend money. It reads your Google Ads account with mcp.read, produces propose_change drafts, and stops. Every draft sits in the approval queue until you run the two-step Approve and push live → Confirm control. Approved changes are written to Google Ads via the API and recorded in the KMS-signed audit log. Rejected drafts are stored for review. The loop does not retry a rejected draft unless you configure it to.

Configure the autonomy loop for Google Ads

1

Authorize Google Ads with write scope

From the SpendSignoff accounts screen, authorize your Google Ads account. Read scope is granted first; write scope (required for approved changes to execute) is requested in a separate OAuth step once you have reviewed the first read-only analysis.

2

Set your loop parameters

Open Autonomy settings. Set your daily budget ceiling, maximum bid change per cycle (10% is a reasonable starting point), and draft frequency cap per campaign. These apply across the loop and can be edited at any time.

3

Review the first batch of drafts

Within the first 24 hours the loop will produce drafts based on the current account state. Each draft shows the trigger signal, the proposed change, the current value, and the projected impact. Reject what does not make sense; approve what does.

4

Monitor the audit log for the first week

Open the audit tab and review approved changes against actual performance data 48-72 hours later. This calibration period tells you whether the loop parameters are too aggressive (too many changes, account becomes unstable) or too conservative (no meaningful changes are proposed).

Draft rollback: undoing an approved change

Every approved draft has a one-click rollback in the audit log. The rollback issues the inverse API write — if the draft increased a bid from $1.20 to $1.44, the rollback writes $1.20 back to Google Ads. The rollback itself is also recorded as an audit event with a link to the original draft.

Rollback is available for 30 days after approval. After 30 days the audit entry is archived but still readable; the rollback write is no longer available because the account state may have changed significantly enough that the original value is no longer meaningful.

Scripts and SpendSignoff can coexist

If you have existing Google Ads scripts that handle tasks SpendSignoff does not yet cover (custom reporting exports, label-based automation, third-party feed updates), you do not need to remove them. SpendSignoff reads account state after scripts run and treats the current live state as ground truth. The two systems operate independently.

Next

Automate Google Ads step-by-step

A concrete setup sequence for enabling the SpendSignoff loop on an active Google Ads account.

    Google Ads automation — SpendSignoff operator guide · SpendSignoff