google_ads_budget_reallocation
Propose budget reallocation by reducing up to 20% from inefficient campaigns and distributing equally to efficient campaigns. Returns campaign-level proposed budget changes and total freed amount. Read-only — does not apply changes.
Instructions
Propose a budget reallocation plan by cutting up to 20% from INEFFICIENT campaigns and distributing the freed amount equally across EFFICIENT campaigns. Returns the full google_ads_budget_efficiency payload plus {reallocation_plan:[{campaign_id, campaign_name, action ('DECREASE'|'INCREASE'), current_daily_budget, proposed_daily_budget, change_amount, reason}], total_freed, summary}. When the account has no campaigns with spend in the window, the response short-circuits to just {...efficiency payload, reallocation_plan:[], summary:'No campaigns with spend in period'} and the total_freed key is omitted — parse defensively. Reductions below 100 (currency units) are skipped. Current daily budgets are fetched via get_budget — failures fall back to 0. Read-only — emits a plan only, does not apply any budget changes. To actually apply a change use google_ads_budget_update; for the efficiency scoring alone use google_ads_budget_efficiency.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | No | Google Ads customer ID as a 10-digit string without dashes (e.g. '1234567890'). Optional — falls back to GOOGLE_ADS_CUSTOMER_ID / GOOGLE_ADS_LOGIN_CUSTOMER_ID from the configured credentials when omitted. | |
| period | No | Reporting window for the metrics. Default 'LAST_30_DAYS'. Use a shorter window (LAST_7_DAYS / LAST_14_DAYS) when diagnosing recent changes; use LAST_90_DAYS for trend baselines. |