Manage Google Ads Keywords
adsap_google_manage_keywordsManage Google Ads Search keywords AFTER creation. op 'add': add up to 100 keywords (and/or ad-group negatives via negative: true) to an EXISTING ad group — atomic batch, per-keyword optional cpc_bid. op 'add_negative': add campaign-LEVEL negative keywords (block queries across every ad group in the campaign). op 'replace': change one keyword's text and/or match type ATOMICALLY (Google keyword text/match type are immutable, so this is remove + re-add in one request — the keyword gets a NEW id and its performance history restarts; status and bid carry over). op 'remove': remove one ad-group keyword/negative (keyword_id) or one campaign negative (campaign_negative_id). Ids are composite ":" — ad-group keyword ids come from adsap_google_get_insights level keyword; created ids are returned by the add ops. Always dry_run: true first. For pause/enable use adsap_google_set_entity_status; for per-keyword bid changes alone use adsap_google_update_entity with updates.cpc_bid.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | ||
| dry_run | No | ||
| keywords | No | ops 'add' / 'add_negative': the keywords to create. For add_negative, cpc_bid/negative are not allowed (campaign keywords are negative by definition). | |
| keyword_id | No | ops 'replace' / 'remove': the ad-group keyword as "<ad_group_id>:<criterion_id>". | |
| ad_group_id | No | op 'add' only: the EXISTING ad group to add keywords/negatives to. | |
| campaign_id | No | op 'add_negative' only: the campaign to add campaign-level negatives to. | |
| replace_with | No | op 'replace' only: the replacement keyword. | |
| ad_account_id | Yes | Bare 10-digit Google Ads customer ID (from adsap_google_list_ad_accounts). No dashes, no act_ prefix. | |
| campaign_negative_id | No | op 'remove' only: a campaign-level negative as "<campaign_id>:<criterion_id>" (ids returned by op 'add_negative'). |