You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用google-ads-node获取谷歌广告曝光量遇客户ID无效问题求助

排查Google Ads API Invalid Customer ID问题

我来帮你捋捋这个INVALID_ARGUMENT: Invalid customer ID的问题,这种错误我之前踩过类似的坑,大概率是格式或权限相关的问题,咱们一步步来分析:

1. 优先检查客户ID的格式

Google Ads API对客户ID的格式有严格要求:

  • 必须是10位纯数字,或者是带横杠的规范格式(比如123-456-7890)
  • 绝对不能包含空格!你的错误提示里显示'... .... ...',看起来明显带有空格,这肯定会触发无效参数错误。

解决方法:

  • 直接修正环境变量CUSTOMER_ID的值,把里面的空格全部去掉,比如把123 456 7890改成1234567890或者123-456-7890
  • 也可以在代码里手动清理格式,避免环境变量配置失误:
    const cleanCustomerId = process.env.CUSTOMER_ID.replace(/[-\s]/g, ''); // 去掉空格和横杠,转成纯数字格式
    request.setCustomerId(cleanCustomerId);
    

2. 验证账号访问权限

就算客户ID格式正确,用来认证的Google账号(也就是你通过authenticateGoogle获取token的那个账号)可能没有访问该广告账户的权限:

  • 登录Google Ads后台,进入工具与设置 > 访问与权限,确认该账号已经被添加到账户中,并且至少拥有「标准」权限
  • 再检查工具与设置 > 设置 > API设置,确保API访问已开启,且该账号被允许调用API

3. 确认环境变量是否正确加载

有时候环境变量可能没被正确读取,导致传递的客户ID是错误值(比如空串、乱码)。建议在代码里加一行日志,打印实际传递的ID:

console.log("当前使用的客户ID:", process.env.CUSTOMER_ID);

运行代码后看日志,确认输出的是你预期的正确格式ID。

4. 尝试简化测试排查

你可以先改用非流式的search方法测试,排除流式请求的潜在问题:

// 替换原来的流式请求代码
const response = await service.search({
  customerId: cleanCustomerId,
  query: `SELECT campaign.resource_name, metrics.impressions, segments.date FROM campaign WHERE segments.date BETWEEN "2019-01-01" AND "2020-01-01"`
});
console.log(response.results);

如果这个请求能成功,那可能是流式请求的配置有问题,可以尝试更新google-ads-node到最新版本:

npm update google-ads-node

内容的提问来源于stack exchange,提问作者user11847513

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 10:27:40