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

使用服务账户及Python库连接Google Ads API遇权限错误求助

解决服务账户连接Google Ads API的认证错误

核心问题分析

你遇到的unauthorized_client错误,主要是权限配置不完整或参数语法错误导致的——Google Ads API的服务账户认证依赖「服务账户的 impersonation 权限」+「被 impersonate 用户的Google Ads权限」,和GCP的Owner等资源权限无直接关联。

分步解决方案

1. 修正代码语法错误

配置里的use_proto_plus用了小写true,这是JavaScript语法,Python需使用大写布尔值True:

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "developer_token": "xXxxxXxxxXxxXXXXxXxxX",
    "use_proto_plus": True,  # 改为Python标准布尔值
    "json_key_file_path": "./path_to_json.json",
    "impersonated_email": "gcp_and_ads_admin_email",
    "login_customer_id": "XXXXXXXXXX"  # 确保是10位纯数字,不带横杠
}

client = GoogleAdsClient.load_from_dict(credentials)

2. 配置GCP侧Impersonation权限

在GCP控制台IAM页面,给你的服务账户添加Service Account Token Creator角色——这是服务账户生成被 impersonate 用户访问令牌的必要权限。

3. 配置Google Ads侧用户权限

  • 确保impersonated_email对应的邮箱是Google Ads账号的管理员用户:在Google Ads后台「访问与权限」中添加该用户,并分配「管理员」角色。
  • 该邮箱必须关联到你的Google Ads账号,且账号状态正常(未被暂停)。

4. 验证基础配置

  • 确认GCP控制台已启用Google Ads API(在API库中搜索并启用)。
  • 检查开发者令牌有效性:令牌需与你的Google Ads账号绑定,且处于活跃状态。
  • 确保服务账户JSON密钥文件路径正确,运行脚本的用户有读取该文件的权限。

额外注意事项

服务账户认证Google Ads API的核心逻辑是:服务账户通过Impersonation机制,模拟拥有Google Ads权限的用户身份发起请求,因此服务账户本身不需要在Google Ads后台添加权限,只需确保它能模拟的用户具备足够的Ads权限即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 01:55:04