Google Ads-BigQuery数据传输权限错误:跨账号授权失败排查
解决BigQuery Data Transfer Service连接Google Ads的跨账号权限问题
核心问题拆解
你遇到的403错误本质是Google Ads API拒绝了请求,核心原因集中在两点:一是授权的Google Ads账号权限不足,二是跨客户访问场景下未指定经理账号ID(login-customer-id)。跨账号授权是完全支持的,但需要完整配置权限链。
分步解决方案
1. 确认Google Ads账号权限
- 确保用于授权的Google Ads账号(与GCP账号不同邮箱的那个)拥有目标Ads客户的标准访问权限或更高权限。
- 如果目标Ads客户是经理账号下的子客户,该账号必须同时具备经理账号和子客户的访问权限。
2. 验证凭据关联有效性
虽然你已更新凭据,仍需二次确认:
- 授权用的Ads账号已在Google Ads后台开启API访问权限(路径:工具与设置 > 设置 > API中心)。
- 在GCP控制台的Data Transfer页面,查看对应任务的凭据详情,确认已关联到正确的Ads账号。
3. 配置Login Customer ID(关键步骤)
针对经理账号下的子客户场景:
- 编辑数据传输任务,找到「高级选项」,填入经理账号的10位纯数字ID(不要带横杠)。
- 这个ID会作为API请求的
login-customer-id头,让系统通过经理账号的权限链路访问子客户数据。
4. 检查GCP服务账号权限
BigQuery Data Transfer运行时依赖GCP内置服务账号,需确保该账号(格式:service-<项目编号>@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com)拥有:
- 目标BigQuery数据集的
roles/bigquery.dataEditor和roles/bigquery.jobUser角色。 - 若使用自定义角色,需包含
bigquery.tables.create、bigquery.tables.updateData等必要权限。
5. 重新触发任务并排查日志
- 手动触发一次数据传输任务,观察执行结果。
- 若仍失败,前往Google Ads后台的API中心查看请求日志,获取更详细的错误上下文。
跨账号授权说明
Google Ads到BigQuery的数据传输完全支持跨邮箱账号授权,只要满足以下条件:
- 授权的Ads账号拥有目标客户的访问权限。
- 数据传输任务正确绑定该Ads账号的凭据。
- 跨经理-子客户场景下正确配置
login-customer-id。
内容的提问来源于stack exchange,提问作者Vicky
相关产品推荐
相关产品推荐

