Skip to content

Google Ads

Campaigns, ad groups, ads, keywords, assets, audiences, experiments and conversions. 80 tools: 12 read, 68 write.

Tool Access What it does
nc_set_campaign_status write Pause or enable a Google Ads campaign.
nc_set_ad_group_status write Pause or enable a Google Ads ad group.
nc_set_ad_status write Pause or enable an individual Google Ads ad (creative).
nc_update_campaign_budget write Set a new daily budget on a Google Ads campaign.
nc_update_ad_copy write Replace the headlines and descriptions of a Google Ads ResponsiveSearchAd.
nc_add_negative_keyword write Add a campaign-level negative keyword on Google Ads.
nc_create_customer_list write Create a CRM_BASED_USER_LIST (Customer Match audience) on Google Ads.
nc_add_contacts_to_customer_list write 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.
nc_send_offline_conversion 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_google_ads_update_campaign_bidding_strategy write Set the bidding strategy on a Google Ads campaign.
nc_google_ads_update_campaign_location_language write Add geo target and/or language criteria to a Google Ads campaign.
nc_google_ads_update_campaign_ad_schedule write Set ad schedule criteria on a Google Ads campaign.
nc_google_ads_rename_campaign write Rename a Google Ads campaign.
nc_google_ads_search_geo_targets read Search Google Ads geo target constants by name (e.g. “Tel Aviv”, “Israel”).
nc_google_ads_create_ad_group write Create a Google Ads ad group under an existing campaign.
nc_google_ads_update_ad_group_status write Set the status of a Google Ads ad group to ENABLED, PAUSED, or REMOVED.
nc_google_ads_update_ad_group_bid write Update the CPC bid or Target CPA bid on a Google Ads ad group.
nc_google_ads_rename_ad_group write Rename a Google Ads ad group.
nc_google_ads_add_keyword_to_ad_group write Add a positive keyword to a Google Ads ad group.
nc_google_ads_update_keyword_status write Set the status of a Google Ads keyword criterion to ENABLED, PAUSED, or REMOVED.
nc_google_ads_update_keyword_bid write Change the max-CPC bid on an existing Google Ads keyword criterion.
nc_google_ads_add_negative_keywords_to_ad_groups write Bulk-add negative keywords at the ad-group level.
nc_google_ads_edit_responsive_search_ad write Edit a Responsive Search Ad: update headlines (3-15, max 30 chars), descriptions (2-4, max 90 chars), and/or final_urls.
nc_google_ads_update_ad_status write Set the status of a Google Ads ad (adGroupAd) to ENABLED, PAUSED, or REMOVED.
nc_google_ads_list_audience_segments read List Google Ads user lists (audience segments) in the account.
nc_google_ads_target_audience_segments write 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.
nc_google_ads_exclude_audience_segments write Add negative audience exclusion criteria to a campaign or ad group.
nc_google_create_search_campaign write Create a Google Search campaign in PAUSED state.
nc_google_create_ad_group write Create an ad group under an existing campaign.
nc_google_create_responsive_search_ad write Create a Responsive Search Ad under an existing ad group.
nc_google_create_negative_keyword_list write Create a Google Ads SharedSet of negative keywords (NEGATIVE_KEYWORDS type) and populate it.
nc_google_apply_negative_keyword_list_to_campaigns write Attach an existing SharedSet (negative keyword list) to one or more campaigns.
nc_google_rename_campaign write Rename an existing Google Ads campaign (update on name field, updateMask=name).
nc_google_rename_ad_group write Rename an existing Google Ads ad group (update on name field, updateMask=name).
nc_google_keyword_planner read Generate keyword ideas via Google Ads Keyword Planner.
nc_google_run_gaql_query read Execute a Google Ads Query Language (GAQL) SELECT statement against the given customer.
nc_google_ads_list_keywords 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.
nc_google_ads_list_ad_copy 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_google_ads_manage_portfolio_bidding_strategy write Create or update a reusable (portfolio / account-level) Google Ads bidding strategy with optional bid limits.
nc_google_ads_assign_portfolio_bidding_strategy write Attach a portfolio bidding strategy to one or more campaigns.
nc_google_ads_create_pmax_asset_group write Create an Asset Group under a Performance Max (PMax) campaign.
nc_google_ads_update_product_groups write Replace the listing-group tree for a Shopping ad group.
nc_google_ads_update_audience_signals 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/123” or “userLists/456”.
nc_google_ads_create_responsive_display_ad write Create a Responsive Display Ad (RDA) under an ad group.
nc_google_ads_create_demand_gen_single_image_ad write Create a Demand Gen single-image ad under an ad group.
nc_google_ads_create_demand_gen_video_ad write Create a Demand Gen video ad under an ad group using YouTube video IDs.
nc_google_ads_create_demand_gen_carousel_ad write Create a Demand Gen carousel ad with 2-10 cards.
nc_google_ads_create_negative_keyword_list write Create a Google Ads SharedSet of type NEGATIVE_KEYWORDS and populate it.
nc_google_ads_create_placement_exclusion_list write Create a Google Ads SharedSet of type NEGATIVE_PLACEMENTS and populate it with URLs.
nc_google_ads_add_placements_to_exclusion_list write Add placement URLs to an existing NEGATIVE_PLACEMENTS SharedSet.
nc_google_ads_add_keywords_to_negative_list write Add keywords to an existing NEGATIVE_KEYWORDS SharedSet.
nc_google_ads_apply_exclusion_list_to_campaigns write Attach a SharedSet (negative-keyword or placement-exclusion) to one or more campaigns by creating CampaignSharedSet links.
nc_google_ads_manage_ip_exclusions 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_google_ads_create_sitelink_assets write Create sitelink assets and optionally attach them to campaigns or ad groups.
nc_google_ads_create_callout_assets write Create callout assets (1-20 items, each max 25 chars) and optionally attach them to campaigns or ad groups.
nc_google_ads_create_structured_snippet_assets write Create structured snippet assets and optionally attach them. header: Google predefined header (e.g. “Brands”, “Services”, “Models”). values: 3-10 items.
nc_google_ads_create_promotion_assets write Create a promotion (discount/coupon) asset and optionally attach to campaigns.
nc_google_ads_create_image_asset write Upload an image and create an IMAGE asset in Google Ads.
nc_google_ads_create_headline_assets write Create one or more HEADLINE text assets (1-20 items, each max 30 chars).
nc_google_ads_create_description_assets write Create one or more DESCRIPTION text assets (1-20 items, each max 90 chars).
nc_google_ads_update_asset_status write 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.
nc_google_ads_create_label write Create an account-level label in Google Ads.
nc_google_ads_manage_label_assignment 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_google_ads_mutate write Generic Google Ads mutate escape-hatch.
nc_google_ads_upload_conversion_adjustments write Retract, restate, or enhance conversions already reported to Google Ads.
nc_google_ads_create_conversion_action write 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.
nc_google_ads_update_conversion_action write Update an existing conversion action (rename, pause/enable, change default value/currency).
nc_google_ads_apply_recommendation write Apply one or more Google Ads recommendations (found via GAQL `SELECT ..
nc_google_ads_dismiss_recommendation read Dismiss one or more Google Ads recommendations so they stop surfacing.
nc_google_ads_create_lead_form_asset write Create a lead-form asset and optionally attach it to campaigns.
nc_google_ads_create_call_asset write Create a call (phone) asset and optionally attach it to campaigns.
nc_google_ads_create_price_asset write Create a price asset (3-8 offerings) and optionally attach it to campaigns.
nc_google_ads_create_campaign_draft write Create a campaign draft — a sandbox copy of an existing campaign where you can stage changes before testing them in an experiment.
nc_google_ads_create_experiment write Create a Google Ads experiment (A/B test).
nc_google_ads_schedule_experiment read Schedule (start) a Google Ads experiment that is set up.
nc_google_ads_promote_experiment read Promote a Google Ads experiment — applies the treatment changes back onto the original (base) campaign.
nc_google_ads_end_experiment read End (stop) a running Google Ads experiment.
nc_google_ads_graduate_experiment read Graduate a Google Ads experiment — converts the experiment (trial) campaign into a standalone permanent campaign.
nc_google_ads_create_billing_setup write MONEY-SENSITIVE.
nc_google_ads_propose_account_budget read MONEY-SENSITIVE.

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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).

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).

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

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

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

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

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
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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