有 Google Ads MCP 服务器吗?有。Hermoso 是一款托管的 Google Ads MCP 服务器。把 https://app.hermoso.ai/mcp 添加到 Claude、ChatGPT 或 Cursor,然后连接一次你的 Google Ads 账户。之后你的助手就能搭建 Search、展示和 Performance Max 广告系列,查找关键词创意,设置预算、出价和定位,并生成报告。启动广告系列始终需要你明确确认。
Google Ads 是一棵树,而用脚本创建广告系列时,问题通常就出在树上。你要先创建预算,再创建广告系列、广告组,最后是广告。如果广告在第四步被拒,你手上就留下了三个孤立的对象,还有一笔你并不想要的预算。手动清理这些残留,正是很多人放弃自动化 Google Ads 的原因。
Hermoso 的 MCP 服务器会用一次原子操作搭建整棵树,利用临时资源 ID,让子对象可以引用尚未存在的父对象。广告系列、广告组、广告和关键词要么全部创建成功,要么一个都不会创建。广告被拒时,预算也不会被创建。
安装一次即可:在 Claude.ai 或 Claude Desktop 中,于“设置 → 连接器”里粘贴 https://app.hermoso.ai/mcp,然后用你的 Hermoso 账户完成授权。在编程 Agent 中只需一条命令:在 Claude Code 中执行 /plugin marketplace add hermoso-ai/hermoso,再执行 /plugin install hermoso@hermoso;在 Codex 中执行 codex plugin marketplace add hermoso-ai/hermoso,再执行 codex plugin add hermoso@hermoso;在 Cursor 中执行 npx skills add hermoso-ai/hermoso -a cursor(把 -a 后面换成你自己的 Agent 名称),然后用 npx -y hermoso auth login 登录一次。完整设置见 MCP & CLI 页面。
Google Ads 工具
搭建。create_google_ads_campaign、create_google_ads_ad_group、create_google_ads_ad、add_google_ads_keywords、create_google_ads_performance_max_campaign、upload_google_ads_asset,以及用于站内链接、宣传文字和结构化摘要的 add_google_ads_assets。
配置。set_google_ads_budget、set_google_ads_bidding(六种策略)、set_google_ads_targeting(地理位置和语言)、find_google_ads_locations、set_google_ads_networks(Search 合作伙伴和 Display 的开关)、create_google_ads_conversion_action 和 list_google_ads_conversion_actions。
研究。google_ads_keyword_ideas 把 Keyword Planner 引入对话:可以从一组关键词、一个落地页或整个网站出发,获得真实的月搜索量、竞争度和页面顶部的出价区间。
读取和修改。list_google_ads_campaigns、用于任意 GAQL 的 google_ads_report、用于查看账户何时发生了哪些变动的 google_ads_change_history、用于删除单个对象的 delete_google_ads_object,以及 set_google_ads_status,即唯一需要确认才能执行的、会启动真实花费的开关。
create_google_ads_campaign 还支持试运行模式,因此 Agent 可以在不创建任何内容的情况下,用实时 API 验证整棵树。当它为你提出方案、等你批准时,这是很好的默认做法。
你的 Agent 用 Google Ads MCP 能做什么
每一行都是服务器上的真实工具。用日常语言提问,Agent 会自行选择要运行的工具。
| 任务 | 工具 | 会发生什么 |
|---|---|---|
| 搭建 Search 或 Display 广告系列 | create_google_ads_campaign、create_google_ads_ad_group、create_google_ads_ad、add_google_ads_keywords | 预算、广告系列、广告组、响应式广告和关键词在一次原子操作中完成,并以暂停状态创建。试运行会先用实时 API 检查整棵树。 |
| 搭建 Performance Max | create_google_ads_performance_max_campaign | 一个广告系列覆盖 Search、YouTube、Display、Discover、Gmail 和 Maps,连同其资产组一起以暂停状态创建。如果账户没有转化操作,它会拒绝执行。 |
| 关键词研究 | google_ads_keyword_ideas | Google 的 Keyword Planner:从种子关键词、落地页或网站获取月搜索量、竞争度和页面顶部的出价区间。 |
| 站内链接和宣传文字 | add_google_ads_assets、upload_google_ads_asset | 创建站内链接、宣传文字和结构化摘要,并将其附加到广告系列或广告组。上传图片素材,可以是你的,也可以是 Hermoso 提供的。 |
| 定位和网络 | set_google_ads_targeting、find_google_ads_locations、set_google_ads_networks | 按名称设置地点和语言,并开启或关闭 Search 合作伙伴和 Display。 |
| 出价和预算 | set_google_ads_bidding、set_google_ads_budget | 六种出价策略和每日预算。提高正在投放中的预算时会要求确认。 |
| 转化跟踪 | create_google_ads_conversion_action、list_google_ads_conversion_actions | 创建转化操作,并说明智能出价能否在该账户上运行。 |
| 报告 | google_ads_report、list_google_ads_campaigns | 任意 GAQL 查询:广告系列、广告组、广告、关键词、搜索词、人口统计和地理位置。 |
| 变动记录 | google_ads_change_history | 谁或什么改动了账户,以及改动的时间。 |
| 启动、暂停或删除 | set_google_ads_status、delete_google_ads_object | 启用会激活真实花费,没有明确确认则拒绝执行。 |
| Merchant Center | list_merchant_accounts、list_merchant_products、list_merchant_issues | 读取 Shopping 或零售类 Performance Max 广告所投放的商品数据源,以及某个商品被拒审的原因。 |
| 关联 GA4 | link_google_ads_to_analytics、list_analytics_google_ads_links、create_analytics_key_event | 关联一个 GA4 资源,使其关键事件可以作为 Google Ads 转化导入。 |
示例提示词
Hermoso 连接完成后,把以下任意一条粘贴到 Claude、ChatGPT 或 Cursor 中。
- “为我们的项目管理应用找 30 个关键词,要求美国月搜索量超过 1,000,并按搜索意图分组。”
google_ads_keyword_ideas 返回 Keyword Planner 的搜索量、竞争度和出价区间,Agent 再进行分组。 - “用这些关键词搭建一个暂停状态的 Search 广告系列:每天 $50,美国和加拿大,英语,最大化转化。”
create_google_ads_campaign 以一次原子操作创建预算、广告系列、广告组、广告和关键词,状态为暂停,然后读回确认。 - “用我们的 Merchant Center 数据源为 Shopify 商品目录搭建一个 Performance Max 广告系列。”
list_merchant_accounts 选定店铺,然后 create_google_ads_performance_max_campaign 搭建该广告系列,状态为暂停,并附上数据源。 - “上个月哪些搜索词花了钱却没有转化?把最差的十个加为否定关键词。”
google_ads_report 拉取搜索词报告,然后 add_google_ads_keywords 添加否定关键词。 - “为我们的品牌广告系列添加四个站内链接:定价、演示、案例研究和联系方式。”
add_google_ads_assets 创建站内链接,并附加到该广告系列。 - “在每个广告系列中关闭 Search 合作伙伴,并把前后对比展示给我。”
set_google_ads_networks 先读取当前设置,然后逐个广告系列进行修改。 - “周五有人改了我们的出价。改了什么?”
google_ads_change_history 按时间列出所有变动。 - “关联我们的 GA4 资源,让注册算作 Google Ads 中的转化。”
link_google_ads_to_analytics 将两者关联,create_analytics_key_event 把注册事件标记为关键事件。
Performance Max,同样的搭建方式
create_google_ads_performance_max_campaign 搭建的是 Google 的跨渠道广告系列类型(一个广告系列覆盖 Search、YouTube、Display、Discover、Gmail 和 Maps),并且是以单次原子操作完成的,因为 Google 要求如此:预算、广告系列、地点和语言定位、资产组以及每一个资产链接必须一同提交,因此一个被拒的资产不会留下搭建了一半的广告系列。它以暂停状态创建,在你的 Agent 告诉你它已存在之前,整棵树会从 Google 读回确认。
在发送任何内容之前,这里会先检查 Google 的资产最低要求,因此缺少方形图片会得到一条清晰的提示,而不是晦涩的 API 拒绝:3–15 条标题(每条不超过 30 个字符),1–5 条长标题(不超过 90 个字符),2–5 条描述(不超过 90 个字符),一个商家名称(不超过 25 个字符),以及至少一张徽标、一张营销图片和一张方形营销图片。先用 upload_google_ads_asset 上传图片,再传入返回的资源名称。YouTube 视频是可选的,如果你不提供,Google 会根据资产组自动生成一个。
Performance Max 没有关键词,也没有手动出价:它只针对转化进行优化。因此,如果账户没有已启用的转化操作,搭建会直接拒绝执行,而不是创建一个无法优化的广告系列,并会说明两种解决办法:用 create_google_ads_conversion_action 创建一个转化操作,或者改用不需要转化的出价策略。自 Google Ads API v21 起,新的 PMax 广告系列默认开启品牌指南,这会改变商家名称和徽标的关联方式,Hermoso 会替你把它们关联到广告系列上。
Shopping 数据源(零售)类 Performance Max 的工作方式相同:传入 merchantCenterId,广告系列就会投放你的 Merchant Center 商品目录,并可用 feedLabel 将其缩小到某一个数据源。它的搭建和读回方式与上面的广告系列完全一致。读回结果会报告 Google 实际保存的 Merchant Center 账户和数据源标签,因此你可以确认它确实是零售广告系列,而不必只相信我们的说法。它会将整个数据源投放在一个根级商品组下;按品牌、类别或自定义标签划分数据源的功能尚未构建,并且会明确拒绝,而不是悄悄忽略,这样你就不会误以为已经缩小了范围。
Merchant Center,让 Agent 知道它在卖什么
“为什么这个商品没有展示?”是 Google Ads 报告在结构上无法回答的问题,因为被拒审的商品没有展示数据可以报告。答案在 Merchant Center 里,而同一个 Google 连接就能访问它,无需第二次登录。
你的 Agent 可以用 list_merchant_accounts 列出你已连接的 Google 账户能够访问的 Merchant Center 账户(代理商通常有好几个,所以它会询问是哪家店,而不是猜测),用 list_merchant_products 读取数据源中的商品(即 Shopping 或零售 Performance Max 广告系列实际投放的目录),并用 list_merchant_issues 读取 Google 针对该账户提出的账户级问题。这些信息足以撰写关于真实存在的商品的广告文案,使用真实有效的价格,并解释一个毫无动静的广告系列。
它也能写入。create_merchant_data_source 创建一个 API 商品数据源,upsert_merchant_product 把商品放入其中,update_merchant_product 修改每天都在变动的字段(价格和库存状态),而 delete_merchant_product 和 delete_merchant_data_source 会在确认后删除它们。list_merchant_data_sources 会列出哪些数据源真正可以接受写入。
有三件事需要预先了解。Google 会阻止所有 Merchant API 调用,直到 Hermoso 的 Cloud 项目关联到你的 Merchant Center 账户,因此 register_merchant_developer 会执行一次这个关联,并明确告知你。这不是连接故障,重新连接也无法解决。商品写入只能进入 API 数据源:文件数据源、自动数据源以及 Merchant Center 自身界面创建的数据源,虽然都能正常列出,却都会拒绝写入,因此 Hermoso 会为你解析出一个可写入的数据源,如果没有则创建一个,如果有多个则直接拒绝并说明原因,而不是把你的商品放进你的广告系列可能不会投放的市场。另外,upsert_merchant_product 是整行写入,而 update_merchant_product 是局部更新。前者需要发送所有希望保留的字段,后者只需发送你要修改的字段。
这并不意味着你必须迁移你的目录。如果商品数据源已经存在于 Shopify 或你的平台中,就把它留在那里,让 Agent 读取即可。写入功能适用于尚无数据源归属的情况,或者需要立即修正某个价格或库存状态,而不能等到下一次同步的情况。
Google Analytics 4,让你看到点击带来了什么
Google Ads 的报告止于点击。之后发生的事(会话、注册、订单)存在于 Google Analytics 中,而同一个 Google 登录也能访问它(它是独立的连接,因为需要单独的权限)。
你的 Agent 可以用 list_analytics_properties 确定要读取哪个 GA4 资源。这一点很重要,因为每个 Analytics 调用都需要一个数字形式的资源 ID,而你手上实际有的是跟踪代码片段中的 G-XXXXXXXXX 衡量 ID。然后 analytics_report 会按渠道、来源/媒介、广告系列、落地页、国家、设备或日期返回会话、用户、转化和收入,analytics_realtime 则显示此刻正在网站上的访客。因此,“搭建广告系列”和“告诉我它赚了多少”其实是同一段对话。
它也能写入,而且这部分会直接反馈到 Google Ads 中:create_analytics_key_event 把 GA4 已经收集的某个事件标记为关键事件,这正是 Google Ads 导入为转化的内容,而本页提到的每一种智能出价策略,都离不开转化操作。create_analytics_custom_dimension 注册一个事件参数,以便报告可以按它细分,list_analytics_definitions 则会在你添加任何一项之前,显示该资源已经在衡量什么。有两点永远成立:这仅适用于 GA4,因为该 API 完全没有 Universal Analytics 接口;自定义维度只能归档,永远无法删除,每个资源只有 50 个事件级别的名额,因此 Agent 会先检查现有的设置。
实际花费的确认关卡不止一个工具
暂停广告系列并不是避免花费的唯一方式,把它当作唯一方式是一个真实的陷阱:在已经启用的父级下创建一个已启用的广告组、广告或关键词,会在下一次竞价时立即投放。因此,保护 set_google_ads_status 的同一个确认也会保护 create_google_ads_ad_group、create_google_ads_ad 和 add_google_ads_keywords,只要它们的父级处于投放状态。这一判断直接读取这些工具本来就会获取的那一行数据,不需要额外的往返请求。否定关键词只会限制花费,因此永远不受此关卡约束。
GAQL 报告,以及一个值得了解的注意事项
google_ads_report 接受任意 GAQL,因此你的 Agent 可以请求它所需的任何数据切片,而不是被限定在固定的报告格式中。如果你要手写查询,或者让模型来编写查询,有一点需要记住:GAQL 不是 SQL。它没有子查询,IN 只接受字面量列表。WHERE id IN (SELECT …) 是无效的,会直接失败,而不会悄悄返回错误的行。可以用 create_sheet 和 append_to_sheet 把结果直接写入电子表格,或用 create_doc 写入文档。
先读回,再报告
在 mutate 之后,整棵树会从 Google 读回,你拿到的摘要是根据读回的结果构建的,而不是根据请求的内容。这个小小的纪律能防止一种具体的失败:Agent 自信满满地描述了一个实际上被平台强制修改或拒绝的广告系列。
未经询问不会执行的操作
拥有预算的 Agent 只有在其影响范围有限时才有用,因此花费权限是在服务器端而非提示词中设限的。Meta 的广告系列、广告组和广告一律以 PAUSED 状态创建,且调用方无法覆盖。所有可能启动真实广告花费的状态开关(每个广告平台都有,包括 set_meta_campaign_status、set_google_ads_status、set_microsoft_ads_status、set_reddit_ads_status、set_linkedin_ads_status、set_pinterest_ads_status、set_x_ads_status 和 set_openai_ads_status 等)都会在没有明确确认标志时拒绝运行,同一关卡也覆盖在已启用的父级下创建已启用的 Google Ads 广告组、广告或关键词,因为它们会在下一次竞价时投放。删除操作同样需要确认。在生成方面,hermoso_capabilities 会在任何操作运行之前公布每个模型的确切积分成本,每次渲染都会先预留一个估算值,再结算真实成本,因此派发失败会退款,而不是悄悄向你收费。
连接你的 Google Ads 账户
你在 Hermoso 的设置、连接器中,通过 Google 自身的 OAuth 流程连接 Google Ads,任何密码都不会经过模型。Google Ads 连接在品牌层面共享,因此一个团队在某个品牌上的成员可以共用同一个连接,而无需每个人重新授权。
创意部分
广告系列管理只有在有内容可投放时才有用。同一台服务器可以研究 Meta、Google 和 LinkedIn 广告库中你所在市场已经奏效的广告,基于你的真实产品渲染成品的图片和视频创意(支持 100 多种模型),并上传素材,因此“我们该投放什么”和“把它搭建起来”可以在一段对话中完成,而不必使用两个工具。请参阅 营销 MCP 概览、完整的工具列表,如果你同时运行两者,也可以看 Meta Ads MCP。
常见问题
有 Google Ads 的 MCP 服务器吗?
有。Hermoso 的 MCP 服务器可以从任何 MCP 客户端搭建和管理 Google Ads:用 create_google_ads_campaign、create_google_ads_ad_group、create_google_ads_ad 和 add_google_ads_keywords 搭建 Search 或 Display 广告树;用 create_google_ads_performance_max_campaign 搭建 Performance Max;用 set_google_ads_budget、set_google_ads_bidding 和 set_google_ads_targeting 进行配置;用 google_ads_keyword_ideas 进行 Keyword Planner 研究;用 list_google_ads_campaigns 和 google_ads_report 生成报告;用 Merchant Center 读取功能查看 Shopping 广告背后的商品数据源;另外还有需要确认才能启用的 set_google_ads_status。
AI Agent 能创建 Google Ads 广告系列吗?
可以,并且整棵树是用临时资源 ID 通过单次原子操作创建的:广告系列、广告组、响应式搜索或展示广告以及关键词一起创建。如果广告被拒,预算也不会被创建,因此你不必清理孤立的对象。试运行模式可以在不创建任何内容的情况下,用实时 API 验证整棵树。
它能创建 Performance Max 广告系列吗?
可以。create_google_ads_performance_max_campaign 会以一次原子操作创建预算、广告系列、定位、资产组以及每一个资产链接,因为 Google 要求它们必须一起提交。广告系列以暂停状态创建,并在 Agent 报告之前被读回。Google 的资产最低要求会在发送前强制检查:3–15 条标题、1–5 条长标题、2–5 条描述、一个商家名称,以及至少一张徽标、一张营销图片和一张方形营销图片。PMax 只针对转化出价,因此如果账户没有已启用的转化操作,它会拒绝搭建,而不是创建一个无法优化的广告系列。Shopping 数据源(零售)PMax 的工作方式相同:传入 merchantCenterId,广告系列就会投放你的 Merchant Center 商品目录,并可用 feedLabel 将其缩小到某一个数据源,读回结果会报告 Google 实际保存的 Merchant Center 账户和数据源标签。
它支持 Google Merchant Center 吗?
支持,可以读取也可以写入,且使用同一个 Google 连接。Agent 可以列出你的账户能够访问的 Merchant Center 账户,读取数据源中的商品(即 Shopping 或零售 Performance Max 广告系列实际投放的目录),并读取 Google 提出的账户级问题。这是了解商品为何没有展示的唯一途径,因为被拒审的商品没有展示数据,Google Ads 报告无法显示它。Google 要求在 API 能够响应之前,把 Hermoso 的 Cloud 项目与你的 Merchant Center 账户做一次性注册,而且有一个工具可以执行这一步。它也可以写入:create_merchant_data_source、upsert_merchant_product、用于每天都在变动的价格和库存状态变更的 update_merchant_product,以及需要确认的 delete_merchant_product 和 delete_merchant_data_source。Google 只接受 API 数据源中的商品写入,因此 Hermoso 会为你解析出一个可写入的数据源,如果账户有多个则直接拒绝。
它能做关键词研究吗?
可以。google_ads_keyword_ideas 会调用 Google 的 Keyword Planner,返回真实的月搜索量、竞争度和页面顶部的出价区间,可以从关键词、落地页 URL 或整个网站出发。Agent 可以把结果直接交给 add_google_ads_keywords,或写入 Google 表格。
它能开始花我的 Google Ads 预算吗?
只有在明确确认之后才可以。set_google_ads_status 是启动真实资金投放的开关,而且由于在已启用的父级下创建已启用的子对象会在下一次竞价时立即投放,所以当父级处于投放状态时,同一确认也会保护 create_google_ads_ad_group、create_google_ads_ad 和 add_google_ads_keywords。否定关键词只会限制花费,因此永远不受此约束。
它能生成报告吗?
可以。google_ads_report 接受任意 GAQL,因此 Agent 可以请求它需要的任何数据切片。注意 GAQL 不是 SQL:它没有子查询,IN 只接受字面量列表,因此 WHERE id IN (SELECT …) 是无效的。结果可以直接写入 Google 表格或文档。
它能设置哪些出价和定位?
六种出价策略、广告系列投放时段,以及地理和语言定位,并可使用 find_google_ads_locations 按名称查找地点定位。预算通过 set_google_ads_budget 设置,关键词支持否定关键词和单个关键词的 CPC。
Agent 会获得我的 Google 账户密码吗?
不会。你在 Hermoso 的设置、连接器中通过 Google 自身的 OAuth 流程连接 Google Ads,Hermoso 保存由此产生的令牌。Agent 只调用 Hermoso 的工具。Google Ads 连接在品牌层面共享,因此整个团队可以使用同一个连接。
它也能制作广告创意吗?
可以。同一台服务器会研究竞品广告,规划创意概念,基于你的真实产品合成渲染 100 多种模型的成品图片和视频创意,并用 upload_google_ads_asset 上传素材,因此研究、创意和广告系列搭建可以在同一段对话中完成。