# @channel47/google-ads-mcp 中文文档

规范地址：https://npmcn.com/package/%40channel47/google-ads-mcp/

版本：1\.2\.0
npm 元数据更新时间：2026-03-25T19:43:55.118Z
中文译文更新时间：2026-11-09T12:59:17.142Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40channel47/google-ads-mcp
原文对照：https://npmcn.com/package/%40channel47/google-ads-mcp/?lang=original
项目主页：https://github.com/channel47/mcps/tree/main/google-ads#readme
源码仓库：https://github.com/channel47/mcps

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：101 kB，17 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=18\.0\.0
- 运行依赖：3 个
- 首次发布：2026-01-07T21:55:50.918Z
- 最新版本发布：2026-03-25T19:43:54.962Z
- 近 30 天下载量：2673（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：11（近 12 个月 11 个）

## 中文简介

Google Ads MCP 服务器 - 使用 GAQL 查询并变异 Google Ads 数据

## 安装

```sh
npm install @channel47/google-ads-mcp
```

也可以使用：`pnpm add @channel47/google-ads-mcp`、`yarn add @channel47/google-ads-mcp`、`bun add @channel47/google-ads-mcp`

## README

# @channel47/google-ads-mcp (英语)

[![npm version](https://badge.fury.io/js/@channel47%2Fgoogle-ads-mcp.svg)](https://www.npmjs.com/package/@channel47/google-ads-mcp) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Google Ads API通过GAQL(Google Ads Query Language)访问的MCP服务器. 由日常管理25+广告账户的从业者所建——不是演示.

部分 [频道47](https://channel47.dev/), Claude Code 职业插件的开源生态系统. [拿到通讯](https://channel47.dev/subscribe) 每周从生产用途中分解技能.

## 它会做什么

-   **列表账户** 根据您的管理协委会或个人证书可访问
-   **查询任何东西** 包含原始 GAQL — 活动、广告组、关键词、搜索条件、资产、任何资源
-   **变异实体** 宣传运动、广告团体、广告、关键词、预算、具有干燥安全的资产
-   **资源和促动因素** ——捆绑的GAQL参考文献和操作模板

## 安装

### 对于 Claude 代码插件用户

装满了 [媒体购买器插件](https://github.com/channel47/plugins)。不需要手动安装.

### 独立使用

```bash
npx @channel47/google-ads-mcp@latest
```

或在全球安装:

```bash
npm install -g @channel47/google-ads-mcp
google-ads-mcp
```

## 配置

### 需求

| 变量 | 说明 |
| --- | --- |
| `GOOGLE_ADS_DEVELOPER_TOKEN` | 您的谷歌 Ads API 开发者 Token |
| `GOOGLE_ADS_CLIENT_ID` | OAuth 2. 0 来自谷歌云的客户端ID |
| `GOOGLE_ADS_CLIENT_SECRET` | OAuth 2. 0 客户端机密 |
| `GOOGLE_ADS_REFRESH_TOKEN` | OAuth 2.0 刷新托肯 |

### 可选

| 变量 | 说明 |
| --- | --- |
| `GOOGLE_ADS_LOGIN_CUSTOMER_ID` | 管理协委会 账户 ID (10个数字,无破折号) |
| `GOOGLE_ADS_DEFAULT_CUSTOMER_ID` | 查询的默认账户 ID |
| `GOOGLE_ADS_READ_ONLY` | 设定为 `true` 完全隐藏变异工具——仅查询和列出 |

### MCP 配置示例

```json
{
  "mcpServers": {
    "google-ads": {
      "command": "npx",
      "args": ["-y", "@channel47/google-ads-mcp@latest"],
      "env": {
        "GOOGLE_ADS_DEVELOPER_TOKEN": "your-developer-token",
        "GOOGLE_ADS_CLIENT_ID": "your-client-id",
        "GOOGLE_ADS_CLIENT_SECRET": "your-client-secret",
        "GOOGLE_ADS_REFRESH_TOKEN": "your-refresh-token",
        "GOOGLE_ADS_LOGIN_CUSTOMER_ID": "1234567890",
        "GOOGLE_ADS_READ_ONLY": "true"
      }
    }
  }
}
```

删除 `GOOGLE_ADS_READ_ONLY` 或设置为 `false` 以启用变异工具.

## 工具

### 列表账户

列出所有可访问的Google Ads账户.

**回返情况:** 带有身份、姓名、货币和状态的账户对象组合.

### 查询

执行任何 GAQL SELECT 查询 。 返回干净的JSON结果.

**参数:**

-   `customer_id` (弦,可选): 账户 ID (10个数字,无破折号)
-   `query` (字符串,需要): GAQL SELECT 查询
-   `limit` (整数,可选): 要返回的最大行( 默认: 100, 最大: 100)

**示例**

```javascript
{
  "customer_id": "1234567890",
  "query": "SELECT campaign.name, campaign.status FROM campaign WHERE campaign.status = 'ENABLED'",
  "limit": 50
}
```

### 变异

使用 GoogleAdsService 执行写入操作 。 变相.

**参数:**

-   `customer_id` (弦,可选): 账户编号
-   `operations` (所需阵列):突变行动
-   `partial_failure` (布尔,可选): 启用部分失败模式( 默认: 真)
-   `dry_run` (布尔,可选): 未执行的验证( 默认: 真为安全)

**示例**

```javascript
{
  "customer_id": "1234567890",
  "operations": [
    {
      "campaignOperation": {
        "update": {
          "resourceName": "customers/1234567890/campaigns/123",
          "status": "PAUSED"
        },
        "updateMask": "status"
      }
    }
  ],
  "dry_run": false
}
```

#### 与响应搜索代理合作

RSA有两种不同的资源类型,具有不同的可变性:

| 资源 | 实体 | 使用大小写 |
| --- | --- | --- |
| `customers/{id}/ads/{ad_id}` | `ad` | 更新广告 **内容** (标题、说明、URL) |
| `customers/{id}/adGroupAds/{ad_group_id}~{ad_id}` | `ad_group_ad` | 更改广告 **状态** (暂停、启用、删除) |

**更新RSA头条/说明** (使用时 `entity: 'ad'`:

```javascript
{
  "operations": [{
    "entity": "ad",
    "operation": "update",
    "resource": {
      "resource_name": "customers/1234567890/ads/9876543210",
      "responsive_search_ad": {
        "headlines": [
          {"text": "New Headline 1"},
          {"text": "New Headline 2"},
          {"text": "New Headline 3"}
        ],
        "descriptions": [
          {"text": "New Description 1"},
          {"text": "New Description 2"}
        ]
      },
      "final_urls": ["https://example.com"]
    }
  }],
  "dry_run": false
}
```

**更改 RSA 状态** (使用时 `entity: 'ad_group_ad'`:

```javascript
{
  "operations": [{
    "entity": "ad_group_ad",
    "operation": "update",
    "resource": {
      "resource_name": "customers/1234567890/adGroupAds/111222333~9876543210",
      "status": "PAUSED"
    }
  }],
  "dry_run": false
}
```

#### 创建带有文件路径的图像资产

当创建图像资产时, 您可以提供本地文件路径, 而不是基础64 数据 :

```javascript
{
  "operations": [{
    "entity": "asset",
    "operation": "create",
    "resource": {
      "name": "My Image Asset",
      "image_file_path": "/path/to/image.png"
    }
  }]
}
```

服务器会自动读取文件并转换为所需的基数64格式.

#### 创建运动

自Google Ads API v19.2起(2025年9月)

| 外地 | 需求 | 说明 |
| --- | --- | --- |
| `name` | 对 | 运动名称 |
| `advertising_channel_type` | 对 | 运动类型(SEARCH、DISPLAY等) |
| `campaign_budget` | 对 | 预算资源参考 |
| `bidding strategy` | 对 | 其中一个: `manual_cpc`, (中文(简体) ), `maximize_conversions`, (中文(简体) ), `target_cpa`等 (中文(简体) ). |
| `contains_eu_political_advertising` | 自动 | 自动默认为 `DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING` |

**完整的竞选创建实例 :**

```javascript
{
  "operations": [
    // 1. Create budget first (with temp ID for atomic creation)
    {
      "entity": "campaign_budget",
      "operation": "create",
      "resource": {
        "resource_name": "customers/1234567890/campaignBudgets/-1",
        "name": "My Budget",
        "amount_micros": 10000000,
        "delivery_method": "STANDARD"
      }
    },
    // 2. Create campaign referencing the budget
    {
      "entity": "campaign",
      "operation": "create",
      "resource": {
        "name": "My Search Campaign",
        "advertising_channel_type": "SEARCH",
        "status": "PAUSED",
        "campaign_budget": "customers/1234567890/campaignBudgets/-1",
        "manual_cpc": { "enhanced_cpc_enabled": false },
        "network_settings": {
          "target_google_search": true,
          "target_search_network": true
        }
      }
    }
  ],
  "dry_run": false
}
```

**支持的投标战略:**

-   `manual_cpc` - 手动按成本率点击
-   `maximize_conversions` - 最大限度地转换
-   `maximize_conversion_value` - 最大转换值(带有可选值) `target_roas`(中文(简体) )
-   `target_cpa` - 目标成本/购置
-   `target_spend` - 点击最大化(目标支出)
-   `target_impression_share` - 目标印象份额
-   `bidding_strategy` - 投资组合投标战略参考

## 发展

```bash
git clone https://github.com/channel47/mcps.git
cd mcps
npm install    # workspaces — installs all servers
npm test       # runs all server tests
```

3个核心工具。 干跑默认. OAuth 2.0 具有基于环境的证书.

与 [媒体购买器插件](https://github.com/channel47/plugins),它会在此服务器上添加技能,突变验证钩和GAQL参考道克.

## 链接

-   [频道47](https://channel47.dev/) – Claude 代码的开源专业插件
-   [构建注释](https://channel47.dev/subscribe) ——每周生产使用技能分解
-   [媒体购买器插件](https://github.com/channel47/plugins) ——这种MCP权力的付费搜索工具箱
-   [国家防范机制一揽子计划](https://www.npmjs.com/package/@channel47/google-ads-mcp)
-   [谷歌广告API](https://developers.google.com/google-ads/api/docs/start) 编号 : [GAQL 参考](https://developers.google.com/google-ads/api/docs/query/overview)
-   [页:1](https://x.com/ctrlswing) 编号 : [链接](https://www.linkedin.com/in/jackson-d-9979a7a0/) 编号 : [GitHub 图像](https://github.com/channel47)

## 许可证

麻省理工学院

## 常见问题

### @channel47/google-ads-mcp 是什么？

Google Ads MCP 服务器 - 使用 GAQL 查询并变异 Google Ads 数据

### 如何安装 @channel47/google-ads-mcp？

在项目目录运行 npm install @channel47/google-ads-mcp，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 google-ads-mcp，可以用 npx google-ads-mcp 直接运行。

### @channel47/google-ads-mcp 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/channel47\_\_google-ads-mcp 是否存在。

### @channel47/google-ads-mcp 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @channel47/google-ads-mcp 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @channel47/google-ads-mcp 可以商用吗？

@channel47/google-ads-mcp 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @channel47/google-ads-mcp 的下载量有多少？

根据 npm 官方下载统计，@channel47/google-ads-mcp 在 2026/10/10 – 2026/11/08 这 30 天内被下载 2,673 次，日均约 89 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @channel47/google-ads-mcp 还在维护吗？

最新版本 1\.2\.0 发布于 2026/03/26（7 个月前）；至今共发布 11 个版本，其中过去 12 个月发布了 11 个；首次发布于 2026/01/08。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

