通过API关联Google AdWords与Google Analytics时遇权限不足及示例代码异常问题
解决Google Analytics API关联AdWords账号时的权限不足问题
我之前也碰到过一模一样的坑!手动在网页操作、用API Explorer测试都顺得很,一写代码就跳权限不足的报错,折腾了好半天才把问题捋清楚,给你分享几个排查方向:
核对OAuth权限范围与账号角色
手动操作和API Explorer用的是你个人账号的完整权限,但代码里用的OAuth客户端或服务账号可能权限不够:- 如果是用OAuth授权码流程,要确保请求的scope包含
https://www.googleapis.com/auth/analytics.edit,别用只读的analytics.readonly; - 如果是服务账号,一定要在GA后台的「管理员→账号权限管理」里给这个服务账号添加编辑者角色,光有API密钥没用,得有GA侧的实体权限。
- 如果是用OAuth授权码流程,要确保请求的scope包含
确认AdWords侧的访问权限
你用的是AdWords经理账号,要注意代码里的操作账号(不管是OAuth用户还是服务账号):- 必须在AdWords经理账号里拥有标准权限,或者对应子账号的管理员权限;
- 要是用服务账号,得先在AdWords的「设置→访问权限」里把服务账号的邮箱添加为关联用户,授予必要的访问权限,不然GA API调用时会因为AdWords侧拒接而报权限不足。
检查API调用参数的正确性
有时候权限报错其实是参数写错了,别被提示误导:- 确认用的是GA的媒体资源ID(格式
UA-XXXXXXXXX-X),不是账号ID或视图ID; - AdWords客户ID要带连字符(比如
123-456-7890),别写成纯数字; - 调用
webPropertyAdWordsLinks.insert时,accountId和webPropertyId参数要对应正确的GA账号和媒体资源。
- 确认用的是GA的媒体资源ID(格式
调试小技巧:对标API Explorer请求
把你代码里的请求和API Explorer的请求做个对比:用抓包工具看请求头的Authorization Token对应的权限范围,再核对请求体的参数是否完全一致。我当时就是发现代码里漏传了一个AdWords子账号的关联参数,才导致的权限报错。
内容的提问来源于stack exchange,提问作者przemeko
相关产品推荐
相关产品推荐

