# Google Ads — how to use (mcp.ai)

Connect your Google Ads account and use 22 tools for ads and conversion straight from your AI agent. Connect in one click, no API key needed. Google Ads, is an online advertising platform developed by Google, where advertisers bid to display brief advertisements, service offerings, product listings, and videos to web users.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_googleads?ms=1787293440000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `googleads_add_or_remove_to_customer_list`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/googleads`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/googleads/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/googleads/add/or/remove/to/customer/list` — Adds or removes contacts from a Google Ads customer list (UserList/audience/remarketing list), not a Google Ads customer account. Note: It takes 6 to 12 hours for changes to be reflected in the custom
  - body: { emails: string[], operation?: string, customer_id?: string, resource_name: string }
- `POST https://api.mcp.ai/api/googleads/create/customer/list` — Creates a Google Ads customer list (UserList/audience/remarketing list), not a Google Ads customer account. Note: Requires an authenticated Google Ads connection with customer_id configured. Email-bas
  - body: { name: string, customer_id?: string, description?: string }
- `POST https://api.mcp.ai/api/googleads/get/campaign/by/id` — GetCampaignById Tool returns details of a campaign in Google Ads. Requires an active Google Ads OAuth connection with the correct customer_id configured; missing or mismatched customer_id will cause e
  - body: { id: string, customer_id?: string }
- `POST https://api.mcp.ai/api/googleads/get/campaign/by/name` — Queries Google Ads via SQL to retrieve a campaign by its exact name. Requires an active Google Ads connection with valid customer_id and appropriate OAuth scopes.
  - body: { name: string, customer_id?: string }
- `POST https://api.mcp.ai/api/googleads/get/customer/lists` — GetCustomerLists Tool lists all customer lists (audience/remarketing lists) in Google Ads. These are user segments for targeting, not Google Ads accounts — list IDs are distinct from account IDs. When
  - body: { page_token?: string, customer_id?: string }
- `POST https://api.mcp.ai/api/googleads/list/accessible/customers` — List Google Ads customer resource names directly accessible to the authenticated user. Use this to discover available customer IDs or populate an account picker. For MCC child account names, status, a
  - body: { customer_id?: string }
- `POST https://api.mcp.ai/api/googleads/list/sub/accounts` — List direct child/sub-accounts under a Google Ads manager (MCC) account. Use this before account-scoped read or mutate calls when a user needs to choose which child account to target. The returned cus
  - body: { page_token?: string, customer_id?: string }
- `POST https://api.mcp.ai/api/googleads/mutate/ad/group/ads` — Create, update, or remove ads in Google Ads ad groups, including responsive search ads. Use this after creating campaigns, budgets, ad groups, and keywords so the ad group has creative that can serve.
  - body: { operations: object[], customer_id?: string, validate_only?: boolean, partial_failure?: boolean, response_content_type?: string }
- `POST https://api.mcp.ai/api/googleads/mutate/ad/group/assets` — Create, update, or remove links between assets and ad groups. Use this after creating assets to attach sitelinks, callouts, snippets, images, and other asset types at ad group level.
  - body: { operations: object[], customer_id?: string, validate_only?: boolean, partial_failure?: boolean, response_content_type?: string }
- `POST https://api.mcp.ai/api/googleads/mutate/ad/group/bid/modifiers` — Create, update, or remove ad group bid modifiers, such as device bid adjustments or hotel-specific bid modifier criteria.
  - body: { operations: object[], customer_id?: string, validate_only?: boolean, partial_failure?: boolean, response_content_type?: string }
- `POST https://api.mcp.ai/api/googleads/mutate/ad/group/criteria` — Create, update, or remove criteria attached to a Google Ads ad group in a single batch request. Supports keywords (positive and negative), audience targeting (user lists, custom audiences, combined au
  - body: { operations: object[], customer_id?: string, validate_only?: boolean, partial_failure?: boolean, response_content_type?: string }
- `POST https://api.mcp.ai/api/googleads/mutate/ad/groups` — Create, update, or remove ad groups within Google Ads campaigns. Supports batch operations with multiple ad group changes in a single request. Use when you need to manage ad groups programmatically, s
  - body: { operations: object[], customer_id?: string, validate_only?: boolean, partial_failure?: boolean }
- `POST https://api.mcp.ai/api/googleads/mutate/assets` — Create or update Google Ads assets such as sitelinks, callouts, structured snippets, text assets, lead forms, promotions, calls, price assets, and media assets. Google Ads AssetService does not expose
  - body: { operations: object[], customer_id?: string, validate_only?: boolean, partial_failure?: boolean, response_content_type?: string }
- `POST https://api.mcp.ai/api/googleads/mutate/bidding/strategies` — Create, update, or remove portfolio bidding strategies such as Target CPA, Target ROAS, Target Spend, Maximize Conversions, Maximize Conversion Value, Target Impression Share, and Enhanced CPC.
  - body: { operations: object[], customer_id?: string, validate_only?: boolean, partial_failure?: boolean, response_content_type?: string }
- `POST https://api.mcp.ai/api/googleads/mutate/campaign/assets` — Create, update, or remove links between assets and campaigns. Use this after creating assets to attach sitelinks, callouts, snippets, and other asset types at campaign level.
  - body: { operations: object[], customer_id?: string, validate_only?: boolean, partial_failure?: boolean, response_content_type?: string }
- `POST https://api.mcp.ai/api/googleads/mutate/campaign/budgets` — Create, update, or remove Google Ads campaign budgets. Use this before creating campaigns because campaign creation requires an existing campaign_budget resource name.
  - body: { operations: object[], customer_id?: string, validate_only?: boolean, partial_failure?: boolean, response_content_type?: string }
- `POST https://api.mcp.ai/api/googleads/mutate/campaign/criteria` — Create, update, or remove campaign-level targeting criteria such as locations, languages, campaign-level negative keywords, devices, schedules, audiences, and IP exclusions.
  - body: { operations: object[], customer_id?: string, validate_only?: boolean, partial_failure?: boolean, response_content_type?: string }
- `POST https://api.mcp.ai/api/googleads/mutate/campaign/labels` — Create or remove relationships between campaigns and labels. Use this after creating labels to organize campaigns for filtering and reporting.
  - body: { operations: object[], customer_id?: string, validate_only?: boolean, partial_failure?: boolean }
- `POST https://api.mcp.ai/api/googleads/mutate/campaigns` — Create, update, or remove Google Ads campaigns in batch. Supports multiple operations (create, update, remove) in a single request. Use when managing campaign lifecycle, applying bulk changes, or auto
  - body: { operations: object[], customer_id?: string, validate_only?: boolean, partial_failure?: boolean, response_content_type?: string }
- `POST https://api.mcp.ai/api/googleads/mutate/conversion/actions` — Create, update, or remove Google Ads conversion actions for conversion tracking configuration. This manages Google Ads conversion action resources; installing website/app tags remains outside this act
  - body: { operations: object[], customer_id?: string, validate_only?: boolean, partial_failure?: boolean, response_content_type?: string }
- `POST https://api.mcp.ai/api/googleads/mutate/labels` — Create, update, or remove Google Ads labels. Pair this with campaign label mutations to organize campaigns and support filtering.
  - body: { operations: object[], customer_id?: string, validate_only?: boolean, partial_failure?: boolean, response_content_type?: string }
- `POST https://api.mcp.ai/api/googleads/search/stream/gaql` — Execute a Google Ads Query Language (GAQL) query and stream all results in a single response. This method is more efficient than paginated search for bulk data retrieval of campaigns, ad groups, and p
  - body: { query: string, customer_id?: string, summary_row_setting?: string }

## Example prompts
- "What can I do in Google Ads?"
- "Show me a summary of my Google Ads account"

## More
- Page: https://mcp.ai/googleads
- Agent spec (llms.txt): https://mcp.ai/googleads/llms.txt
- Postman collection: https://mcp.ai/googleads/postman.json
