ads_update
Change Google Ads bids, budgets, or statuses. Safely dry-run changes, check guards, and confirm updates to prevent overspending.
Instructions
Change one Google Ads keyword bid, campaign daily budget, campaign status, ad status or keyword status. Pausing one keyword is its own kind because dropping a bid is not the same thing: the keyword stays eligible and goes on competing for the same budget. Spends money, so it is a dry run unless dryRun is false, it refuses a change that trips a guard unless confirm is true, and it re-reads the value after writing because an accepted request is not a stored value. Guards: more than three times the current amount, more than $25, or pausing something that is serving
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | What to change: a keyword's max CPC bid, a campaign's daily budget, a campaign's status, an ad's status, or a keyword's status. Use keywordStatus to stop one keyword serving; dropping its bid is not the same thing, because the keyword stays eligible and keeps competing for the same budget | |
| value | Yes | The new amount in dollars for a bid or budget, or pause or enable for a status | |
| dryRun | No | Report what would change and which guards it trips, without changing anything. On by default: this tool spends money, so performing a change has to be asked for | |
| target | Yes | The keyword text, the campaign name, or the numeric ad id. It must match exactly one thing or the call is refused | |
| confirm | No | Perform a change that trips a guard. Ignored on a dry run. The dry run lists the guard reasons, so this confirms something already read rather than something unseen |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| noOp | Yes | ||
| after | Yes | ||
| before | Yes | ||
| guards | Yes | ||
| target | Yes | ||
| applied | Yes | ||
| matches | Yes | Whether the re-read value equals what was sent | |
| readBack | Yes | The value re-read from the account after the write. An accepted request is not proof of a stored value | |
| customerId | Yes |