Google Ads
Campaigns, ad groups, ads, keywords, assets, audiences, experiments and conversions. 80 tools: 12 read, 68 write.
| Tool | Access | What it does |
|---|---|---|
nc_ |
write | Pause or enable a Google Ads campaign. |
nc_ |
write | Pause or enable a Google Ads ad group. |
nc_ |
write | Pause or enable an individual Google Ads ad (creative). |
nc_ |
write | Set a new daily budget on a Google Ads campaign. |
nc_ |
write | Replace the headlines and descriptions of a Google Ads ResponsiveSearchAd. |
nc_ |
write | Add a campaign-level negative keyword on Google Ads. |
nc_ |
write | Create a CRM_ |
nc_ |
write | Add contacts (hashed email + phone) to a Customer Match user list. customer_id is the Google Ads CID; user_ |
nc_ |
write | Upload a single offline click conversion to Google Ads. customer_id is the Google Ads CID (digits, no hyphens) — conversions operate at customer-id level. |
nc_ |
write | Set the bidding strategy on a Google Ads campaign. |
nc_ |
write | Add geo target and/or language criteria to a Google Ads campaign. |
nc_ |
write | Set ad schedule criteria on a Google Ads campaign. |
nc_ |
write | Rename a Google Ads campaign. |
nc_ |
read | Search Google Ads geo target constants by name (e.g. “Tel Aviv”, “Israel”). |
nc_ |
write | Create a Google Ads ad group under an existing campaign. |
nc_ |
write | Set the status of a Google Ads ad group to ENABLED, PAUSED, or REMOVED. |
nc_ |
write | Update the CPC bid or Target CPA bid on a Google Ads ad group. |
nc_ |
write | Rename a Google Ads ad group. |
nc_ |
write | Add a positive keyword to a Google Ads ad group. |
nc_ |
write | Set the status of a Google Ads keyword criterion to ENABLED, PAUSED, or REMOVED. |
nc_ |
write | Change the max-CPC bid on an existing Google Ads keyword criterion. |
nc_ |
write | Bulk-add negative keywords at the ad-group level. |
nc_ |
write | Edit a Responsive Search Ad: update headlines (3-15, max 30 chars), descriptions (2-4, max 90 chars), and/or final_urls. |
nc_ |
write | Set the status of a Google Ads ad (adGroupAd) to ENABLED, PAUSED, or REMOVED. |
nc_ |
read | List Google Ads user lists (audience segments) in the account. |
nc_ |
write | Add audience targeting criteria (user list segments) to a campaign or ad group. scope is “campaign” or “ad_group”. segment_ |
nc_ |
write | Add negative audience exclusion criteria to a campaign or ad group. |
nc_ |
write | Create a Google Search campaign in PAUSED state. |
nc_ |
write | Create an ad group under an existing campaign. |
nc_ |
write | Create a Responsive Search Ad under an existing ad group. |
nc_ |
write | Create a Google Ads SharedSet of negative keywords (NEGATIVE_ |
nc_ |
write | Attach an existing SharedSet (negative keyword list) to one or more campaigns. |
nc_ |
write | Rename an existing Google Ads campaign (update on name field, updateMask=name). |
nc_ |
write | Rename an existing Google Ads ad group (update on name field, updateMask=name). |
nc_ |
read | Generate keyword ideas via Google Ads Keyword Planner. |
nc_ |
read | Execute a Google Ads Query Language (GAQL) SELECT statement against the given customer. |
nc_ |
read | List Google Ads search keywords — active and/or paused — with match type, status, and Quality Score components: quality_score (1-10), landing_ |
nc_ |
read | List Google ads with their full creative copy: responsive search ad headlines and descriptions (with pinning), display paths, and final URLs, plus ad type and status. |
nc_ |
write | Create or update a reusable (portfolio / account-level) Google Ads bidding strategy with optional bid limits. |
nc_ |
write | Attach a portfolio bidding strategy to one or more campaigns. |
nc_ |
write | Create an Asset Group under a Performance Max (PMax) campaign. |
nc_ |
write | Replace the listing-group tree for a Shopping ad group. |
nc_ |
write | Add or remove audience segments on a PMax or Demand Gen asset group. segment_ids are Google Ads audience resource names, e.g. “userInterests/ |
nc_ |
write | Create a Responsive Display Ad (RDA) under an ad group. |
nc_ |
write | Create a Demand Gen single-image ad under an ad group. |
nc_ |
write | Create a Demand Gen video ad under an ad group using YouTube video IDs. |
nc_ |
write | Create a Demand Gen carousel ad with 2-10 cards. |
nc_ |
write | Create a Google Ads SharedSet of type NEGATIVE_ |
nc_ |
write | Create a Google Ads SharedSet of type NEGATIVE_ |
nc_ |
write | Add placement URLs to an existing NEGATIVE_ |
nc_ |
write | Add keywords to an existing NEGATIVE_ |
nc_ |
write | Attach a SharedSet (negative-keyword or placement-exclusion) to one or more campaigns by creating CampaignSharedSet links. |
nc_ |
write | Add or remove IP address exclusions (IP_BLOCK campaign criteria) on a campaign. action=add: provide IP/CIDR strings. action=remove: provide the full campaign criterion resource names. |
nc_ |
write | Create sitelink assets and optionally attach them to campaigns or ad groups. |
nc_ |
write | Create callout assets (1-20 items, each max 25 chars) and optionally attach them to campaigns or ad groups. |
nc_ |
write | Create structured snippet assets and optionally attach them. header: Google predefined header (e.g. “Brands”, “Services”, “Models”). values: 3-10 items. |
nc_ |
write | Create a promotion (discount/coupon) asset and optionally attach to campaigns. |
nc_ |
write | Upload an image and create an IMAGE asset in Google Ads. |
nc_ |
write | Create one or more HEADLINE text assets (1-20 items, each max 30 chars). |
nc_ |
write | Create one or more DESCRIPTION text assets (1-20 items, each max 90 chars). |
nc_ |
write | Update the status (ENABLED/ |
nc_ |
write | Create an account-level label in Google Ads. |
nc_ |
write | Attach or detach a label from campaigns, ad groups, ads, keywords, or a customer. action: attach | detach. scope: campaign | ad_group | ad | keyword | customer. resource_ids: bare numeric ids or full resource names. |
nc_ |
write | Generic Google Ads mutate escape-hatch. |
nc_ |
write | Retract, restate, or enhance conversions already reported to Google Ads. |
nc_ |
write | Define a new conversion action (what counts as a conversion). category must be a Google ConversionActionCategory: DEFAULT, PURCHASE, PAGE_VIEW, SIGNUP, SUBMIT_ |
nc_ |
write | Update an existing conversion action (rename, pause/enable, change default value/currency). |
nc_ |
write | Apply one or more Google Ads recommendations (found via GAQL `SELECT .. |
nc_ |
read | Dismiss one or more Google Ads recommendations so they stop surfacing. |
nc_ |
write | Create a lead-form asset and optionally attach it to campaigns. |
nc_ |
write | Create a call (phone) asset and optionally attach it to campaigns. |
nc_ |
write | Create a price asset (3-8 offerings) and optionally attach it to campaigns. |
nc_ |
write | Create a campaign draft — a sandbox copy of an existing campaign where you can stage changes before testing them in an experiment. |
nc_ |
write | Create a Google Ads experiment (A/B test). |
nc_ |
read | Schedule (start) a Google Ads experiment that is set up. |
nc_ |
read | Promote a Google Ads experiment — applies the treatment changes back onto the original (base) campaign. |
nc_ |
read | End (stop) a running Google Ads experiment. |
nc_ |
read | Graduate a Google Ads experiment — converts the experiment (trial) campaign into a standalone permanent campaign. |
nc_ |
write | MONEY-SENSITIVE. |
nc_ |
read | MONEY-SENSITIVE. |
nc_set_campaign_status
Section titled “nc_set_campaign_status”write Needs mcp:write on an OAuth or MCP-server token.
Pause or enable a Google Ads campaign. Pass campaign_id from nc_list_campaigns. Use dry_run: true to preview the change without applying it. Requires marketing.edit permission.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | Google Ads connection id (uuid). Find via the connections list. |
campaign_id |
string | yes | Google Ads platform_campaign_id (numeric, as string). Get from nc_list_campaigns. |
status |
string | yes | New campaign status. · One of: ENABLED, PAUSED |
dry_run |
boolean | Preview only — does not call Google. Writes a dry_run row to marketing_mutations. |
nc_set_ad_group_status
Section titled “nc_set_ad_group_status”write Needs mcp:write on an OAuth or MCP-server token.
Pause or enable a Google Ads ad group. Pauses every ad inside it implicitly via Google. Use dry_run: true to preview. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
ad_group_id |
string | yes | Google Ads platform_ad_group_id. |
status |
string | yes | One of: ENABLED, PAUSED |
dry_run |
boolean |
nc_set_ad_status
Section titled “nc_set_ad_status”write Needs mcp:write on an OAuth or MCP-server token.
Pause or enable an individual Google Ads ad (creative). Get ad_id from nc_list_ads. Use dry_run: true to preview. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
ad_id |
string | yes | Google Ads platform_ad_id. |
status |
string | yes | One of: ENABLED, PAUSED |
dry_run |
boolean |
nc_update_campaign_budget
Section titled “nc_update_campaign_budget”write Needs mcp:write on an OAuth or MCP-server token.
Set a new daily budget on a Google Ads campaign. The amount is in the caller currency (e.g. ILS) — the edge converts to micros for Google. Use dry_run: true to preview. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
campaign_id |
string | yes | |
daily_budget_amount |
number | yes | New daily budget in the campaign currency. e.g. 50 = ₪50 / day for ILS accounts. · Min 0.01 |
dry_run |
boolean |
nc_update_ad_copy
Section titled “nc_update_ad_copy”write Needs mcp:write on an OAuth or MCP-server token.
Replace the headlines and descriptions of a Google Ads ResponsiveSearchAd. Google constraints: 3–15 headlines (≤30 chars each), 2–4 descriptions (≤90 chars each). Use dry_run: true to preview. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
ad_id |
string | yes | |
headlines |
string[] | yes | Min items 3 · Max items 15 |
descriptions |
string[] | yes | Min items 2 · Max items 4 |
dry_run |
boolean |
nc_add_negative_keyword
Section titled “nc_add_negative_keyword”write Needs mcp:write on an OAuth or MCP-server token.
Add a campaign-level negative keyword on Google Ads. Requires marketing.edit. Use dry_run: true to preview.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
campaign_id |
string | yes | Google Ads platform_campaign_id. |
text |
string | yes | Keyword text. |
match_type |
string | One of: BROAD, PHRASE, EXACT · Default: "BROAD" |
|
dry_run |
boolean |
nc_create_customer_list
Section titled “nc_create_customer_list”write Needs mcp:write on an OAuth or MCP-server token.
Create a CRM_BASED_USER_LIST (Customer Match audience) on Google Ads. Note: customer_id is the Google Ads CID (digits, no hyphens), not an internal id — Customer Match operates at customer-id level, not campaign level. Use dry_run: true to preview. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | Google Ads CID (digits, no hyphens). |
list_name |
string | yes | |
description |
string | ||
membership_lifespan_days |
integer | 1..540, or 10000 for unlimited. · Min 1 · Max 10000 | |
dry_run |
boolean |
nc_add_contacts_to_customer_list
Section titled “nc_add_contacts_to_customer_list”write Needs mcp:write on an OAuth or MCP-server token.
Add contacts (hashed email + phone) to a Customer Match user list. customer_id is the Google Ads CID; user_list_resource_name comes from nc_create_customer_list. Uses Google’s OfflineUserDataJob lifecycle. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | Google Ads CID (digits, no hyphens). |
user_list_resource_name |
string | yes | Full resource name: customers/{cid}/userLists/{id} |
contacts |
object[] | yes | Min items 1 |
contacts[].email |
string | ||
contacts[].phone |
string | ||
dry_run |
boolean |
nc_send_offline_conversion
Section titled “nc_send_offline_conversion”write Needs mcp:write on an OAuth or MCP-server token.
Upload a single offline click conversion to Google Ads. customer_id is the Google Ads CID (digits, no hyphens) — conversions operate at customer-id level. Provide gclid OR enhanced_email/enhanced_phone (for enhanced conversions). Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | Google Ads CID (digits, no hyphens). |
conversion_action_id |
string | yes | |
gclid |
string | ||
conversion_date_time |
string | yes | YYYY-MM-DD HH:MM:SS+HH:MM |
conversion_value |
number | ||
currency_code |
string | ||
enhanced_email |
string | ||
enhanced_phone |
string | ||
dry_run |
boolean |
nc_google_ads_update_campaign_bidding_strategy
Section titled “nc_google_ads_update_campaign_bidding_strategy”write Needs mcp:write on an OAuth or MCP-server token.
Set the bidding strategy on a Google Ads campaign. Supports TARGET_CPA (requires target_cpa_micros), TARGET_ROAS (requires target_roas), MAXIMIZE_CONVERSIONS, MAXIMIZE_CLICKS, MANUAL_CPC. Use dry_run: true to preview. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | Google Ads connection id (uuid). |
customer_id |
string | yes | Google Ads CID (digits, no hyphens). |
campaign_id |
string | yes | Bare numeric campaign id or full resource name. |
bidding_strategy_type |
string | yes | One of: TARGET_CPA, TARGET_ROAS, MAXIMIZE_CONVERSIONS, MAXIMIZE_CLICKS, MANUAL_CPC |
target_cpa_micros |
number | Required when bidding_strategy_type=TARGET_CPA. | |
target_roas |
number | Required when bidding_strategy_type=TARGET_ROAS. e.g. 2.5 = 250%. | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_update_campaign_location_language
Section titled “nc_google_ads_update_campaign_location_language”write Needs mcp:write on an OAuth or MCP-server token.
Add geo target and/or language criteria to a Google Ads campaign. Pass geo_target_ids (e.g. [“2376”] for Israel) and/or language_ids (e.g. [“1037”] for Hebrew). Use nc_google_ads_search_geo_targets to look up IDs. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
campaign_id |
string | yes | |
geo_target_ids |
string[] | geoTargetConstant IDs, e.g. [“2376”] for Israel. | |
language_ids |
string[] | languageConstant IDs, e.g. [“1037”] for Hebrew. | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_update_campaign_ad_schedule
Section titled “nc_google_ads_update_campaign_ad_schedule”write Needs mcp:write on an OAuth or MCP-server token.
Set ad schedule criteria on a Google Ads campaign. Each slot specifies day, start_hour (0-23), end_hour (1-24), and optional bid_modifier (0.1-10). Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
campaign_id |
string | yes | |
schedule |
object[] | yes | Min items 1 |
schedule[].day |
string | yes | One of: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY |
schedule[].start_hour |
integer | yes | Min 0 · Max 23 |
schedule[].end_hour |
integer | yes | Min 1 · Max 24 |
schedule[].bid_modifier |
number | Min 0.1 · Max 10 | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_rename_campaign
Section titled “nc_google_ads_rename_campaign”write Needs mcp:write on an OAuth or MCP-server token.
Rename a Google Ads campaign. Requires marketing.edit. Use dry_run: true to preview.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
campaign_id |
string | yes | Bare numeric campaign id or full resource name. |
new_name |
string | yes | Max length 255 |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_search_geo_targets
Section titled “nc_google_ads_search_geo_targets”read Works with mcp:read.
Search Google Ads geo target constants by name (e.g. “Tel Aviv”, “Israel”). Returns resource_name and id for use in nc_google_ads_update_campaign_location_language. Read-only.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | Google Ads CID (needed for GAQL auth context). |
query |
string | yes | Geo name to search, e.g. “Tel Aviv”. |
limit |
integer | Max results, default 25. · Min 1 · Max 100 | |
login_customer_id |
string |
nc_google_ads_create_ad_group
Section titled “nc_google_ads_create_ad_group”write Needs mcp:write on an OAuth or MCP-server token.
Create a Google Ads ad group under an existing campaign. Always created PAUSED. Use dry_run: true to preview. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
campaign_id |
string | yes | Bare numeric campaign id or full resource name. |
name |
string | yes | Max length 255 |
default_cpc_bid_amount |
number | Default CPC bid in account currency. | |
ad_group_type |
string | One of: SEARCH_STANDARD, DISPLAY_STANDARD |
|
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_update_ad_group_status
Section titled “nc_google_ads_update_ad_group_status”write Needs mcp:write on an OAuth or MCP-server token.
Set the status of a Google Ads ad group to ENABLED, PAUSED, or REMOVED. Accepts bare numeric ad group id or full resource name. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
ad_group_id |
string | yes | Bare numeric ad group id or full resource name. |
status |
string | yes | One of: ENABLED, PAUSED, REMOVED |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_update_ad_group_bid
Section titled “nc_google_ads_update_ad_group_bid”write Needs mcp:write on an OAuth or MCP-server token.
Update the CPC bid or Target CPA bid on a Google Ads ad group. Provide exactly one of cpc_bid_micros or target_cpa_micros. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
ad_group_id |
string | yes | |
cpc_bid_micros |
number | New CPC bid in micros. Mutually exclusive with target_cpa_micros. | |
target_cpa_micros |
number | New Target CPA in micros. Mutually exclusive with cpc_bid_micros. | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_rename_ad_group
Section titled “nc_google_ads_rename_ad_group”write Needs mcp:write on an OAuth or MCP-server token.
Rename a Google Ads ad group. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
ad_group_id |
string | yes | |
new_name |
string | yes | Max length 255 |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_add_keyword_to_ad_group
Section titled “nc_google_ads_add_keyword_to_ad_group”write Needs mcp:write on an OAuth or MCP-server token.
Add a positive keyword to a Google Ads ad group. Specify match_type: BROAD, PHRASE, or EXACT. Optionally set a per-keyword CPC bid in micros. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
ad_group_id |
string | yes | |
text |
string | yes | Keyword text. |
match_type |
string | yes | One of: BROAD, PHRASE, EXACT |
cpc_bid_micros |
number | Per-keyword CPC bid override in micros. | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_update_keyword_status
Section titled “nc_google_ads_update_keyword_status”write Needs mcp:write on an OAuth or MCP-server token.
Set the status of a Google Ads keyword criterion to ENABLED, PAUSED, or REMOVED. Pass the full criterion resource name. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
criterion_resource_name |
string | yes | Full resource name: customers/{cid}/adGroupCriteria/{agId}~{criterionId}. |
status |
string | yes | One of: ENABLED, PAUSED, REMOVED |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_update_keyword_bid
Section titled “nc_google_ads_update_keyword_bid”write Needs mcp:write on an OAuth or MCP-server token.
Change the max-CPC bid on an existing Google Ads keyword criterion. Pass the full criterion resource name and the new bid in micros (1 unit = 1,000,000). Match type can’t be changed on an existing keyword — remove + re-add for that. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
criterion_resource_name |
string | yes | Full resource name: customers/{cid}/adGroupCriteria/{agId}~{criterionId}. |
cpc_bid_micros |
integer | yes | New max-CPC bid in micros (e.g. 1500000 = 1.50). · Min 0 |
login_customer_id |
string | ||
validate_only |
boolean | Google’s native validate_only — sends the real payload to Google in check-only mode (applies nothing). | |
dry_run |
boolean |
nc_google_ads_add_negative_keywords_to_ad_groups
Section titled “nc_google_ads_add_negative_keywords_to_ad_groups”write Needs mcp:write on an OAuth or MCP-server token.
Bulk-add negative keywords at the ad-group level. Each entry specifies ad_group_id, text, and optional match_type. All entries sent in one :mutate call. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
entries |
object[] | yes | Min items 1 |
entries[].ad_group_id |
string | yes | |
entries[].text |
string | yes | |
entries[].match_type |
string | One of: BROAD, PHRASE, EXACT |
|
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_edit_responsive_search_ad
Section titled “nc_google_ads_edit_responsive_search_ad”write Needs mcp:write on an OAuth or MCP-server token.
Edit a Responsive Search Ad: update headlines (3-15, max 30 chars), descriptions (2-4, max 90 chars), and/or final_urls. Pass the full ad resource name. At least one field required. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
ad_resource_name |
string | yes | Full resource name: customers/{cid}/adGroupAds/{agId}~{adId}. |
headlines |
string[] | Min items 3 · Max items 15 | |
descriptions |
string[] | Min items 2 · Max items 4 | |
final_urls |
string[] | Min items 1 | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_update_ad_status
Section titled “nc_google_ads_update_ad_status”write Needs mcp:write on an OAuth or MCP-server token.
Set the status of a Google Ads ad (adGroupAd) to ENABLED, PAUSED, or REMOVED. Pass the full ad resource name. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
ad_resource_name |
string | yes | Full resource name: customers/{cid}/adGroupAds/{agId}~{adId}. |
status |
string | yes | One of: ENABLED, PAUSED, REMOVED |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_list_audience_segments
Section titled “nc_google_ads_list_audience_segments”read Works with mcp:read.
List Google Ads user lists (audience segments) in the account. Filter by type or search by name. Read-only. Requires marketing.edit connection.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
type_filter |
string | Filter by user_list.type, e.g. CUSTOMER_LIST or USER_INTEREST. | |
search_query |
string | Substring match on user list name. | |
limit |
integer | Max results, default 50. · Min 1 · Max 200 | |
login_customer_id |
string |
nc_google_ads_target_audience_segments
Section titled “nc_google_ads_target_audience_segments”write Needs mcp:write on an OAuth or MCP-server token.
Add audience targeting criteria (user list segments) to a campaign or ad group. scope is “campaign” or “ad_group”. segment_resource_names from nc_google_ads_list_audience_segments. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
scope |
string | yes | One of: campaign, ad_group |
resource_id |
string | yes | Campaign or ad group id / resource name. |
segment_resource_names |
string[] | yes | Min items 1 |
bid_modifier |
number | Min 0.1 · Max 10 | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_exclude_audience_segments
Section titled “nc_google_ads_exclude_audience_segments”write Needs mcp:write on an OAuth or MCP-server token.
Add negative audience exclusion criteria to a campaign or ad group. Same shape as nc_google_ads_target_audience_segments but negative:true. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
scope |
string | yes | One of: campaign, ad_group |
resource_id |
string | yes | |
segment_resource_names |
string[] | yes | Min items 1 |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_create_search_campaign
Section titled “nc_google_create_search_campaign”write Needs mcp:write on an OAuth or MCP-server token.
Create a Google Search campaign in PAUSED state. Two quota ops: (1) creates the CampaignBudget, (2) creates the Campaign referencing it. Targeting (geo, language) is NOT applied here — add via separate criteria tools. Bidding strategies: MAXIMIZE_CLICKS (default), MANUAL_CPC, TARGET_CPA. Requires marketing.edit. Use dry_run: true to preview.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | Google Ads CID, digits only. |
name |
string | yes | |
daily_budget_amount |
number | yes | Daily budget in account currency. · Min 0.01 |
bidding_strategy_type |
string | One of: MAXIMIZE_CLICKS, MANUAL_CPC, TARGET_CPA · Default: "MAXIMIZE_CLICKS" |
|
target_cpa_amount |
number | Required if bidding_strategy_type=TARGET_CPA. | |
manual_cpc_enhanced_cpc |
boolean | Required if bidding_strategy_type=MANUAL_CPC. | |
network_search |
boolean | Default: true |
|
network_partners |
boolean | Default: false |
|
start_date |
string | YYYYMMDD | |
end_date |
string | YYYYMMDD | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_create_ad_group
Section titled “nc_google_create_ad_group”write Needs mcp:write on an OAuth or MCP-server token.
Create an ad group under an existing campaign. Forced PAUSED. One quota op. Pass campaign_id as bare numeric platform id (the resource name is built server-side). Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
campaign_id |
string | yes | |
name |
string | yes | |
default_cpc_bid_amount |
number | Default CPC bid in account currency. Required for MANUAL_CPC parent campaigns. | |
ad_group_type |
string | One of: SEARCH_STANDARD, DISPLAY_STANDARD · Default: "SEARCH_STANDARD" |
|
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_create_responsive_search_ad
Section titled “nc_google_create_responsive_search_ad”write Needs mcp:write on an OAuth or MCP-server token.
Create a Responsive Search Ad under an existing ad group. Forced PAUSED. Google constraints enforced: 3-15 headlines (≤30 chars each), 2-4 descriptions (≤90 chars each), final_urls must be https. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
ad_group_id |
string | yes | |
headlines |
string[] | yes | Min items 3 · Max items 15 |
descriptions |
string[] | yes | Min items 2 · Max items 4 |
final_urls |
string[] | yes | Min items 1 |
path1 |
string | Max length 15 | |
path2 |
string | Max length 15 | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_create_negative_keyword_list
Section titled “nc_google_create_negative_keyword_list”write Needs mcp:write on an OAuth or MCP-server token.
Create a Google Ads SharedSet of negative keywords (NEGATIVE_KEYWORDS type) and populate it. Two quota ops: SharedSet create + bulk SharedCriteria create. Apply via nc_google_apply_negative_keyword_list_to_campaigns. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
list_name |
string | yes | |
keywords |
object[] | yes | Min items 1 |
keywords[].text |
string | yes | |
keywords[].match_type |
string | One of: BROAD, PHRASE, EXACT · Default: "BROAD" |
|
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_apply_negative_keyword_list_to_campaigns
Section titled “nc_google_apply_negative_keyword_list_to_campaigns”write Needs mcp:write on an OAuth or MCP-server token.
Attach an existing SharedSet (negative keyword list) to one or more campaigns. Bulk-creates CampaignSharedSet rows in a single :mutate (one quota op). Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
shared_set_resource_name |
string | yes | customers/{cid}/sharedSets/{id} |
campaign_ids |
string[] | yes | Min items 1 |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_rename_campaign
Section titled “nc_google_rename_campaign”write Needs mcp:write on an OAuth or MCP-server token.
Rename an existing Google Ads campaign (update on name field, updateMask=name). One quota op. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
campaign_id |
string | yes | |
new_name |
string | yes | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_rename_ad_group
Section titled “nc_google_rename_ad_group”write Needs mcp:write on an OAuth or MCP-server token.
Rename an existing Google Ads ad group (update on name field, updateMask=name). One quota op. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
ad_group_id |
string | yes | |
new_name |
string | yes | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_keyword_planner
Section titled “nc_google_keyword_planner”read Works with mcp:read.
Generate keyword ideas via Google Ads Keyword Planner. Seed by keywords[], url, or both. Returns ideas with avg monthly searches, competition LOW|MEDIUM|HIGH, competition_index 0-100, and top-of-page bid range in micros. Default targeting: Israel + Hebrew (override via geo_target_constants + language).
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | NexaCloser google_ads connection uuid (from nc_list_marketing_connections). Optional — auto-resolves when you have one active Google Ads connection. | |
customer_id |
string | Google Ads CID, digits only (no hyphens). Optional — auto-resolves when you have one active Google ad account. | |
keywords |
string[] | Seed keywords. At least one of keywords[] or url is required. | |
url |
string | Seed page url (https). At least one of keywords[] or url is required. | |
language |
string | Default ‘languageConstants/1037’ (Hebrew). Use ‘languageConstants/1000’ for English. | |
geo_target_constants |
string[] | Default [‘geoTargetConstants/2376’] (Israel). | |
network |
string | One of: GOOGLE_SEARCH, GOOGLE_SEARCH_AND_PARTNERS · Default: "GOOGLE_SEARCH_AND_PARTNERS" |
|
include_adult_keywords |
boolean | Default: false |
|
page_size |
integer | Default: 100 · Min 1 · Max 1000 |
nc_google_run_gaql_query
Section titled “nc_google_run_gaql_query”read Works with mcp:read.
Execute a Google Ads Query Language (GAQL) SELECT statement against the given customer. Covers anything the dedicated tools do not: keywords, quality score, ad copy, assets, budgets, search terms, etc. Read-only — DML is rejected. Returns the raw response rows.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | NexaCloser google_ads connection uuid (from nc_list_marketing_connections). Optional — auto-resolves when you have one active Google Ads connection. | |
customer_id |
string | Google Ads CID, digits only. Optional — auto-resolves when you have one active Google ad account. | |
query |
string | yes | GAQL SELECT statement, e.g. SELECT campaign.id, campaign.name FROM campaign LIMIT 50 |
page_size |
integer | Default: 1000 · Min 1 · Max 10000 |
|
login_customer_id |
string | Manager-account login customer id (optional). |
nc_google_ads_list_keywords
Section titled “nc_google_ads_list_keywords”read Works with mcp:read.
List Google Ads search keywords — active and/or paused — with match type, status, and Quality Score components: quality_score (1-10), landing_page_experience, expected_ctr, ad_relevance. Filter by campaign_id or ad_group_id. connection_id/customer_id auto-resolve when you have a single active Google Ads connection/account. Read-only.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | Optional — auto-resolves; explicit uuids via nc_list_marketing_connections. | |
customer_id |
string | Google Ads CID, digits only. Optional — auto-resolves. | |
status |
string | ENABLED = active keywords, PAUSED = paused keywords. · One of: ENABLED, PAUSED, ALL · Default: "ALL" |
|
campaign_id |
string | Numeric Google campaign id filter (optional). | |
ad_group_id |
string | Numeric Google ad group id filter (optional). | |
limit |
integer | Default: 200 · Min 1 · Max 1000 |
|
login_customer_id |
string | Manager-account login customer id (optional). |
nc_google_ads_list_ad_copy
Section titled “nc_google_ads_list_ad_copy”read Works with mcp:read.
List Google ads with their full creative copy: responsive search ad headlines and descriptions (with pinning), display paths, and final URLs, plus ad type and status. Filter by campaign_id, ad_group_id, or status. connection_id/customer_id auto-resolve when you have a single active Google Ads connection/account. Read-only.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | Optional — auto-resolves; explicit uuids via nc_list_marketing_connections. | |
customer_id |
string | Google Ads CID, digits only. Optional — auto-resolves. | |
status |
string | One of: ENABLED, PAUSED, ALL · Default: "ALL" |
|
campaign_id |
string | Numeric Google campaign id filter (optional). | |
ad_group_id |
string | Numeric Google ad group id filter (optional). | |
limit |
integer | Default: 100 · Min 1 · Max 500 |
|
login_customer_id |
string | Manager-account login customer id (optional). |
nc_google_ads_manage_portfolio_bidding_strategy
Section titled “nc_google_ads_manage_portfolio_bidding_strategy”write Needs mcp:write on an OAuth or MCP-server token.
Create or update a reusable (portfolio / account-level) Google Ads bidding strategy with optional bid limits. Supported types: TARGET_CPA, TARGET_ROAS, MAXIMIZE_CONVERSIONS, MAXIMIZE_CONVERSION_VALUE, MAXIMIZE_CLICKS, TARGET_IMPRESSION_SHARE, ENHANCED_CPC. Supply resource_name to UPDATE an existing strategy. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | Google Ads CID, digits only. |
name |
string | yes | |
strategy_type |
string | yes | One of: TARGET_CPA, TARGET_ROAS, MAXIMIZE_CONVERSIONS, MAXIMIZE_CONVERSION_VALUE, MAXIMIZE_CLICKS, TARGET_IMPRESSION_SHARE, ENHANCED_CPC |
target_cpa_micros |
number | Target CPA in micros (1 ILS = 1,000,000 micros). Required for TARGET_CPA. | |
target_roas |
number | Target ROAS as a decimal (e.g. 3.5 for 350%). Required for TARGET_ROAS. | |
target_impression_share_location |
string | One of: ANYWHERE_ON_PAGE, TOP_OF_PAGE, ABSOLUTE_TOP_OF_PAGE |
|
target_impression_share_fraction |
number | 0.0-1.0 fraction. · Min 0 · Max 1 | |
bid_ceiling_micros |
number | Max CPC bid ceiling in micros. | |
bid_floor_micros |
number | Min CPC bid floor in micros (TARGET_CPA only). | |
resource_name |
string | Supply to UPDATE: customers/{cid}/biddingStrategies/{id}. | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_assign_portfolio_bidding_strategy
Section titled “nc_google_ads_assign_portfolio_bidding_strategy”write Needs mcp:write on an OAuth or MCP-server token.
Attach a portfolio bidding strategy to one or more campaigns. Campaigns must belong to the same customer. One quota op per campaign. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
bidding_strategy_resource_name |
string | yes | customers/{cid}/biddingStrategies/{id} |
campaign_ids |
string[] | yes | Min items 1 |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_pmax_asset_group
Section titled “nc_google_ads_create_pmax_asset_group”write Needs mcp:write on an OAuth or MCP-server token.
Create an Asset Group under a Performance Max (PMax) campaign. Requires 3-5 headlines, 1-5 long_headlines, 2-5 descriptions, business_name, and final_urls. Pass image asset resource names (from nc_google_ads_create_image_asset) for images/logos, or YouTube video IDs for videos. Forced PAUSED by default. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
campaign_id |
string | yes | Must be a PMax campaign. |
name |
string | yes | |
final_urls |
string[] | yes | Min items 1 |
headlines |
string[] | yes | Min items 3 · Max items 5 |
long_headlines |
string[] | yes | Min items 1 · Max items 5 |
descriptions |
string[] | yes | Min items 2 · Max items 5 |
business_name |
string | yes | Max length 25 |
images |
string[] | Asset resource names (marketing_image type). | |
logos |
string[] | Asset resource names (logo type). | |
videos |
string[] | YouTube video IDs or asset resource names. | |
status |
string | One of: ENABLED, PAUSED · Default: "PAUSED" |
|
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_update_product_groups
Section titled “nc_google_ads_update_product_groups”write Needs mcp:write on an OAuth or MCP-server token.
Replace the listing-group tree for a Shopping ad group. Pass the full set of adGroupCriteria mutate operations that define the new tree. Google does an atomic swap. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
ad_group_id |
string | yes | |
listing_group_operations |
object[] | yes | Raw adGroupCriteria mutate operations forming the listing-group tree. · Min items 1 |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_update_audience_signals
Section titled “nc_google_ads_update_audience_signals”write Needs mcp:write on an OAuth or MCP-server token.
Add or remove audience segments on a PMax or Demand Gen asset group. segment_ids are Google Ads audience resource names, e.g. “userInterests/123” or “userLists/456”. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
asset_group_id |
string | yes | |
add_segment_ids |
string[] | Audience segment resource names to add. | |
remove_segment_ids |
string[] | Audience segment resource names to remove. | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_responsive_display_ad
Section titled “nc_google_ads_create_responsive_display_ad”write Needs mcp:write on an OAuth or MCP-server token.
Create a Responsive Display Ad (RDA) under an ad group. Forced PAUSED. Pass asset resource names or https image URLs for marketing_images and square_images. Requires at least 1 marketing_image and 1 square_image. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
ad_group_id |
string | yes | |
marketing_images |
string[] | yes | Asset resource names or https image URLs. · Min items 1 |
square_images |
string[] | yes | Min items 1 |
logo_images |
string[] | ||
headlines |
string[] | yes | Min items 1 · Max items 5 |
descriptions |
string[] | yes | Min items 1 · Max items 5 |
business_name |
string | yes | Max length 25 |
final_urls |
string[] | yes | Min items 1 |
long_headline |
string | Max length 90 | |
call_to_action_text |
string | ||
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_demand_gen_single_image_ad
Section titled “nc_google_ads_create_demand_gen_single_image_ad”write Needs mcp:write on an OAuth or MCP-server token.
Create a Demand Gen single-image ad under an ad group. Forced PAUSED. Pass an asset resource name or https URL for image. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
ad_group_id |
string | yes | |
image |
string | yes | Asset resource name or https URL. |
headlines |
string[] | yes | Min items 1 · Max items 5 |
descriptions |
string[] | yes | Min items 1 · Max items 5 |
business_name |
string | yes | Max length 25 |
final_urls |
string[] | yes | Min items 1 |
logo_image |
string | ||
call_to_action |
string | ||
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_demand_gen_video_ad
Section titled “nc_google_ads_create_demand_gen_video_ad”write Needs mcp:write on an OAuth or MCP-server token.
Create a Demand Gen video ad under an ad group using YouTube video IDs. Forced PAUSED. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
ad_group_id |
string | yes | |
video_ids |
string[] | yes | 11-char YouTube video IDs. · Min items 1 · Max items 5 |
headlines |
string[] | yes | Min items 1 · Max items 5 |
descriptions |
string[] | yes | Min items 1 · Max items 5 |
business_name |
string | yes | Max length 25 |
final_urls |
string[] | yes | Min items 1 |
logo_image |
string | Asset resource name or https URL. | |
call_to_action |
string | ||
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_demand_gen_carousel_ad
Section titled “nc_google_ads_create_demand_gen_carousel_ad”write Needs mcp:write on an OAuth or MCP-server token.
Create a Demand Gen carousel ad with 2-10 cards. Each card: image (asset rn or https URL), headline, final_url. Forced PAUSED. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
ad_group_id |
string | yes | |
cards |
object[] | yes | Min items 2 · Max items 10 |
cards[].image |
string | yes | Asset resource name or https URL. |
cards[].headline |
string | yes | Max length 30 |
cards[].final_url |
string | yes | |
headline |
string | yes | Top-level carousel headline. · Max length 30 |
description |
string | yes | Max length 90 |
business_name |
string | yes | Max length 25 |
final_url |
string | yes | Top-level default URL. |
logo_image |
string | ||
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_negative_keyword_list
Section titled “nc_google_ads_create_negative_keyword_list”write Needs mcp:write on an OAuth or MCP-server token.
Create a Google Ads SharedSet of type NEGATIVE_KEYWORDS and populate it. Two quota ops (create set + add keywords). Returns shared_set_resource_name. Apply to campaigns via nc_google_ads_apply_exclusion_list_to_campaigns. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
name |
string | yes | |
keywords |
object[] | yes | Min items 1 |
keywords[].text |
string | yes | |
keywords[].match_type |
string | One of: BROAD, PHRASE, EXACT · Default: "BROAD" |
|
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_placement_exclusion_list
Section titled “nc_google_ads_create_placement_exclusion_list”write Needs mcp:write on an OAuth or MCP-server token.
Create a Google Ads SharedSet of type NEGATIVE_PLACEMENTS and populate it with URLs. Two quota ops. Returns shared_set_resource_name. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
name |
string | yes | |
placements |
string[] | yes | URLs e.g. “www.example.com” or YouTube channel URLs. · Min items 1 |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_add_placements_to_exclusion_list
Section titled “nc_google_ads_add_placements_to_exclusion_list”write Needs mcp:write on an OAuth or MCP-server token.
Add placement URLs to an existing NEGATIVE_PLACEMENTS SharedSet. One quota op. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
shared_set_resource_name |
string | yes | customers/{cid}/sharedSets/{id} |
placements |
string[] | yes | Min items 1 |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_add_keywords_to_negative_list
Section titled “nc_google_ads_add_keywords_to_negative_list”write Needs mcp:write on an OAuth or MCP-server token.
Add keywords to an existing NEGATIVE_KEYWORDS SharedSet. One quota op. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
shared_set_resource_name |
string | yes | |
keywords |
object[] | yes | Min items 1 |
keywords[].text |
string | yes | |
keywords[].match_type |
string | One of: BROAD, PHRASE, EXACT · Default: "BROAD" |
|
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_apply_exclusion_list_to_campaigns
Section titled “nc_google_ads_apply_exclusion_list_to_campaigns”write Needs mcp:write on an OAuth or MCP-server token.
Attach a SharedSet (negative-keyword or placement-exclusion) to one or more campaigns by creating CampaignSharedSet links. One quota op. Works for both NEGATIVE_KEYWORDS and NEGATIVE_PLACEMENTS sets. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
shared_set_resource_name |
string | yes | customers/{cid}/sharedSets/{id} |
campaign_ids |
string[] | yes | Min items 1 |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_manage_ip_exclusions
Section titled “nc_google_ads_manage_ip_exclusions”write Needs mcp:write on an OAuth or MCP-server token.
Add or remove IP address exclusions (IP_BLOCK campaign criteria) on a campaign. action=add: provide IP/CIDR strings. action=remove: provide the full campaign criterion resource names. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
campaign_id |
string | yes | |
ip_addresses |
string[] | yes | add: IP/CIDR strings; remove: campaign criterion resource names. · Min items 1 |
action |
string | yes | One of: add, remove |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_sitelink_assets
Section titled “nc_google_ads_create_sitelink_assets”write Needs mcp:write on an OAuth or MCP-server token.
Create sitelink assets and optionally attach them to campaigns or ad groups. Returns asset resource names. link_text max 25 chars, descriptions max 35 chars each. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
sitelinks |
object[] | yes | Min items 1 |
sitelinks[].link_text |
string | yes | Max length 25 |
sitelinks[].description1 |
string | Max length 35 | |
sitelinks[].description2 |
string | Max length 35 | |
sitelinks[].final_urls |
string[] | yes | Min items 1 |
campaign_ids |
string[] | Attach to these campaigns. | |
ad_group_ids |
string[] | Attach to these ad groups. | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_callout_assets
Section titled “nc_google_ads_create_callout_assets”write Needs mcp:write on an OAuth or MCP-server token.
Create callout assets (1-20 items, each max 25 chars) and optionally attach them to campaigns or ad groups. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
texts |
string[] | yes | Min items 1 · Max items 20 |
campaign_ids |
string[] | ||
ad_group_ids |
string[] | ||
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_structured_snippet_assets
Section titled “nc_google_ads_create_structured_snippet_assets”write Needs mcp:write on an OAuth or MCP-server token.
Create structured snippet assets and optionally attach them. header: Google predefined header (e.g. “Brands”, “Services”, “Models”). values: 3-10 items. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
header |
string | yes | Google predefined header e.g. “Brands”, “Services”, “Models”. |
values |
string[] | yes | Min items 3 · Max items 10 |
campaign_ids |
string[] | ||
ad_group_ids |
string[] | ||
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_promotion_assets
Section titled “nc_google_ads_create_promotion_assets”write Needs mcp:write on an OAuth or MCP-server token.
Create a promotion (discount/coupon) asset and optionally attach to campaigns. Provide percent_off (e.g. 15 for 15%) OR money_amount_off_micros. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
discount_modifier |
string | yes | One of: UP_TO, NONE |
percent_off |
number | e.g. 15 for 15% off. | |
money_amount_off_micros |
number | Discount amount in micros (1 ILS = 1,000,000). | |
promotion_code |
string | ||
occasion |
string | PromotionExtensionOccasion enum e.g. CHRISTMAS, BLACK_FRIDAY. | |
language_code |
string | Default: "en" |
|
final_urls |
string[] | yes | Min items 1 |
start_date |
string | YYYY-MM-DD | |
end_date |
string | YYYY-MM-DD | |
campaign_ids |
string[] | ||
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_image_asset
Section titled “nc_google_ads_create_image_asset”write Needs mcp:write on an OAuth or MCP-server token.
Upload an image and create an IMAGE asset in Google Ads. Provide image_url (public https, Google fetches it) OR image_data (base64, no data: prefix). Returns asset resource_name for use in PMax, Demand Gen, and RDA tools. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
name |
string | yes | Human-readable asset name. |
image_url |
string | Public https URL — Google fetches it. | |
image_data |
string | Base64-encoded image bytes, no data: prefix. | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_headline_assets
Section titled “nc_google_ads_create_headline_assets”write Needs mcp:write on an OAuth or MCP-server token.
Create one or more HEADLINE text assets (1-20 items, each max 30 chars). Returns asset resource names. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
texts |
string[] | yes | Min items 1 · Max items 20 |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_description_assets
Section titled “nc_google_ads_create_description_assets”write Needs mcp:write on an OAuth or MCP-server token.
Create one or more DESCRIPTION text assets (1-20 items, each max 90 chars). Returns asset resource names. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
texts |
string[] | yes | Min items 1 · Max items 20 |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_update_asset_status
Section titled “nc_google_ads_update_asset_status”write Needs mcp:write on an OAuth or MCP-server token.
Update the status (ENABLED/PAUSED/REMOVED) of an asset link within a campaign, ad group, or at customer level. scope: campaign | ad_group | customer. field_type: e.g. SITELINK, CALLOUT, STRUCTURED_SNIPPET. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
asset_resource_name |
string | yes | customers/{cid}/assets/{id} |
status |
string | yes | One of: ENABLED, PAUSED, REMOVED |
scope |
string | yes | One of: campaign, ad_group, customer |
field_type |
string | yes | e.g. SITELINK, CALLOUT, STRUCTURED_SNIPPET, PROMOTION. |
parent_resource_name |
string | Required for campaign/ad_group scope. Full resource name of the parent. | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_label
Section titled “nc_google_ads_create_label”write Needs mcp:write on an OAuth or MCP-server token.
Create an account-level label in Google Ads. Returns the label resource_name for use in nc_google_ads_manage_label_assignment. color: hex string e.g. “#FF0000”. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
name |
string | yes | |
description |
string | ||
color |
string | Hex color e.g. “#FF0000”. | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_manage_label_assignment
Section titled “nc_google_ads_manage_label_assignment”write Needs mcp:write on an OAuth or MCP-server token.
Attach or detach a label from campaigns, ad groups, ads, keywords, or a customer. action: attach | detach. scope: campaign | ad_group | ad | keyword | customer. resource_ids: bare numeric ids or full resource names. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
label_resource_name |
string | yes | customers/{cid}/labels/{id} |
action |
string | yes | One of: attach, detach |
scope |
string | yes | One of: campaign, ad_group, ad, keyword, customer |
resource_ids |
string[] | yes | Min items 1 |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_mutate
Section titled “nc_google_ads_mutate”write Needs mcp:write on an OAuth or MCP-server token.
Generic Google Ads mutate escape-hatch. Pass raw mutate operations for any resource type not yet covered by dedicated tools. All ops written to marketing_mutations audit log. Use dry_run: true to preview. CAUTION: operations are passed directly to the Google Ads API v20 with no semantic validation. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
resource |
string | yes | Google Ads API resource name e.g. “campaigns”, “adGroups”, “assets”. |
operations |
object[] | yes | Raw Google Ads API v20 mutate operation objects (create/update/remove). · Min items 1 |
audit_resource_name |
string | Human-readable name for the audit row. | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_upload_conversion_adjustments
Section titled “nc_google_ads_upload_conversion_adjustments”write Needs mcp:write on an OAuth or MCP-server token.
Retract, restate, or enhance conversions already reported to Google Ads. RETRACTION cancels a conversion (e.g. refund); RESTATEMENT changes its value; ENHANCEMENT attaches hashed first-party email/phone. Identify the original conversion by order_id OR gclid+conversion_date_time. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
adjustments |
object[] | yes | Min items 1 |
adjustments[].conversion_action |
string | yes | Conversion action id or full resource name. |
adjustments[].adjustment_type |
string | yes | One of: RETRACTION, RESTATEMENT, ENHANCEMENT |
adjustments[].adjustment_date_time |
string | yes | “YYYY-MM-DD HH:MM:SS+HH:MM” |
adjustments[].order_id |
string | Order id of the original conversion (preferred). | |
adjustments[].gclid |
string | Alternative to order_id; requires conversion_date_time. | |
adjustments[].conversion_date_time |
string | Original conversion time; required with gclid. | |
adjustments[].adjusted_value |
number | RESTATEMENT: new value in major units. | |
adjustments[].currency_code |
string | ||
adjustments[].email |
string | ENHANCEMENT: hashed here before upload. | |
adjustments[].phone |
string | ENHANCEMENT: hashed here before upload. | |
validate_only |
boolean | Google’s native validate_only — checks without applying. | |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_conversion_action
Section titled “nc_google_ads_create_conversion_action”write Needs mcp:write on an OAuth or MCP-server token.
Define a new conversion action (what counts as a conversion). category must be a Google ConversionActionCategory: DEFAULT, PURCHASE, PAGE_VIEW, SIGNUP, SUBMIT_LEAD_FORM, PHONE_CALL_LEAD, BOOK_APPOINTMENT, CONTACT, DOWNLOAD, ADD_TO_CART, BEGIN_CHECKOUT, REQUEST_QUOTE (NOT “LEAD”/“SIGN_UP” — those are rejected). type e.g. WEBPAGE/UPLOAD_CLICKS/UPLOAD_CALLS/AD_CALL. Optionally set a default value + currency and counting type. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
name |
string | yes | |
category |
string | Google ConversionActionCategory: DEFAULT, PURCHASE, PAGE_VIEW, SIGNUP, SUBMIT_LEAD_FORM, PHONE_CALL_LEAD, BOOK_APPOINTMENT, CONTACT, DOWNLOAD, ADD_TO_CART, BEGIN_CHECKOUT, REQUEST_QUOTE. NOT “LEAD”/“SIGN_UP”. | |
type |
string | e.g. WEBPAGE, UPLOAD_CLICKS, UPLOAD_CALLS, AD_CALL. Default UPLOAD_CLICKS. | |
status |
string | One of: ENABLED, PAUSED, HIDDEN |
|
default_value |
number | ||
currency_code |
string | ||
always_use_default_value |
boolean | ||
counting_type |
string | One of: ONE_PER_CLICK, MANY_PER_CLICK |
|
click_through_lookback_window_days |
integer | Min 1 · Max 90 | |
login_customer_id |
string | ||
validate_only |
boolean | Google’s native validate_only — sends the real payload to Google in check-only mode (applies nothing). | |
dry_run |
boolean |
nc_google_ads_update_conversion_action
Section titled “nc_google_ads_update_conversion_action”write Needs mcp:write on an OAuth or MCP-server token.
Update an existing conversion action (rename, pause/enable, change default value/currency). Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
conversion_action_id |
string | yes | Id or full resource name. |
name |
string | ||
status |
string | One of: ENABLED, PAUSED, HIDDEN |
|
default_value |
number | ||
currency_code |
string | ||
always_use_default_value |
boolean | ||
login_customer_id |
string | ||
validate_only |
boolean | Google’s native validate_only — sends the real payload to Google in check-only mode (applies nothing). | |
dry_run |
boolean |
nc_google_ads_apply_recommendation
Section titled “nc_google_ads_apply_recommendation”write Needs mcp:write on an OAuth or MCP-server token.
Apply one or more Google Ads recommendations (found via GAQL SELECT ... FROM recommendation). Applies with Google’s recommended defaults. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
resource_names |
string[] | yes | Recommendation resource names. · Min items 1 |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_dismiss_recommendation
Section titled “nc_google_ads_dismiss_recommendation”read Works with mcp:read.
Dismiss one or more Google Ads recommendations so they stop surfacing. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
resource_names |
string[] | yes | Min items 1 |
login_customer_id |
string | ||
dry_run |
boolean |
nc_google_ads_create_lead_form_asset
Section titled “nc_google_ads_create_lead_form_asset”write Needs mcp:write on an OAuth or MCP-server token.
Create a lead-form asset and optionally attach it to campaigns. Captures leads directly in the ad. fields e.g. FULL_NAME/EMAIL/PHONE_NUMBER/CITY/POSTAL_CODE (defaults to name+email+phone). Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
business_name |
string | yes | |
headline |
string | yes | |
description |
string | yes | |
privacy_policy_url |
string | yes | |
call_to_action_type |
string | e.g. GET_QUOTE, APPLY_NOW, SIGN_UP, CONTACT_US. Default GET_QUOTE. | |
call_to_action_description |
string | yes | |
fields |
string[] | Input field types. | |
post_submit_headline |
string | ||
post_submit_description |
string | ||
campaign_ids |
string[] | ||
login_customer_id |
string | ||
validate_only |
boolean | Google’s native validate_only — sends the real payload to Google in check-only mode (applies nothing). | |
dry_run |
boolean |
nc_google_ads_create_call_asset
Section titled “nc_google_ads_create_call_asset”write Needs mcp:write on an OAuth or MCP-server token.
Create a call (phone) asset and optionally attach it to campaigns. Optionally wire a call conversion action. country_code is ISO alpha-2 (e.g. IL, US). Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
phone_number |
string | yes | |
country_code |
string | yes | ISO-3166-1 alpha-2, e.g. IL, US. |
call_conversion_action |
string | Optional conversion action id or resource name. | |
campaign_ids |
string[] | ||
login_customer_id |
string | ||
validate_only |
boolean | Google’s native validate_only — sends the real payload to Google in check-only mode (applies nothing). | |
dry_run |
boolean |
nc_google_ads_create_price_asset
Section titled “nc_google_ads_create_price_asset”write Needs mcp:write on an OAuth or MCP-server token.
Create a price asset (3-8 offerings) and optionally attach it to campaigns. Each offering: header, description, price_micros, currency_code, unit (e.g. PER_MONTH), final_url. type e.g. SERVICES/BRANDS/PRODUCT_CATEGORIES. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
type |
string | e.g. SERVICES, BRANDS, PRODUCT_CATEGORIES. Default SERVICES. | |
price_qualifier |
string | e.g. FROM, UP_TO, AVERAGE. Default FROM. | |
language_code |
string | e.g. ‘en’, ‘he’. Default ‘en’. | |
offerings |
object[] | yes | Min items 3 · Max items 8 |
offerings[].header |
string | yes | |
offerings[].description |
string | yes | |
offerings[].price_micros |
integer | yes | Price in micros (1 unit = 1,000,000). |
offerings[].currency_code |
string | yes | |
offerings[].unit |
string | e.g. PER_MONTH, PER_HOUR, PER_NIGHT. | |
offerings[].final_url |
string | yes | |
campaign_ids |
string[] | ||
login_customer_id |
string | ||
validate_only |
boolean | Google’s native validate_only — sends the real payload to Google in check-only mode (applies nothing). | |
dry_run |
boolean |
nc_google_ads_create_campaign_draft
Section titled “nc_google_ads_create_campaign_draft”write Needs mcp:write on an OAuth or MCP-server token.
Create a campaign draft — a sandbox copy of an existing campaign where you can stage changes before testing them in an experiment. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
base_campaign_id |
string | yes | Campaign id or resource name to copy. |
name |
string | yes | |
login_customer_id |
string | ||
validate_only |
boolean | Google’s native validate_only — sends the real payload to Google in check-only mode (applies nothing). | |
dry_run |
boolean |
nc_google_ads_create_experiment
Section titled “nc_google_ads_create_experiment”write Needs mcp:write on an OAuth or MCP-server token.
Create a Google Ads experiment (A/B test). Optionally pass base_campaign_id + treatment_traffic_split (1-99) to auto-create the control arm (references the base campaign) and the treatment arm (Google builds the trial campaign). type e.g. SEARCH_CUSTOM/DISPLAY_CUSTOM. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
name |
string | yes | |
type |
string | e.g. SEARCH_CUSTOM, DISPLAY_CUSTOM. Default SEARCH_CUSTOM. | |
suffix |
string | Appended to trial campaign names. Default “[experiment]”. | |
description |
string | ||
base_campaign_id |
string | Control arm references this campaign (required to auto-create arms). | |
treatment_traffic_split |
integer | % of traffic to the treatment arm. · Min 1 · Max 99 | |
login_customer_id |
string | ||
validate_only |
boolean | Google’s native validate_only — sends the real payload to Google in check-only mode (applies nothing). | |
dry_run |
boolean |
nc_google_ads_schedule_experiment
Section titled “nc_google_ads_schedule_experiment”read Works with mcp:read.
Schedule (start) a Google Ads experiment that is set up. It begins running per its arms and traffic split. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
experiment_id |
string | yes | Experiment id or resource name. |
login_customer_id |
string | ||
validate_only |
boolean | Google’s native validate_only — sends the real payload to Google in check-only mode (applies nothing). | |
dry_run |
boolean |
nc_google_ads_promote_experiment
Section titled “nc_google_ads_promote_experiment”read Works with mcp:read.
Promote a Google Ads experiment — applies the treatment changes back onto the original (base) campaign. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
experiment_id |
string | yes | |
login_customer_id |
string | ||
validate_only |
boolean | Google’s native validate_only — sends the real payload to Google in check-only mode (applies nothing). | |
dry_run |
boolean |
nc_google_ads_end_experiment
Section titled “nc_google_ads_end_experiment”read Works with mcp:read.
End (stop) a running Google Ads experiment. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
experiment_id |
string | yes | |
login_customer_id |
string | ||
validate_only |
boolean | Google’s native validate_only — sends the real payload to Google in check-only mode (applies nothing). | |
dry_run |
boolean |
nc_google_ads_graduate_experiment
Section titled “nc_google_ads_graduate_experiment”read Works with mcp:read.
Graduate a Google Ads experiment — converts the experiment (trial) campaign into a standalone permanent campaign. Requires budget_mappings pairing each experiment campaign with a campaign budget. Requires marketing.edit.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
experiment_id |
string | yes | |
budget_mappings |
object[] | yes | Min items 1 |
budget_mappings[].experiment_campaign_id |
string | yes | |
budget_mappings[].campaign_budget_id |
string | yes | |
login_customer_id |
string | ||
validate_only |
boolean | Google’s native validate_only — sends the real payload to Google in check-only mode (applies nothing). | |
dry_run |
boolean |
nc_google_ads_create_billing_setup
Section titled “nc_google_ads_create_billing_setup”write Needs mcp:write on an OAuth or MCP-server token.
MONEY-SENSITIVE. Link a payments account to a Google Ads account (billing setup). Requires marketing.edit AND org-owner AND confirm:true. Pass either payments_account_resource_name, or payments_account_id + payments_profile_id.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
payments_account_resource_name |
string | ||
payments_account_id |
string | ||
payments_profile_id |
string | ||
start_time_type |
string | One of: NOW, FOREVER |
|
confirm |
boolean | yes | Must be true — billing changes cost money. |
login_customer_id |
string | ||
validate_only |
boolean | Google’s native validate_only — sends the real payload to Google in check-only mode (applies nothing). | |
dry_run |
boolean |
nc_google_ads_propose_account_budget
Section titled “nc_google_ads_propose_account_budget”read Works with mcp:read.
MONEY-SENSITIVE. Propose an account budget (name + spending cap) against a billing setup. Omit spending_limit_micros for an uncapped (INFINITE) budget. Requires marketing.edit AND org-owner AND confirm:true.
| Argument | Type | Required | Description |
|---|---|---|---|
connection_id |
string | yes | |
customer_id |
string | yes | |
billing_setup_id |
string | yes | Billing setup id or resource name. |
proposed_name |
string | yes | |
spending_limit_micros |
integer | Hard cap in micros. Omit for INFINITE. | |
start_time_type |
string | One of: NOW, FOREVER |
|
start_date_time |
string | “YYYY-MM-DD HH:MM:SS” — overrides start_time_type. | |
end_time_type |
string | One of: FOREVER |
|
end_date_time |
string | “YYYY-MM-DD HH:MM:SS” — overrides end_time_type. | |
confirm |
boolean | yes | Must be true — billing changes cost money. |
login_customer_id |
string | ||
validate_only |
boolean | Google’s native validate_only — sends the real payload to Google in check-only mode (applies nothing). | |
dry_run |
boolean |
