关于 google-ads
这款命令行技能使用 curl 和 jq 查询 Google Ads API,可发现账号并通过 GAQL 获取广告系列、广告组、关键词及客户数据。调用需提供 OAuth 和开发者令牌凭据。
主要功能
- 01列出可访问的客户账号
- 02使用 searchStream 执行 GAQL 报告
- 03查询广告系列和广告组数据
- 04获取关键词与客户指标
- 05处理经理账号调用上下文
适用场景
- 01查找 OAuth 用户可访问的账号
- 02查看广告系列费用、点击和转化
- 03检查广告组及关键词数据
- 04在经理账号下运行报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ acedatacloud/ skills --skill google-ads安装后在 Claude Code 中输入/google-ads确认已加载。
详细介绍
通过 curl + jq 查询 Google Ads API。需要两个凭据和一个上下文
标头:
$GOOGLE_ADS_TOKEN— 用户的 OAuth bearer(adwordsscope)→Authorization: Bearer $GOOGLE_ADS_TOKEN$GOOGLE_ADS_DEVELOPER_TOKEN— 平台的开发者令牌(由服务端注入)→ 标头developer-token: $GOOGLE_ADS_DEVELOPER_TOKENlogin-customer-id— 仅用于管理器(MCC)范围的调用:请求所使用的管理器 ID,或已设置时的$GOOGLE_ADS_LOGIN_CUSTOMER_ID(仅数字,不带连字符)。customers:listAccessibleCustomers不需要此项。
API 版本:基础地址为
https://googleads.googleapis.com/<vNN>。Google 大约每 4 个月发布一个新的vNN,并弃用旧版本,因此硬编码的版本最终会停止工作。示例使用v25(截至 2026-07 受支持)。如果所有调用都返回 404,说明该版本不可用——可能已弃用,也可能尚未发布。探测customers:listAccessibleCustomers:受支持的版本会返回 401/200,不可用的版本会返回 404。请从示例版本开始逐个降级,并在假定存在更新的vNN之前,先查看 Google 的受支持版本表。
如果 $GOOGLE_ADS_DEVELOPER_TOKEN 为空,说明连接器尚未完成配置——请说明这一点,不要调用 API(调用会返回 401/DEVELOPER_TOKEN_NOT_APPROVED)。
VER="v25"; BASE="https://googleads.googleapis.com/$VER"
AUTH="Authorization: Bearer $GOOGLE_ADS_TOKEN"; DEV="developer-token: $GOOGLE_ADS_DEVELOPER_TOKEN"
# Customers the OAuth user can access (ids are returned as customers/<id>)
curl -sS -H "$AUTH" -H "$DEV" "$BASE/customers:listAccessibleCustomers" | jq '.resourceNames'
使用 GAQL(searchStream)生成报告
CID="1234567890" # target customer id, digits only
# Manager (MCC) access → send login-customer-id; direct access → drop the header.
# Array, not a plain string: the header value contains a space and would split.
LOGIN=(); [ -n "$GOOGLE_ADS_LOGIN_CUSTOMER_ID" ] && LOGIN=(-H "login-customer-id: $GOOGLE_ADS_LOGIN_CUSTOMER_ID")
curl -sS -H "$AUTH" -H "$DEV" "${LOGIN[@]}" \
-H "Content-Type: application/json" -d '{
"query":"SELECT campaign.name, metrics.cost_micros, metrics.clicks, metrics.conversions FROM campaign WHERE segments.date DURING LAST_30_DAYS ORDER BY metrics.cost_micros DESC"
}' "$BASE/customers/$CID/googleAds:searchStream" \
| jq '.[].results[]? | {campaign: .campaign.name, cost_usd: (.metrics.costMicros|tonumber/1e6), clicks: .metrics.clicks, conv: .metrics.conversions}'
GAQL 资源:campaign、ad_group、ad_group_criterion(关键字)、
customer。费用字段为 metrics.cost_micros(除以 1,000,000 = 账户货币)。
注意事项
- 每个端点都返回 404,说明问题在
VER,而不在凭据——版本已弃用或尚未发布。单个调用返回 404,则是该调用本身的问题:资源不存在(客户 ID 错误)或路径错误。在排查身份验证之前,请使用customers:listAccessibleCustomers检查版本。 - 需要两个凭据和一个上下文标头。 每次调用都必须提供
developer-token;只有在管理器(MCC)账户下操作时,才需要login-customer-id——customers:listAccessibleCustomers无需此标头。在管理器范围的调用中省略该标头,是此处导致 401/403 的首要原因。 - 客户 ID 在 URL/标头中只能包含数字(去掉
123-456-7890中的连字符)。 searchStream返回一个数组,其中每个分块都包含.results[]——使用.[].results[]?展平。- 费用以账户货币的微单位表示;除以 1e6 即可。
评论
支持 Markdown