Google Ads: reads
optimize_google_budget_allocation
Propose daily budgets across the account’s enabled campaigns: a deterministic greedy move from weak to strong campaigns (ROAS, or 1/CPA without conversion value; budget-limited campaigns weighted up),
POST
Propose daily budgets across the account's enabled campaigns: a deterministic greedy move from weak to strong campaigns (ROAS, or 1/CPA without conversion value; budget-limited campaigns weighted up), within max_change_percentage and min_daily_budget, PAUSE for zero-conversion campaigns spending over 2× their CPA target. Read-only: it changes nothing. To apply it, stage update_google_campaign_budget / pause_google_campaign per row and approve decreases and pauses before increases. Shared budgets are reported, never moved.
Read-only. Runs right away and changes nothing in your ad accounts. It still needs a connected platform (check
get_connections_status) and counts as one tool call.optimize_budget_allocation. These older names run this same tool.
How to call it
- MCP: on
https://mcp.adsmcp.si/mcp, run it through thegoogle_ads_readtool with{"action": "execute", "tool_name": "optimize_google_budget_allocation", "arguments": { ... }}, or calloptimize_google_budget_allocationby name.search_toolsfinds it andget_tool_schemareturns its arguments;https://mcp.adsmcp.si/mcp/flatlists every tool by name. - REST:
POST https://mcp.adsmcp.si/api/v1/tools/optimize_google_budget_allocation/executewithAuthorization: Bearer sk_live_...and a JSON body{"platform": "google", "arguments": { ... }}. The arguments are listed below; they are exactly the tool’s input schema.