常见错误

本指南列出了常见的 API 错误,并提供了预防和处理这些错误的策略。

如需查看所有错误类型的完整列表,请参阅 Google Ads API 错误 参考文档。如果您需要其他帮助, 请在 Google Ads API 论坛上提问。

google.rpc.ErrorInfo

ACCESS_TOKEN_SCOPE_INSUFFICIENT
摘要OAuth 2.0 访问令牌没有所需的范围。
常见原因 请求被拒绝,因为提供的访问令牌不包含 Google Ads API OAuth 2.0 范围。
如何处理 确保访问令牌具有所需的范围。发生此错误的一个常见原因是,您重复使用了使用不同 OAuth 范围集生成的现有访问令牌。如需查看如何生成具有所需范围的新访问令牌的示例,请参阅 OAuth 授权参数。
预防建议 确保访问令牌具有所需的范围。使用所需的范围重新对用户进行身份验证,以获取具有所需范围的访问令牌。如果您的应用使用多个 OAuth 范围,您可能需要实现 精细的 OAuth 权限。

google.auth.exceptions.RefreshError

invalid_grant
摘要令牌已过期或已被撤消。
常见原因 Google Cloud Platform 项目配置了面向外部用户类型的 OAuth 权限请求页面,且发布状态为 Testing,因此系统会向其发放一个 7 天后过期的刷新令牌。
如何处理 您的 Google 项目的发布状态为 Testing,因此刷新令牌每 7 天过期一次,并收到 invalid_grant 错误。前往 Google API 控制台,然后导航到 OAuth 权限请求页面。然后,将发布状态更改为 In production,以避免刷新令牌在 7 天后过期。
预防建议 请参阅未经验证的应用。

AuthenticationError

CLIENT_CUSTOMER_ID_INVALID
摘要客户账号的客户 ID 不是数字。
常见原因 使用了不正确的客户账号的客户 ID。
如何处理 不适用
预防建议 123-456-7890 应该是 1234567890。如需了解详情,请参阅使用入门。
CLIENT_CUSTOMER_ID_IS_REQUIRED
摘要未在 HTTP 标头中指定客户账号的客户 ID。
常见原因 未在 HTTP 标头中指定客户账号的客户 ID。
如何处理 不适用
预防建议 所有调用都需要客户账号的客户 ID,因此请确保您已在 HTTP 标头中指定一个。不妨考虑使用我们的 客户端库,因为它们会为您处理此问题。
CUSTOMER_NOT_FOUND
摘要未找到与标头中提供的客户 ID 对应的账号。
常见原因 尝试访问刚刚创建的账号,但该账号尚未在后端建立。
如何处理 先等待五分钟,然后每 30 秒重试一次。
预防建议 在创建账号后等待几分钟,然后再针对该账号发出请求。
摘要请求标头中的访问令牌无效或已过期。
常见原因 访问令牌已失效。
如何处理 请求新令牌。如果您使用的是我们的某个客户端库,请参阅其文档,了解如何刷新令牌。
预防建议 存储并重复使用访问令牌,直到它们过期。
NOT_ADS_USER
摘要用于生成访问令牌的 Google 账号未与任何 Google Ads 账号相关联。
常见原因 提供的登录信息对应的 Google 账号未启用 Google Ads。
如何处理 请务必使用有效的 Google Ads 账号(通常是您的经理账号)登录,以进行 OAuth 流程。您还可以邀请 Google 账号访问现有的 Google Ads 账号:登录您的经理账号,选择有问题的客户账号或经理账号,依次前往 Tools and Settings > Access and security,然后添加 Google 账号电子邮件地址。
预防建议 不适用
OAUTH_TOKEN_INVALID
摘要标头中的 OAuth 访问令牌无效。
常见原因 您通过 HTTP 标头传递的访问令牌不正确。
如何处理 不适用
预防建议 请确保您已传递与您账号关联的正确访问令牌。用户有时会将其与刷新令牌和授权代码混淆。如果您想获取可访问经理账号下的所有客户账号的凭据,请确保获取经理账号的刷新令牌。请参阅用户身份验证指南。

AuthorizationError

CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION
摘要Google Cloud 项目仅具有测试访问权限,不能用于访问生产账号。
常见原因 使用具有测试访问权限级别的 Google Cloud 项目针对非测试(生产)Google Ads 账号发出请求。(在 API 版本 v24 及更低版本中,此条件会返回 AuthorizationError.ACTION_NOT_PERMITTED。)
如何处理 如果您正在进行测试,请确保您的请求以测试账号为目标。如果您想访问生产 Google Ads 账号,请在Google Ads API 概览页面上查看 Google Cloud 项目的访问权限级别,并将项目的访问权限级别升级为探索者、基本或标准访问权限。
预防建议 不适用
CUSTOMER_NOT_ENABLED
摘要客户账号处于未启用状态,因此无法访问。
常见原因 客户账号尚未完成注册或已被停用时,会发生这种情况。
如何处理 登录 Google Ads 界面,确保您已完成此账号的注册流程。对于已停用的账号,请参阅重新激活已撤销的 Google Ads 账号。
预防建议 您可以主动检查客户账号是否已停用,方法是检查状态是否为 CANCELLED。
USER_PERMISSION_DENIED
摘要授权客户无法访问正在操作的客户。
常见原因 以有权访问经理账号的用户身份进行身份验证,但在请求中未指定 login-customer-id。
如何处理 不适用
预防建议 将 login-customer-id 指定为不带连字符 (-) 的经理账号 ID。客户端库内置了对此的支持。