本文探讨了 Google Ads 脚本在自动化账户管理方面的优势。如今,借助生成式 AI 平台,编写自定义脚本已变得更加便捷。
脚本的功能不仅限于自动化,还能解决实际问题。例如,当账户因付款方式失败或广告被拒等原因停止投放时,往往不易察觉。“账户下线”脚本可每小时运行一次,若指定时间段内无展示量,即发送电子邮件通知。
此外,目标每次转化费用(tCPA)高于预算的情况也时有发生且难以发现。例如预算为 500 美元,tCPA 却高达 600 美元。根据经验,预算至少应为 tCPA 的三倍。
广告脚本中的 AI
这正是 AI 发挥作用之处。ChatGPT、Gemini 和 Claude 等工具均可快速生成脚本。
像 Claude 这样的生成式 AI 平台可以快速生成脚本。
以下是我在 Claude 中使用的提示词:
请编写一个 Google Ads 脚本,检查所有广告活动,并在 tCPA 高于广告活动预算时发送电子邮件警报。
Claude 回复如下:
Google Ads tCPA 警报脚本
此脚本功能:
1. 遍历账户中所有启用的广告系列;
2. 识别使用目标每次转化费用(Target CPA)出价策略的广告系列;
3. 将每个广告系列的 tCPA 值与其每日预算进行比较;
4. 创建 tCPA 超过预算的广告系列列表;
5. 若存在满足条件的广告系列,则发送包含详细信息的电子邮件警报。
将脚本粘贴到 Google Ads 后,收到了一条错误信息:
3/5/2025 3:47:20 PM TypeError: campaign.bidding(...).get is not a function at main (Code:39:40) at Object.<anonymous> (adsapp_compiled:20555:54)
随后提示 Claude 修复该错误,其回复如下:
Google Ads tCPA 警报脚本 – 已修复
已通过修正获取目标 CPA 值的方式修复错误。原问题出在 `var bidding = campaign.bidding().get();` 这一行使用了错误的方法调用。
关键更改:
1. 用直接调用 `campaign.bidding().getTargetCpa()` 替换了有问题的方法链;
2. 添加 try/catch 错误处理机制,以兼容不同 API 版本和竞价策略配置;
3. 增加对从共享竞价策略中获取 tCPA 的支持;
4. 增加验证逻辑,确保比较前已成功检索 tCPA 值。
该脚本现已在 Google Ads 中正常运行,整个过程仅通过一系列提示词交互完成。
并非完美无缺
接下来的任务是获取一个脚本,用于识别过去 21 天内无展示量的活跃广告组,以便及时排查原因。
Claude 生成的脚本虽能运行,但存在两个错误:
- 默认设置为任意时间段,而非指定的 21 天。
- 包含了 21 天前结束的自定义实验,尽管实验仅在指定期间运行,脚本仍将其作为普通广告系列纳入统计。
反馈错误并获取替换脚本后,Claude 又针对无效输入产生了新错误。最终未能获得理想脚本,不得不结束会话。
这提醒我们:AI 并不总是像人类那样高效。开发人员很可能无需反复沟通即可正确设置此类脚本。本次测试中,关于 tCPA 冲突的脚本有效,而关于无展示量的脚本则未达预期。
监控意外情况
最终创建的脚本用于处理被拒绝的广告。广告主除监控广告本身外,还应关注偶尔出现的被拒关键词和受众群体。
由于 Google Ads 脚本运行 30 至 60 分钟后会超时,为避免风险,我选择使用两个独立脚本分别处理。
后续脚本和回复重点关注状态为“受限”的项目。
针对非资产类拒绝的提示词如下:
请更新此脚本,使其仅检查被拒绝的广告、关键词和受众群体。状态为“受限”的实体不应包含在内。
Claude 回复如下:
我将更新脚本,仅包含状态为“已拒绝”的项目,排除“受限”及其他非拒绝状态实体。修改后的版本如下:
仅用于被拒绝项目的 Google Ads 脚本。点击打开代码。
关键更改:
将广告条件检查从:
```javascript if (ad.getPolicyApprovalStatus() != 'APPROVED') { ```改为:
```javascript if (ad.getPolicyApprovalStatus() == 'DISAPPROVED') {下载脚本。
无限制
上述示例脚本通过电子邮件发出警报,也可提示 AI 将结果输出至电子表格,或包含已暂停的实体。应用场景几乎无限。

