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

Google Ads API认证报错:Credentials failed to obtain metadata求助

错误场景

调用GoogleAdsService/Search方法发起请求时触发Credentials failed to obtain metadata错误,应用基于Spring Boot开发,已在google-ads.properties中配置clientId、clientSecret、refreshToken、developerToken及loginCustomerId等凭证,且已验证凭证正确性与API访问权限,但认证仍失败。

请求与响应详情

请求信息

MethodName: google.ads.googleads.v16.services.GoogleAdsService/Search
Endpoint: googleads.googleapis.com:443
Headers: {developer-token=REDACTED, login-customer-id=9854212609, x-goog-api-client=gl-java/17.0.10__Oracle-Corporation gccl/31.0.0 gapic/31.0.0 gax/2.47.0 grpc/1.62.2}
Body: customer_id: "9854212609"
query: "SELECT campaign.id, campaign.name FROM campaign"

响应信息

Headers: null
Body: null
Failure message: null
Status: Status{code=UNAVAILABLE, description=Credentials failed to obtain metadata, cause=com.google.auth.oauth2.GoogleAuthException: com.google.api.client.http.HttpResponseException: 401 Unauthorized
POST https://oauth2.googleapis.com/token

排查与解决建议

  • 检查Refresh Token有效性:确认refresh token未过期、未被撤销,且生成token时使用的OAuth客户端(clientId/clientSecret)与当前配置完全一致;注意离线类型的refresh token若长期未使用或账号权限变更可能会失效
  • 验证OAuth客户端配置:确保clientId和clientSecret无拼写错误,客户端类型为桌面/其他(若通过OAuth 2.0 Playground生成token,需对应此类型),且已在Google Cloud Console中启用Google Ads API
  • 核对login-customer-id格式:配置文件中的loginCustomerId需为纯数字,不能包含连字符或其他符号,确认与请求中使用的9854212609格式一致
  • 网络环境检测:确认应用服务器可正常访问oauth2.googleapis.com,排查防火墙、代理是否拦截了token请求;可直接通过curl测试POST请求到该端点,验证是否能获取access token
  • 版本兼容性检查:当前使用的Google Ads Java库版本为31.0.0,确认其与API v16的兼容性,尝试升级至最新稳定版
  • 凭证加载逻辑验证:检查GoogleAdsClient是否正确读取了google-ads.properties中的所有字段,可在代码中打印脱敏后的加载值,确认无遗漏或加载错误
  • 账号权限确认:确保OAuth授权的账号拥有目标客户账号的访问权限(如管理员、标准操作权限),同时确认developer token已关联到正确的Google Ads账号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 10:54:52