# Google Ads

Source: https://pilot.braike.com/en/docs/regies/google-ads

The 66 read-only tools Pilot MCP serves for Google Ads, taken from the server.

Pilot MCP serves **66 tools** for Google Ads, all read-only. Their names start with `google_`. The connector's 113 write tools are not served: Pilot MCP is read-only.

Google Ads, read-only: accounts, campaigns and budgets, ad groups and assets, keywords and search terms, audiences and locations, conversions, Shopping, recommendations and experiments, and GAQL queries.

<Callout title="What each entry shows">
The name, description and parameters come from the list the server serves to your assistant (`tools/list`). Descriptions are in English: this is the text your assistant receives. Your assistant never fills in platform credentials: Pilot adds them on each call.
</Callout>

## Tool families [#familles]

| Family | Tools |
| --- | ---: |
| [Audiences and locations](#audiences) | 10 |
| [Campaigns, budgets and bidding](#campagnes) | 12 |
| [Accounts](#comptes) | 7 |
| [Conversions](#conversions) | 3 |
| [Ad groups, ads and assets](#annonces) | 12 |
| [Keywords and search terms](#mots-cles) | 8 |
| [Recommendations, experiments and auctions](#recommandations) | 5 |
| [GAQL queries](#gaql) | 6 |
| [Shopping and Merchant Center](#shopping) | 3 |

## Audiences and locations [#audiences]

### `google_get_audience_insights` [#google_get_audience_insights]

**Google Ads: Get Audience Insights** · read-only · idempotent

Get insights about audience performance and characteristics

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |

### `google_get_geographic_performance` [#google_get_geographic_performance]

**Google Ads: Get Geographic Performance** · read-only · idempotent

Get performance by geographic location

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `date_range` | `string` | no | Date range preset: LAST\_7\_DAYS, LAST\_14\_DAYS, LAST\_30\_DAYS, LAST\_90\_DAYS, THIS\_MONTH, LAST\_MONTH. |
| `start_date` | `string` | no | Start date YYYY-MM-DD, used if date\_range not provided. |
| `end_date` | `string` | no | End date YYYY-MM-DD, used if date\_range not provided. |
| `campaign_id` | `string` | no | Filter by campaign ID. |

### `google_get_location_performance` [#google_get_location_performance]

**Google Ads: Get Location Performance** · read-only · idempotent

Get geographic performance report showing metrics by location

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `campaign_id` | `string` | no | Optional campaign ID to filter by. |
| `date_range` | `string` | no | Date range preset: LAST\_7\_DAYS, LAST\_14\_DAYS, LAST\_30\_DAYS, LAST\_90\_DAYS, THIS\_MONTH, LAST\_MONTH. |
| `start_date` | `string` | no | Start date (YYYY-MM-DD), used if date\_range not provided. |
| `end_date` | `string` | no | End date (YYYY-MM-DD), used if date\_range not provided. |

### `google_get_user_location_view` [#google_get_user_location_view]

**Google Ads: Get User Location View** · read-only · idempotent

Get performance data based on actual user locations (where users were physically located when they saw ads)

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `campaign_id` | `string` | no | Optional campaign ID to filter by. |
| `date_range` | `string` | no | Date range preset: LAST\_7\_DAYS, LAST\_14\_DAYS, LAST\_30\_DAYS, LAST\_90\_DAYS, THIS\_MONTH, LAST\_MONTH. |
| `start_date` | `string` | no | Start date (YYYY-MM-DD), used if date\_range not provided. |
| `end_date` | `string` | no | End date (YYYY-MM-DD), used if date\_range not provided. |

### `google_list_ad_group_audience_criteria` [#google_list_ad_group_audience_criteria]

**Google Ads: List Ad Group Audience Criteria** · read-only · idempotent

List audience targeting criteria for an ad group (remarketing lists, in-market segments, custom audiences, etc.). Use this to see what audiences are currently targeted or excluded.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `ad_group_id` | `string` | yes | Ad group ID. Use list\_ad\_groups to get it. |

### `google_list_audiences` [#google_list_audiences]

**Google Ads: List Audiences** · read-only · idempotent

Lists the audiences of a Google Ads account (audience resources) with id, name, description, status and dimensions, removed ones excluded, ordered by ID, up to limit rows (default 100). User lists have their own tool, list\_user\_lists.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `limit` | `number` | no | Max results. Default: `100`. |

### `google_list_campaign_location_targets` [#google_list_campaign_location_targets]

**Google Ads: List Campaign Location Targets** · read-only · idempotent

List location targeting criteria for a campaign. If campaign\_id is omitted, lists location targets for all campaigns.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `campaign_id` | `string` | no | Campaign ID (optional - omit to list all campaigns). |

### `google_list_remarketing_actions` [#google_list_remarketing_actions]

**Google Ads: List Remarketing Actions** · read-only · idempotent

List all remarketing actions (Google tag snippets) for an account. Returns id, name, tag\_snippets, and resource\_name.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `limit` | `number` | no | Max results (default 50). Default: `50`. |

### `google_list_user_lists` [#google_list_user_lists]

**Google Ads: List User Lists** · read-only · idempotent

List all user lists (audiences) in the account

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `list_type` | `string` | no | Filter by type (CRM\_BASED, REMARKETING, etc.). |

### `google_search_locations` [#google_search_locations]

**Google Ads: Search Locations** · read-only · idempotent

Search for geographic location IDs by name. Use this to find location criterion IDs for targeting.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `location_names` | `string[]` | no | List of location names to search for. |
| `query` | `string` | no | Single location name to search for (alias for location\_names\[0\]). |
| `customer_id` | `string` | no | Google Ads customer ID (optional, not used for geo constant lookup). |
| `locale_code` | `string` | no | Language code (e.g., "en\_US", "fr\_FR"). Default: `"en_US"`. |

## Campaigns, budgets and bidding [#campagnes]

### `google_get_campaign_performance` [#google_get_campaign_performance]

**Google Ads: Get Campaign Performance** · read-only · idempotent

Get campaign performance metrics over a date range

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `date_range` | `string` | no | Date range preset: LAST\_7\_DAYS, LAST\_14\_DAYS, LAST\_30\_DAYS, LAST\_90\_DAYS, THIS\_MONTH, LAST\_MONTH. |
| `start_date` | `string` | no | Start date YYYY-MM-DD (default: 30 days ago), used if date\_range not provided. |
| `end_date` | `string` | no | End date YYYY-MM-DD (default: today), used if date\_range not provided. |
| `campaign_id` | `string` | no | Filter by campaign ID. |

### `google_list_bidding_data_exclusions` [#google_list_bidding_data_exclusions]

**Google Ads: List Bidding Data Exclusions** · read-only · idempotent

List all bidding data exclusions

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |

### `google_list_bidding_strategies` [#google_list_bidding_strategies]

**Google Ads: List Bidding Strategies** · read-only · idempotent

List all portfolio bidding strategies for an account. Portfolio strategies (Target CPA, Target ROAS, Maximize Conversions) can be shared across campaigns. Use this to discover strategy IDs before assigning to a campaign.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `type_filter` | `string` | no | Filter by strategy type (default: ALL). Values: `"ALL"`, `"TARGET_CPA"`, `"TARGET_ROAS"`, `"MAXIMIZE_CONVERSIONS"`, `"MAXIMIZE_CONVERSION_VALUE"`, `"TARGET_IMPRESSION_SHARE"`, `"ENHANCED_CPC"`. Default: `"ALL"`. |
| `limit` | `number` | no | Max results (default 50). Default: `50`. |

### `google_list_budgets` [#google_list_budgets]

**Google Ads: List Budgets** · read-only · idempotent

List all campaign budgets for an account. Use this to discover budget IDs and resource names before calling create\_campaign. The budget resource\_name (e.g. customers/123/campaignBudgets/456) is required by create\_campaign.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `include_shared` | `boolean` | no | Include explicitly shared budgets (default true). Default: `true`. |
| `limit` | `number` | no | Maximum number of budgets to return (default 50). Default: `50`. |

### `google_list_campaign_bid_modifiers` [#google_list_campaign_bid_modifiers]

**Google Ads: List Campaign Bid Modifiers** · read-only · idempotent

List bid modifiers for campaigns (call, interaction types). Use this to audit and manage campaign-level bid adjustments.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `campaign_id` | `string` | no | Filter by campaign ID. Leave empty for all campaigns. |
| `limit` | `number` | no | Max results (default 100). Default: `100`. |

### `google_list_campaign_groups` [#google_list_campaign_groups]

**Google Ads: List Campaign Groups** · read-only · idempotent

List campaign groups for an account.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `limit` | `number` | no | Maximum number of results (default 100). Default: `100`. |

### `google_list_campaign_targeting` [#google_list_campaign_targeting]

**Google Ads: List Campaign Targeting** · read-only · idempotent

List campaign targeting criteria. If campaign\_id is omitted, lists all campaign criteria for the account.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `campaign_id` | `string` | no | Campaign ID (optional - omit to list all campaigns). |
| `limit` | `number` | no | Max results. Default: `100`. |

### `google_list_campaigns` [#google_list_campaigns]

**Google Ads: List Campaigns** · read-only · idempotent

List all campaigns for an advertiser account. Use this to discover campaign IDs and resource names needed for other tools. Returns id, name, status, channel\_type, budget resource\_name and amount, start/end dates.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens, e.g. 7863516311). |
| `status_filter` | `string` | no | Filter by status. Default: ALL (includes enabled and paused). Values: `"ALL"`, `"ENABLED"`, `"PAUSED"`, `"REMOVED"`. Default: `"ALL"`. |
| `limit` | `number` | no | Maximum number of campaigns to return (default 50). Default: `50`. |

### `google_list_labels` [#google_list_labels]

**Google Ads: List Labels** · read-only · idempotent

List all labels for an account. Use this to discover label IDs and names before applying or removing labels. Returns id, name, status, background\_color, and resource\_name.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `limit` | `number` | no | Max results (default 100). Default: `100`. |

### `google_list_seasonality_adjustments` [#google_list_seasonality_adjustments]

**Google Ads: List Seasonality Adjustments** · read-only · idempotent

List all seasonality adjustments

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |

### `google_simulate_bid_change` [#google_simulate_bid_change]

**Google Ads: Simulate Bid Change** · read-only · idempotent

Simulate the effect of bid changes on a campaign or ad group. Returns projected metrics (clicks, impressions, cost) at different bid levels. Uses Google Ads campaign criterion simulations.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `campaign_id` | `string` | yes | Campaign ID to simulate bid changes for. |
| `limit` | `number` | no | Maximum number of simulation points (default 20). Default: `20`. |

### `google_simulate_budget_change` [#google_simulate_budget_change]

**Google Ads: Simulate Budget Change** · read-only · idempotent

Simulate the effect of budget changes on a campaign. Returns projected metrics (clicks, impressions, cost, conversions) at different budget levels. Uses Google Ads campaign budget simulations.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `campaign_id` | `string` | yes | Campaign ID to simulate budget changes for. |
| `limit` | `number` | no | Maximum number of simulation points (default 20). Default: `20`. |

## Accounts [#comptes]

### `google_get_account_budget_summary` [#google_get_account_budget_summary]

**Google Ads: Get Account Budget Summary** · read-only · idempotent

Get account budget information including approved spending limits and amounts. Returns budget details like status, amount, and spending limits.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `limit` | `number` | no | Maximum number of budgets to return (default 10). Default: `10`. |

### `google_get_account_info` [#google_get_account_info]

**Google Ads: Get Account Info** · read-only · idempotent

Returns detailed information about a Google Ads account including account settings and a performance summary for the last 30 days. Combines account metadata (name, currency, timezone, type) with key metrics (spend, impressions, clicks, conversions). Example: get\_account\_info(customer\_id='1234567890')

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | The Google Ads account ID. Example: '1234567890'. |

### `google_get_account_spend_today` [#google_get_account_spend_today]

**Google Ads: Get Account Spend Today** · read-only · idempotent

Get the total spend for the account today. Returns cost in micros (divide by 1,000,000 for currency amount). Also includes impressions and clicks for context.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |

### `google_get_account_summary` [#google_get_account_summary]

**Google Ads: Get Account Summary** · read-only · idempotent

Get account-level summary metrics

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `date_range` | `string` | no | Date range preset: LAST\_7\_DAYS, LAST\_14\_DAYS, LAST\_30\_DAYS, LAST\_90\_DAYS, THIS\_MONTH, LAST\_MONTH. |
| `start_date` | `string` | no | Start date YYYY-MM-DD, used if date\_range not provided. |
| `end_date` | `string` | no | End date YYYY-MM-DD, used if date\_range not provided. |

### `google_get_change_history` [#google_get_change_history]

**Google Ads: Get Change History** · read-only · idempotent

Get recent changes made to the Google Ads account. Returns change events showing what was modified, when, and by whom. Useful for auditing account activity.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `limit` | `number` | no | Maximum number of changes to return (default 50). Default: `50`. |
| `change_date_range` | `string` | no | Date range preset: LAST\_7\_DAYS, LAST\_14\_DAYS, LAST\_30\_DAYS. Default: `"LAST_14_DAYS"`. |
| `resource_type_filter` | `string` | no | Filter by resource type: CAMPAIGN, AD\_GROUP, AD, KEYWORD, etc. |

### `google_get_optimization_score` [#google_get_optimization_score]

**Google Ads: Get Optimization Score** · read-only · idempotent

Get the account optimization score from Google Ads. Returns a score between 0 and 1 indicating how well the account is optimized.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |

### `google_list_accounts` [#google_list_accounts]

**Google Ads: List Accounts** · read-only · idempotent

Lists Google Ads accounts with optimized data fetching. DEFAULT MODE (no parameters): Returns only accessible MCC accounts (manager accounts) with basic info. DETAILED MODE (with manager\_customer\_id): Returns direct sub-accounts of that specific MCC. Use include\_nested=true to recursively fetch nested MCCs and their sub-accounts. Example: list\_accounts() → returns MCCs only \| list\_accounts(manager\_customer\_id='123456') → returns sub-accounts of MCC 123456

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `manager_customer_id` | `string` | no | If provided, returns sub-accounts of this MCC. If omitted, returns accessible MCC accounts only. |
| `timeout_seconds` | `number` | no | Timeout in seconds for API calls. Default: 120. Default: `120`. |
| `include_nested` | `boolean` | no | If true and manager\_customer\_id is provided, recursively includes nested MCCs. Default: `false`. |
| `max_depth` | `number` | no | Maximum recursion depth when include\_nested is true. Default: 1 (direct only). Default: `1`. |
| `account_id` | `string` | no | Google Ads account to use when the workspace has several, as returned by the account listing tool. Default: the first account linked to the workspace. |

## Conversions [#conversions]

### `google_list_conversion_actions` [#google_list_conversion_actions]

**Google Ads: List Conversion Actions** · read-only · idempotent

List all conversion actions for an account. Use this to discover conversion action IDs and resource names before updating or deleting. Returns id, name, type, status, category, and resource\_name.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `status_filter` | `string` | no | Filter by status (default: ALL, excludes REMOVED). Values: `"ALL"`, `"ENABLED"`, `"REMOVED"`, `"HIDDEN"`. Default: `"ALL"`. |
| `limit` | `number` | no | Max results (default 50). Default: `50`. |

### `google_list_conversion_actions_detailed` [#google_list_conversion_actions_detailed]

**Google Ads: List Conversion Actions Detailed** · read-only · idempotent

List conversion actions with full details including tracking status, counting type, lookback windows, value settings, and attribution model. More detailed than list\_conversion\_actions.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `status_filter` | `string` | no | Filter by status (default: ALL, excludes REMOVED). Values: `"ALL"`, `"ENABLED"`, `"REMOVED"`, `"HIDDEN"`. Default: `"ALL"`. |
| `limit` | `number` | no | Max results (default 50). Default: `50`. |

### `google_list_conversion_value_rules` [#google_list_conversion_value_rules]

**Google Ads: List Conversion Value Rules** · read-only · idempotent

List conversion value rules for an account.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `limit` | `number` | no | Maximum number of results (default 100). Default: `100`. |

## Ad groups, ads and assets [#annonces]

### `google_get_ad_performance` [#google_get_ad_performance]

**Google Ads: Get Ad Performance** · read-only · idempotent

Get ad performance metrics

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `date_range` | `string` | no | Date range preset: LAST\_7\_DAYS, LAST\_14\_DAYS, LAST\_30\_DAYS, LAST\_90\_DAYS, THIS\_MONTH, LAST\_MONTH. |
| `start_date` | `string` | no | Start date YYYY-MM-DD, used if date\_range not provided. |
| `end_date` | `string` | no | End date YYYY-MM-DD, used if date\_range not provided. |
| `ad_group_id` | `string` | no | Filter by ad group ID. |

### `google_get_ad_strength` [#google_get_ad_strength]

**Google Ads: Get Ad Strength** · read-only · idempotent

Get ad strength and policy info for responsive search ads. If ad\_id is provided, returns details for that specific ad. Otherwise lists all responsive search ads in the account.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Customer ID. |
| `ad_id` | `string` | no | Ad ID (optional - lists all RSAs if omitted). |

### `google_list_ad_group_bid_modifiers` [#google_list_ad_group_bid_modifiers]

**Google Ads: List Ad Group Bid Modifiers** · read-only · idempotent

List bid modifiers for ad groups (device, demographics, preferred content). Returns the modifier value and criterion type for each ad group.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `campaign_id` | `string` | no | Filter by campaign ID (optional). |
| `ad_group_id` | `string` | no | Filter by ad group ID (optional). |
| `limit` | `number` | no | Max results (default 100). Default: `100`. |

### `google_list_ad_groups` [#google_list_ad_groups]

**Google Ads: List Ad Groups** · read-only · idempotent

List all ad groups for an account or a specific campaign. Use this to discover ad group IDs before creating ads or adding keywords. Returns id, name, status, campaign, and resource\_name.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `campaign_id` | `string` | no | Filter by campaign ID. Leave empty to list all ad groups across all campaigns. |
| `status_filter` | `string` | no | Filter by status. Default: ALL (excludes REMOVED). Values: `"ALL"`, `"ENABLED"`, `"PAUSED"`, `"REMOVED"`. Default: `"ALL"`. |
| `limit` | `number` | no | Maximum number of ad groups to return (default 100). Default: `100`. |

### `google_list_ads` [#google_list_ads]

**Google Ads: List Ads** · read-only · idempotent

List all ads for an account, campaign, or ad group. Use this to discover ad IDs before updating or deleting ads. Returns ad id, type, status, headlines, descriptions, final\_urls and ad\_group.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `campaign_id` | `string` | no | Filter by campaign ID (optional). |
| `ad_group_id` | `string` | no | Filter by ad group ID. Use list\_ad\_groups to get IDs. |
| `status_filter` | `string` | no | Filter by status. Default: ALL (excludes REMOVED). Values: `"ALL"`, `"ENABLED"`, `"PAUSED"`, `"REMOVED"`. Default: `"ALL"`. |
| `limit` | `number` | no | Maximum number of ads to return (default 50). Default: `50`. |

### `google_list_asset_group_assets` [#google_list_asset_group_assets]

**Google Ads: List Asset Group Assets** · read-only · idempotent

Lists assets linked to a Performance Max asset group.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `asset_group_id` | `string` | yes | Asset group ID. |
| `limit` | `number` | no | Maximum number of assets to return (default 50). Default: `50`. |

### `google_list_asset_groups` [#google_list_asset_groups]

**Google Ads: List Asset Groups** · read-only · idempotent

Lists Performance Max asset groups for a given campaign.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `campaign_id` | `string` | yes | Performance Max campaign ID. |
| `limit` | `number` | no | Maximum number of asset groups to return (default 100). Default: `100`. |

### `google_list_assets` [#google_list_assets]

**Google Ads: List Assets** · read-only · idempotent

List assets (images, text, videos, callouts, sitelinks) for an account. Use this to discover asset IDs and resource names before using them in campaigns or ad groups.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `type_filter` | `string` | no | Filter by asset type (default: ALL). Values: `"ALL"`, `"IMAGE"`, `"TEXT"`, `"YOUTUBE_VIDEO"`, `"MEDIA_BUNDLE"`, `"CALL_TO_ACTION"`, `"SITELINK"`, `"CALLOUT"`, `"STRUCTURED_SNIPPET"`. Default: `"ALL"`. |
| `limit` | `number` | no | Max results (default 50). Default: `50`. |

### `google_list_campaign_assets` [#google_list_campaign_assets]

**Google Ads: List Campaign Assets** · read-only · idempotent

List assets linked to a specific campaign. Returns asset type, field type, and status for each campaign-asset association.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `campaign_id` | `string` | no | Filter by campaign ID. Leave empty to list all. |
| `limit` | `number` | no | Max results (default 100). Default: `100`. |

### `google_list_extensions` [#google_list_extensions]

**Google Ads: List Extensions** · read-only · idempotent

List all extensions (assets) in an account

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `extension_type` | `string` | no | Filter by type (SITELINK, CALL, CALLOUT, etc.). |
| `limit` | `number` | no | Max results. Default: `100`. |

### `google_list_feed_items` [#google_list_feed_items]

**Google Ads: List Feed Items** · read-only · idempotent

List all items in a feed

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `feed_id` | `string` | no | Feed ID (optional; lists all feed items if omitted). |

### `google_list_feeds` [#google_list_feeds]

**Google Ads: List Feeds** · read-only · idempotent

List all feeds in the account

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |

## Keywords and search terms [#mots-cles]

### `google_get_keyword_ideas` [#google_get_keyword_ideas]

**Google Ads: Get Keyword Ideas** · read-only · idempotent

Generate keyword ideas using Keyword Planner

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Customer ID. |
| `keyword_texts` | `string[]` | no | Seed keywords (alias: keywords). |
| `keywords` | `string[]` | no | Alias for keyword\_texts. |
| `url` | `string` | no | Website URL for ideas. |
| `language_id` | `string` | no | Language ID (1000=English). Default: `"1000"`. |
| `location_ids` | `string[]` | no | Location IDs (e.g., \["2840"\] for USA). |

### `google_get_keyword_performance` [#google_get_keyword_performance]

**Google Ads: Get Keyword Performance** · read-only · idempotent

Get keyword performance metrics

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `date_range` | `string` | no | Date range preset: LAST\_7\_DAYS, LAST\_14\_DAYS, LAST\_30\_DAYS, LAST\_90\_DAYS, THIS\_MONTH, LAST\_MONTH. |
| `start_date` | `string` | no | Start date YYYY-MM-DD, used if date\_range not provided. |
| `end_date` | `string` | no | End date YYYY-MM-DD, used if date\_range not provided. |
| `ad_group_id` | `string` | no | Filter by ad group ID. |

### `google_get_search_terms_report` [#google_get_search_terms_report]

**Google Ads: Get Search Terms Report** · read-only · idempotent

Get search terms report showing actual search queries

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `date_range` | `string` | no | Date range preset: LAST\_7\_DAYS, LAST\_14\_DAYS, LAST\_30\_DAYS, LAST\_90\_DAYS, THIS\_MONTH, LAST\_MONTH. |
| `start_date` | `string` | no | Start date YYYY-MM-DD, used if date\_range not provided. |
| `end_date` | `string` | no | End date YYYY-MM-DD, used if date\_range not provided. |
| `campaign_id` | `string` | no | Filter by campaign ID. |

### `google_list_customer_negative_criteria` [#google_list_customer_negative_criteria]

**Google Ads: List Customer Negative Criteria** · read-only · idempotent

List account-level negative criteria (excluded sites, keywords, placements, apps). These exclusions apply to all campaigns in the account.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `limit` | `number` | no | Max results (default 100). Default: `100`. |

### `google_list_keyword_plans` [#google_list_keyword_plans]

**Google Ads: List Keyword Plans** · read-only · idempotent

List keyword plans for an account.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `limit` | `number` | no | Maximum number of results (default 50). Default: `50`. |

### `google_list_keywords` [#google_list_keywords]

**Google Ads: List Keywords** · read-only · idempotent

List keywords, optionally filtered by ad group

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Customer ID. |
| `ad_group_id` | `string` | no | Ad group ID to filter by. |
| `limit` | `number` | no | Maximum number of results. Default: `100`. |

### `google_list_shared_criteria` [#google_list_shared_criteria]

**Google Ads: List Shared Criteria** · read-only · idempotent

List negative keywords/placements in a shared set. Use list\_shared\_sets to get the shared\_set\_id first.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `shared_set_id` | `string` | yes | Shared set ID. Use list\_shared\_sets to get it. |
| `limit` | `number` | no | Max results (default 100). Default: `100`. |

### `google_list_shared_sets` [#google_list_shared_sets]

**Google Ads: List Shared Sets** · read-only · idempotent

List all shared sets in the account

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `set_type` | `string` | no | Optional filter by type. |

## Recommendations, experiments and auctions [#recommandations]

### `google_get_auction_insights` [#google_get_auction_insights]

**Google Ads: Get Auction Insights** · read-only · idempotent

Google Ads auction insights: the competitor domains in the auctions of Search and Shopping campaigns, per campaign and day, with impression share, overlap rate, outranking share, position above rate, top and absolute top impression percentages. Only Search and Shopping campaigns have them, and Google returns rows only above its privacy thresholds: an empty result comes with a warning naming the likely causes. date\_range defaults to LAST\_7\_DAYS; campaign\_ids narrows the campaigns.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID (without hyphens). |
| `date_range` | `string` | no | Date range preset: LAST\_7\_DAYS, LAST\_14\_DAYS, LAST\_30\_DAYS, YESTERDAY, THIS\_MONTH, LAST\_MONTH, or 'YYYY-MM-DD,YYYY-MM-DD'. Default: LAST\_7\_DAYS. |
| `campaign_ids` | `string[]` | no | Restrict to these campaign IDs (optional). |

### `google_get_recommendation_impact` [#google_get_recommendation_impact]

**Google Ads: Get Recommendation Impact** · read-only · idempotent

Get detailed impact analysis for a specific recommendation

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `recommendation_resource_name` | `string` | yes | Full resource name of the recommendation. |

### `google_get_recommendations` [#google_get_recommendations]

**Google Ads: Get Recommendations** · read-only · idempotent

Get optimization recommendations from Google Ads (KEYWORD, BUDGET, BID, AD, etc.)

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `recommendation_types` | `string[]` | no | Optional list of types to filter by (KEYWORD, BUDGET, BID, AD). |
| `limit` | `number` | no | Maximum number of results (default: 100, max: 1000). Default: `100`. |

### `google_list_experiment_arms` [#google_list_experiment_arms]

**Google Ads: List Experiment Arms** · read-only · idempotent

List all arms for a specific Google Ads experiment.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Customer ID (without hyphens). |
| `experiment_resource_name` | `string` | yes | Experiment resource name (e.g., customers/123/experiments/456). |
| `limit` | `number` | no | Maximum number of arms to return (default 50). Default: `50`. |

### `google_list_experiments` [#google_list_experiments]

**Google Ads: List Experiments** · read-only · idempotent

List all experiments (A/B tests) for a Google Ads customer account.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Customer ID (without hyphens). |
| `limit` | `number` | no | Maximum number of experiments to return (default 100). Default: `100`. |

## GAQL queries [#gaql]

### `google_autocomplete_gaql` [#google_autocomplete_gaql]

**Google Ads: Autocomplete GAQL** · read-only · idempotent

Provides autocomplete suggestions for valid GAQL fields for a given resource. Returns all fields that can be selected when querying a specific resource. Example: autocomplete\_gaql('campaign') returns all campaign fields, metrics, and segments. Use this to discover what fields are available before building a query.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `resource_name` | `string` | yes | The Google Ads resource name. Examples: 'campaign', 'ad\_group', 'ad\_group\_criterion'. |
| `customer_id` | `string` | no | Optional Google Ads customer ID to use for metadata queries. |

### `google_build_gaql_query` [#google_build_gaql_query]

**Google Ads: Build GAQL Query** · read-only · idempotent

Builds a safe GAQL query from structured components to avoid syntax errors. Helps LLMs construct valid queries without memorizing GAQL syntax. Example: build\_gaql\_query(resource='campaign', fields=\['campaign.id', 'campaign.name'\], filters=\[\{field: 'campaign.status', op: '=', value: 'ENABLED'\}\], limit=10) returns a complete, validated GAQL query string ready to use with run\_query.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `resource` | `string` | yes | The Google Ads resource to query. Examples: 'campaign', 'ad\_group', 'customer'. |
| `fields` | `string[]` | yes | List of fields to select. Examples: \['campaign.id', 'campaign.name', 'campaign.status'\]. |
| `date_range` | `string` | no | Optional date range filter. Examples: 'LAST\_30\_DAYS', 'LAST\_7\_DAYS', '2024-01-01'. |
| `filters` | `object[]` | no | Optional list of filter conditions. Example: \[\{field: 'campaign.status', op: '=', value: 'ENABLED'\}\]. |
| `order_by` | `string` | no | Optional field to order results by. Example: 'campaign.name'. |
| `limit` | `number` | no | Maximum rows to return. Default: 50, Max: 10000. Default: `50`. |
| `account_id` | `string` | no | Google Ads account to use when the workspace has several, as returned by the account listing tool. Default: the first account linked to the workspace. |

### `google_get_resource_metadata` [#google_get_resource_metadata]

**Google Ads: Get Resource Metadata** · read-only · idempotent

Fetches detailed metadata for a Google Ads resource, field, segment, or metric. Useful for understanding what fields exist, which fields can be selected together, and validating GAQL queries. Examples: get\_resource\_metadata('campaign') returns all campaign fields, get\_resource\_metadata('metrics.clicks') returns click metric details. Use this to discover available fields when building queries.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `resource_or_field_name` | `string` | no | The name of the resource or field to query. Examples: 'campaign', 'ad\_group', 'campaign.name', 'metrics.clicks'. |
| `resource_type` | `string` | no | Alias for resource\_or\_field\_name. |
| `customer_id` | `string` | no | Optional Google Ads customer ID to use for metadata queries. |

### `google_lint_gaql` [#google_lint_gaql]

**Google Ads: Lint GAQL** · read-only · idempotent

Performs strict static analysis and validation of a GAQL query before execution. Catches common errors like missing SELECT/FROM, forbidden actions (UPDATE/DELETE), using SELECT \*, missing date filters for metrics, and invalid field names. Example: lint\_gaql(query='SELECT campaign.id FROM campaign') returns validation results. Always use this before run\_query to catch errors early and save API quota.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `query` | `string` | yes | The GAQL query to validate. Example: 'SELECT campaign.id, campaign.name FROM campaign'. |
| `account_id` | `string` | no | Google Ads account to use when the workspace has several, as returned by the account listing tool. Default: the first account linked to the workspace. |

### `google_run_query` [#google_run_query]

**Google Ads: Run Query** · read-only · idempotent

Executes a GAQL (Google Ads Query Language) query on a Google Ads account. Returns campaign, ad group, keyword, or other Google Ads data based on your query. Example: run\_query(customer\_id='1234567890', query='SELECT campaign.id, campaign.name FROM campaign WHERE campaign.status = ENABLED LIMIT 10') Always use GAQL syntax: 'SELECT fields FROM resource WHERE conditions LIMIT number'

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | The Google Ads account ID to query. Example: '1234567890'. |
| `query` | `string` | yes | The GAQL query to execute. Example: 'SELECT campaign.id, campaign.name FROM campaign'. |
| `limit` | `number` | no | Maximum number of rows to return. Default: 50. Default: `50`. |
| `manager_customer_id` | `string` | no | The main manager (MCC) account ID for authentication. Example: '9876543210'. |
| `intermediate_manager_customer_id` | `string` | no | The intermediate manager (MCC2) account ID if applicable. For multi-level MCC hierarchies, used as login\_customer\_id when accessing a client under a sub-MCC. |
| `timeout_seconds` | `number` | no | Query timeout in seconds. Default: 120. Default: `120`. |
| `skip_validation` | `boolean` | no | If true, skips pre-flight validation (not recommended). Default: false. Default: `false`. |

### `google_validate_query_google` [#google_validate_query_google]

**Google Ads: Validate Query Google** · read-only · idempotent

Validates a GAQL query using the Google Ads API without executing it. This performs server-side validation to check if the query is syntactically correct and semantically valid according to Google Ads API rules. Example: validate\_query\_google(customer\_id='1234567890', query='SELECT campaign.id FROM campaign') returns validation status. Use this for final validation before run\_query.

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | The Google Ads account ID to validate against. Example: '1234567890'. |
| `query` | `string` | yes | The GAQL query to validate. Example: 'SELECT campaign.id, campaign.name FROM campaign'. |

## Shopping and Merchant Center [#shopping]

### `google_get_shopping_performance` [#google_get_shopping_performance]

**Google Ads: Get Shopping Performance** · read-only · idempotent

Get Shopping campaign performance report with product-level metrics

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `campaign_id` | `string` | no | Optional campaign ID to filter by. |
| `start_date` | `string` | no | Start date (YYYY-MM-DD). Default: `"2024-01-01"`. |
| `end_date` | `string` | no | End date (YYYY-MM-DD). Default: `"2024-12-31"`. |

### `google_list_merchant_center_links` [#google_list_merchant_center_links]

**Google Ads: List Merchant Center Links** · read-only · idempotent

List all Merchant Center links for an account

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |

### `google_list_product_groups` [#google_list_product_groups]

**Google Ads: List Product Groups** · read-only · idempotent

List all product groups (listing groups) in an account or ad group

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customer_id` | `string` | yes | Google Ads customer ID. |
| `ad_group_id` | `string` | no | Optional ad group ID to filter by. |
