Guide
How to automate Google Ads: a setup walkthrough for SpendSignoff
This guide walks through the specific steps to connect a Google Ads account, configure the autonomy loop, and get the approval queue producing actionable drafts within the first session.
Before you start
You need a Google Ads account with at least 30 days of campaign history and at least one active campaign. The operator needs performance data to produce meaningful proposals; a brand-new account with no history will produce fewer drafts in the first cycle.
You also need a connected AI client. Claude Desktop, ChatGPT with MCP connectors enabled, or Cursor — any of the three will work for the initial analysis. The autonomy loop runs in SpendSignoff infrastructure and does not require your client to be open, but the first walkthrough is easier with a chat interface.
Connect Google Ads
Open the Accounts screen in SpendSignoff
Navigate to Accounts in the sidebar. Click Connect account, select Google Ads from the platform list, and click Authorize.
Complete the Google OAuth flow
You are redirected to Google. Sign in with the Google account that has manager or owner access to the Google Ads account you want to connect. Grant the requested scopes. SpendSignoff requests read access first; write scope is a separate authorization step.
Select the Google Ads customer account
If you manage multiple Google Ads accounts under a Manager Account (MCC), you see a list. Select the specific customer account to connect. Each customer account is a separate connection in SpendSignoff.
Wait for the first sync
The initial sync reads 90 days of campaign, ad group, keyword, and performance data. For an account with 20+ campaigns this takes 2-5 minutes. The Accounts screen shows sync progress. Do not close the browser tab during the first sync.
Authorize write scope
After the first sync completes, click Enable write access on the connected account card. You are redirected to Google again for a second OAuth step that adds write scope. This step is required for approved drafts to execute. Without it, you can review and approve drafts but they will not be pushed to Google Ads.
Write scope is necessary but not sufficient to spend money
mcp.read and mcp.draft only — is enforced by the SpendSignoff backend regardless of what API scopes are present. A draft only writes to Google Ads after a human runs the Approve and push live → Confirm control.Configure the autonomy loop
Open Autonomy settings
Navigate to Autonomy in the sidebar. The loop is off by default for a newly connected account. Click Configure on the Google Ads account row.
Set the daily budget ceiling
Enter the maximum total daily spend SpendSignoff can propose across all campaigns in this account. This is a proposal ceiling, not an execution ceiling — the actual spend is controlled by your approved changes and Google Ads daily budgets. A reasonable starting value is 110% of your current total daily budget.
Set the maximum bid change per cycle
Enter the percentage by which the operator can propose increasing or decreasing any single keyword bid in a single cycle. Start at 10%. This prevents the loop from proposing a 50% bid increase on a keyword that had one unusually good day.
Set the draft frequency cap
Enter the maximum number of drafts the loop can produce per campaign per day. Start at 3. This prevents a high-variance campaign from flooding the approval queue.
Enable the loop
Click Enable loop on the account. The loop starts its first analysis pass within the hour. Drafts appear in the approval queue as they are generated.
What to expect in the first 24 hours
Within the first cycle the loop will typically produce 2-5 drafts depending on account size and how much budget is currently being wasted. Common first-cycle drafts: negative keyword additions for the top 3-5 zero-conversion queries, a budget reallocation from an underperforming campaign to the top converter, and a bid increase on the keyword cluster with the lowest CPA.
Review each draft in the approval queue. The reasoning is shown inline — the specific metric that triggered the draft, the comparison period, and the projected impact. Reject drafts where the reasoning does not match your knowledge of the account (seasonality the loop does not know about, a brand campaign that runs at a loss intentionally).
Approve 1-2 drafts in the first session to verify the write path end to end. Open Google Ads after approval and confirm the change is reflected. Open the SpendSignoff audit log and verify the entry.
Reject with a reason to calibrate the loop
Next
Keyword research with ChatGPT
Use ChatGPT to expand keyword themes, then push structured lists to Google Ads through SpendSignoff.