Change a keyword's status or bid, or remove it
update_keywordChange an existing keyword's status (PAUSED/ENABLED, or REMOVED to delete it permanently) and/or its max CPC bid. add_keywords can only add new keywords - this is how to act on one that's already there, e.g. pausing an underperformer found via get_search_terms.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cpcBid | No | New max CPC in account currency. | |
| status | No | REMOVED is permanent. | |
| adGroupId | Yes | Ad group id the keyword belongs to. | |
| keywordId | Yes | Keyword's criterion id, e.g. from add_keywords' resourceNames or a GAQL query on ad_group_criterion. | |
| customerId | No | 10-digit Google Ads customer id. Omit only if this connection has exactly one reachable account - with more than one, omitting it errors and lists the available ids to pick from. | |
| extraFields | No | Escape hatch for a field Google requires that this tool doesn't set yet - use it when a prior call to this same tool failed naming a required field and its valid values (e.g. after adding `contains_eu_political_advertising`, retry with { contains_eu_political_advertising: "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING" }). Keys are the Ads API's own snake_case field names; nest an object to add a field under one this tool already sets (e.g. a new network_settings sub-field). Only ADDS fields not already set by this tool's own arguments - it can never override `status` or any other field already set here, so it cannot be used to bypass validation or a safety default like a campaign's PAUSED-by-default status. | |
| validateOnly | No | Dry run. When true the Google Ads API validates the change and reports any errors but applies nothing. Use this first whenever you are unsure - it is free and cannot affect spend. |