Docs menu
Get started
What is Opus GrowthQuickstartAdd to your AIHow it worksSafety and approvalCreditsPlansFAQAI apps
All AI appsChatGPTClaudeGrokPerplexityClaude CodeCodexGemini CLIOpenClawCursorVS CodeWindsurfOther MCPConnect ad platforms
Google AdsMeta AdsLinkedIn AdsMicrosoft AdvertisingTikTok AdsChatGPT AdsAgencies and MCCConnect data sources
Search ConsoleGoogle AnalyticsYouTubeBusiness ProfileTag ManagerWebsites and SEO
AI ServerWordPressSEO IntelligenceClick fraudTool reference
All toolsGoogle AdsMeta AdsTikTok AdsLinkedIn AdsMicrosoft AdvertisingChatGPT AdsSearch ConsoleGoogle AnalyticsYouTubeBusiness ProfileTag ManagerWordPressAI ServerSEO IntelligenceClick fraudCross-channelAccount and billingLanguage
Add Negative Keyword
Adds negative keywords at CAMPAIGN or AD GROUP level (to stop wasted spend) — ONE keyword or a WHOLE BATCH in a single call.
- Type
- Makes changes
- Credits
- 5
- Platform
- Google Ads
- Approval
- Preview first, applied after you approve
What it does
Adds negative keywords at CAMPAIGN or AD GROUP level (to stop wasted spend) — ONE keyword or a WHOLE BATCH in a single call.
BULK (one call, one confirmation, one credit for any number of keywords): keywords is a list whose items are 'text' (takes match_type, default PHRASE) or 'text|EXACT' / 'text|PHRASE' / 'text|BROAD', exactly like manage_shared_negative_list. A comma- or newline-separated string is accepted too. Up to 5000 per call. The batch goes to Google as a single mutate with partial failure ON, so one bad or duplicate keyword does not take the rest down, every keyword comes back with its own ok/criterion_id/error, and nothing is silently dropped. skip_existing=true (default) first reads the negatives already live on that campaign/ad group and skips exact (text + match type) duplicates, so repeated runs stay idempotent and do not burn the 10,000-negatives-per-campaign limit. Set false to write them anyway.
Give campaign_id to block the term across the whole campaign, or ad_group_id to block it in ONE ad group only — the latter is what cross-negation needs (each ad group serves only its own theme, negating the other groups' core terms inside a single campaign). If both are given, ad_group_id wins. Undo: remove_negative_keyword (bulk: criterion_ids=[...] or keywords=[...]) at campaign level; manage_keywords(action='remove') at ad group level — list_negative_keywords returns the ids. If confirm=false, returns a dry-run preview of the WHOLE batch.
MCP: add_negative_keyword
How to use it
You don't call tools by name. Write what you want in ChatGPT, Claude or another assistant connected to Opus Growth, in your own words; it picks this tool when it fits.
Parameters
| Name | Type | Required | Default | |
|---|---|---|---|---|
| customer_id | string | Required | · | Google Ads customer account ID to query or change. Use the numeric ID returned by list_accounts; omit separators unless this tool explicitly says otherwise. |
| campaign_id | string | Optional | · | Exact campaign identifier to target. Use the ID returned by an Opus Growth list or create operation, not a display name. |
| text | string | Optional | · | Text content, query text, or copy to use exactly as required by this operation. |
| match_type | string | Optional | PHRASE | Keyword match type accepted by the provider, such as broad, phrase, or exact when supported. |
| confirm | boolean | Optional | false | Safety confirmation for a state-changing operation. Leave false to preview or validate; set true only after the user explicitly approves the shown change. |
| ad_group_id | string | Optional | · | Exact ad group identifier to target. Use the ID returned by an Opus Growth list or create operation, not a display name. |
| keywords | array|string | Optional | · | List of keyword or search-term values to use; follow the provider's match-type and formatting rules. |
| skip_existing | boolean | Optional | true | Whether to enable skip existing for this operation. |
Related tools
account_auditAccount Snapshotaccount_snapshotAdd Keywordsadd_keywordsAdd PMax Imagesadd_pmax_imagesApply Recommendationapply_recommendationBudget Pacing Alertsbudget_pacing_alertsCompetitor Adscompetitor_adsConnect Business Profileconnect_business_profileConnect Google Analyticsconnect_ga4