Connect your AI Agents to Google Ads in minutes

Merge lets you securely connect your agents to Google Ads and thousands of tools instantly

Available tools

list_ad_groups

List ad groups for a customer with optional filtering by campaign and status. Use getadgroup to retrieve a specific ad group.

get_ad_group

Get details of a specific ad group.

create_ad_group

Create a new ad group within a campaign. Required: customerid, campaignid (from listcampaigns), name. Use listcampaigns to find a valid campaign_id.

update_ad_group

Update an ad group. Set status=REMOVED to delete. Use listadgroups to find ad group IDs.

list_ads

List ads for a customer with optional filtering by ad group and status. Use get_ad to retrieve a specific ad.

get_ad

Get details of a specific ad.

create_ad

Create a Responsive Search Ad. Headlines: 3-15 required (max 30 chars each). Descriptions: 2-4 required (max 90 chars each). Final URLs: at least 1. Use listadgroups to find adgroupid. Note: ad content cannot be edited after creation; to change it, create a new ad.

update_ad

Update an ad (status only). Note: ad content (headlines, descriptions, URLs) cannot be edited after creation. Set status=REMOVED to delete. Use list_ads to find ad IDs.

list_campaign_budgets

List campaign budgets for a customer. Budgets are required when creating campaigns. Use this to discover available budgets before calling create_campaign.

create_campaign_budget

Create a new campaign budget. The budget resource name returned here is required when creating campaigns. Use listcampaignbudgets to find existing budgets.

list_campaigns

List campaigns for a customer with optional filtering by status, channel type, and name. Use get_campaign to retrieve a specific campaign.

get_campaign

Get details of a specific campaign.

create_campaign

Create a new campaign. Required parameters: customerid, name, advertisingchanneltype, campaignbudget (from listcampaignbudgets), biddingstrategytype. Use listcampaignbudgets to find a valid campaign_budget resource name.

update_campaign

Update a campaign. Set status=REMOVED to delete. Use listcampaigns or getcampaign to find campaign IDs.

list_accessible_customers

List all Google Ads customer account IDs accessible with the current credentials. Use the customer_id from this result when calling other tools.

get_customer

Get details of a specific Google Ads customer account (ID, name, currency, timezone).

list_keywords

List keywords (ad group criteria) for a customer with optional filtering by ad group and status.

create_keywords

Create one or more keywords in an ad group. Batch operation: create multiple keywords efficiently in a single call. Use listadgroups to find adgroupid.

update_keyword

Update a keyword. Use listkeywords to find criterionid. Set status=REMOVED to delete, or use remove_keyword for permanent removal.

remove_keyword

Permanently remove a keyword from an ad group. Use listkeywords to find criterionid. Alternatively, use update_keyword with status=REMOVED to preserve history.

search_google_ads

Run a custom GAQL (Google Ads Query Language) query to retrieve arbitrary resource data and metrics. Use this for custom reports, performance metrics, or any data not available through structured tools. Example: SELECT campaign.name, metrics.clicks, metrics.impressions FROM campaign WHERE campaign.status = ENABLED

validate_credential

Validate Google Ads OAuth2 credentials and developer token by listing accessible customer accounts.

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's Google Ads  MCP server

FAQs on using Merge's Google Ads  MCP server

What is a Google Ads MCP?

It's an MCP server that lets your agents access data and functionality from Google Ads via tools. Your agents can invoke these tools to pull campaign performance, adjust a bid or budget, pause an underperforming ad group, run a GAQL report, and more.

Google Ads offers an official MCP server, but you can also use one from a third-party platform, like Merge Agent Handler.

How can I use the Google Ads MCP server?

The use cases naturally depend on the agent you've built, but here are a few common ones:

  • Budget pacing: an agent checks daily spend against monthly budget targets across active campaigns and flags any campaign on track to exhaust its budget before the month ends
  • Bid adjustment automation: an agent detects a keyword's cost per conversion drifting above a target threshold and lowers the bid, or raises it when a keyword is under-spending against a strong conversion rate
  • Campaign performance alerts: an agent monitors click-through rate and conversion rate by ad group and posts an alert to Slack when a metric drops below a set floor for two consecutive days
  • Keyword expansion and negative keyword management: an agent reviews the search terms report, adds high-performing queries as new keywords, and adds irrelevant or low-converting queries as negative keywords

What are popular tools for Google Ads's MCP server?

Here are some of the most commonly used tools:

  • search: runs a GAQL query against the Google Ads account and returns matching rows from campaigns, ad groups, keywords, or other resources. Useful for agents that need custom reporting beyond what a fixed endpoint returns
  • list_campaigns: returns campaigns in an account along with status, budget, and bidding strategy. Use this when an agent needs a full inventory of active or paused campaigns before taking further action
  • update_campaign_budget: changes the daily budget on a specified campaign. Call this when an agent needs to reallocate spend in response to pacing or performance data
  • pause_ad_group: sets an ad group's status to paused. Good for workflows that automatically shut off underperforming ad groups without waiting on a human to log in
  • list_keywords: returns keywords for an ad group with match type, bid, and quality score. Helpful when an agent needs to review keyword-level performance before adjusting bids
  • add_negative_keywords: adds one or more negative keywords at the campaign or ad group level. Useful for agents that process a search terms report and need to exclude irrelevant queries from future matching

What makes Merge Agent Handler's Google Ads MCP server better than alternative Google Ads MCP servers?

There are several reasons teams choose Merge Agent Handler's Google Ads MCP server over building or running an alternative:

  • Enterprise-grade security and DLP: Merge Agent Handler includes built-in data loss prevention controls that let you block or redact sensitive fields before they reach an agent. For Google Ads, this means you can prevent ad spend and budget figures, billing details, and audience targeting data from being exposed even when the agent has broad read access
  • Managed authentication and credentials: Merge stores and refreshes Google Ads credentials on your behalf. You never expose raw API keys or OAuth tokens to an agent or manage token rotation manually
  • Real-time observability and audit trail: Every tool call made against Google Ads is logged with timestamp, tool name, input parameters, and response metadata. You can audit exactly what an agent read or wrote without instrumenting anything yourself
  • Tool Packs and controlled access: Tool Packs let you bundle specific Google Ads tools with tools from other connectors into a single MCP endpoint, scoped to a specific use case. An agent gets exactly the tools it needs, nothing more

How can I start using Merge Agent Handler's Google Ads MCP server?

You can take the following steps:

1. Create or log into your Merge Agent Handler account.

2. Install the Merge CLI by running pipx install merge-api, then run merge configure to link the CLI to your Merge account and merge login to authenticate your session.

3. Register the Agent Handler MCP server with Claude Code by running claude mcp add --transport http agent-handler https://ah-api.merge.dev/mcp, then open Claude Code and run /mcp to confirm agent-handler appears with a connected status.

4. Select agent-handler from the MCP list. This opens a browser window where you select which integrations to authenticate. Choose Google Ads and complete the auth flow. Merge stores and manages the credentials going forward.

5. Open a Claude Code session and start querying Google Ads data directly. The first time you use a Google Ads tool, a Magic Link may appear to complete connector authentication.

If you want to connect Merge Agent Handler's Google Ads MCP with internal or customer-facing agentic products, you can follow the steps in our docs.

Can employees use Merge Agent Handler to connect their AI tools to Google Ads?

Yes, Agent Handler for Employees lets your employees connect Claude, ChatGPT, Microsoft Copilot, Cursor, and other MCP-compatible AI tools to Google Ads without bypassing IT governance.

Instead of setting up direct connections with personal credentials that IT can't monitor or revoke, each employee authenticates through Agent Handler and gets individual credentials tied to their identity. A media buyer can ask Claude to check yesterday's campaign spend, pause an underperforming ad group, or pull a keyword performance report, all within IT-defined permissions.

IT also provisions access by role or group via SCIM. A media buyer, for example, gets Google Ads access to adjust bids, Google Analytics access to track conversions, and Slack access to share performance updates; while a marketing analyst gets Google Ads access to pull campaign reports, HubSpot access to sync lead data, and Google Sheets access to build reporting dashboards.

Every tool call an employee's AI makes to Google Ads is also inspected against your DLP rules and logged to a searchable audit trail, giving security teams full visibility into what data was accessed and by whom.

Explore other MCP servers built and managed by Merge

activecampaign
ActiveCampaign
adobe_pdf_services
Adobe PDF Services
ahrefs
Ahrefs
airtable
Airtable
amadeus
Amadeus
amazon_s3
Amazon S3
amplitude
Amplitude
anaplan
Anaplan
apollo
Apollo
arize
Arize
articulate
Articulate Reach 360
asana
Asana
ashby
Ashby
attio
Attio
aviationstack
Aviationstack
axiom
Axiom
bamboohr
BambooHR
basecamp
Basecamp
biorxiv
bioRxiv
bitbucket
Bitbucket
bitly
Bitly
box
Box
calendly
Calendly
canva
Canva

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now