营销增长
用 Google Ads API…
当需要分析 Google Ads 广告系列、关键词、搜索词、转化与 ROAS 表现并生成报告时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
用 Google Ads API 拉取广特定
解决思路
- 配置环境变量:GOOGLE_CLIENT_ID、GOOGLE_CLIENT_SECRET(OAuth)、GOOGLE_ADS_DEVELOPER_TOKEN(在 https://ads.google.com/home/tools/manager-accounts/ 申请)、GOOGLE_ADS_CUSTOMER_ID(账号 ID,格式 XXX-XXX-XXXX,传入时去掉横线)、GOOGLE_ADS_LOGIN_CUSTOMER_ID(若使用经理账号则填经理账号 ID),写入 .env、.env.local 或 ~/.claude/.env.global。
- 获取访问令牌:使用 scope https://www.googleapis.com/auth/adwords,构造 OAuth 授权 URL(redirect_uri=urn:ietf:wg:oauth:2.0:oob,access_type=offline),再用 curl POST 到 https://oauth2.googleapis.com/token 用授权码换取 token。
- 调用 API:POST 到 https://googleads.googleapis.com/v17/customers/{CUSTOMER_ID}/googleAds:searchStream,请求头包含 Authorization: Bearer {ACCESS_TOKEN}、developer-token、login-customer-id(仅经理账号时)、Content-Type: application/json,请求体用 GAQL 查询。
- 生成广告系列表现报告:查询 campaign 的 name、status、impressions、clicks、ctr、average_cpc、cost_micros、conversions、cost_per_conversion、conversions_value,条件 segments.date DURING LAST_30_DAYS 且 campaign.status != REMOVED,按 metrics.cost_micros DESC 排序;用 python3 解析 JSON 并格式化输出表格。
- 处理 cost_micros:所有花费字段单位为 micros(百万分之一货币单位),需除以 1,000,000 得到实际金额。
- 生成关键词表现报告:查询 keyword_view 的 ad_group_criterion.keyword.text、match_type、quality_info.quality_score 及各项指标,条件 segments.date DURING LAST_30_DAYS 且 ad_group_criterion.status != REMOVED,按 metrics.cost_micros DESC 排序 LIMIT 50。
- 生成质量得分明细报告:查询 quality_score、creative_quality_score(广告相关性)、post_click_quality_score(着陆页体验)、search_predicted_ctr(预期点击率),条件 quality_score IS NOT NULL 且 segments.date DURING LAST_30_DAYS,按 quality_score ASC 排序 LIMIT 50。
- 生成广告组表现报告:查询 campaign.name、ad_group.name、ad_group.status 及各项指标,条件 segments.date DURING LAST_30_DAYS 且 ad_group.status != REMOVED,按 metrics.cost_micros DESC 排序 LIMIT 50。
- 生成搜索词报告:查询 search_term_view.search_term、segments.keyword.info.text、match_type 及各项指标,条件 segments.date DURING LAST_30_DAYS,按 metrics.impressions DESC 排序 LIMIT 100;用于发现新关键词机会、识别否定关键词候选、发现匹配类型问题。
- 生成转化跟踪报告:查询 campaign.name、metrics.conversions、conversions_value、cost_micros、conversions_from_interactions_rate、value_per_conversion,条件 segments.date DURING LAST_30_DAYS 且 campaign.status = ENABLED,按 metrics.conversions DESC 排序。
- 计算 ROAS:ROAS = conversions_value / (cost_micros / 1_000_000),用 python3 解析并输出各广告系列的 Cost、Conv Value、ROAS。
- 生成每日花费趋势:查询 customer 的 segments.date、impressions、clicks、cost_micros、conversions,条件 segments.date DURING LAST_30_DAYS,按 segments.date DESC 排序。
- 使用 GAQL 内置日期范围:TODAY、YESTERDAY、LAST_7_DAYS、LAST_14_DAYS、LAST_30_DAYS、THIS_MONTH、LAST_MONTH、THIS_QUARTER、LAST_QUARTER,或自定义 segments.date BETWEEN '2024-01-01' AND '2024-03-31'。
- 生成月度完整报告时按顺序输出:账号总览(总花费、展示、点击、转化、ROAS)、广告系列表现(按花费排序)、Top 20 关键词及质量得分、搜索词与否定关键词候选、质量得分分布、按广告系列的转化与 ROAS 分析、每日趋势。
- 按指定报告格式输出:账号摘要表(含环比)、广告系列表现表、Top 关键词表(含匹配类型、QS、花费、点击、转化、CPC)、建议部分(暂停高花费零转化关键词、提高高转化低预算关键词出价、添加否定关键词、修复 QS<5 的关键词、在低 ROAS 与高 ROAS 广告系列间重新分配预算)。
- 错误处理:AUTHENTICATION_ERROR 为 token 无效或过期,AUTHORIZATION_ERROR 为 developer token 或账号权限问题,REQUEST_ERROR 为 GAQL 语法错误,QUOTA_ERROR 为 API 配额超限。
- 避免常见 GAQL 错误:不要遗漏 WHERE segments.date DURING ...(多数指标查询必需)、正确使用 REMOVED 状态过滤、记得对 costMicros 除以 1,000,000、避免请求不兼容的资源与 segment 组合。
- 遵循最佳实践:始终过滤掉 REMOVED 的广告系列/广告组/关键词;大数据集用 searchStream 而非 search(无需分页);构建多段报告时缓存结果;质量得分为 0 表示数据不足,按 null 处理。
适用边界 · 注意事项
- 没有 Google Ads 账号、developer token 或 OAuth 凭据时无法使用。
- 需要访问非 Google Ads 平台(如 Meta、TikTok 广告)的数据时不适用。
- 仅需静态报表或无需实时 API 数据时,可直接用 Google Ads 界面导出。