常见错误
本文列出了常见错误,并提供了有关如何避免和处理这些错误的提示。如需查看完整的错误列表,请参阅错误参考。如需更多支持,请访问我们的论坛。
google.auth.exceptions.RefreshError
|
invalid_grant |
摘要 | 令牌已过期或已被撤消。 |
常见原因 |
如果 Google Cloud Platform 项目为外部用户类型配置了 OAuth 意见征求页面,且发布状态为 Testing ,则系统会为其签发有效期为 7 天的刷新令牌。
|
如何处理 |
您的 Google 项目的发布状态为 Testing ,因此刷新令牌每 7 天就会过期,并会收到 invalid_grant 错误。前往 Google API 控制台,然后前往 OAuth 权限请求页面。然后,按照以下说明将发布状态更改为 In production ,以免刷新令牌在 7 天内过期。
|
预防建议 |
请参阅未经验证的应用。
|
|
|
CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR |
摘要 | 此运算符不能与广告子类一起使用。 |
常见原因 |
尝试修改广告的 status 以外的属性。
|
处理方式 |
不适用
|
预防建议 |
广告制作后就无法修改。如果您想修改广告,则必须制作新广告,然后移除旧广告。不过,您可以使用 MutateAdGroupAds 修改广告的 status 。
|
|
INVALID_INPUT |
摘要 | 广告中的某个字段包含无效字符。 |
常见原因 |
在网址中使用特殊字符。
|
处理方式 |
不适用
|
预防建议 |
在发出 API 请求之前,请先验证应用中的网址。
|
|
LINE_TOO_WIDE |
摘要 | 广告中的某个字段超出了所允许的长度上限。请参阅文字广告简介。 |
常见原因 |
文本行过长。
|
如何处理 |
不适用
|
预防建议 |
在发出 API 请求之前,请先验证线条的长度。
|
|
|
AD_GROUP_AD_LABEL_ALREADY_EXISTS |
摘要 | 此标签已与部分广告相关联。 |
常见原因 |
尝试将标签与已关联的广告相关联。
|
处理方式 |
不适用
|
预防建议 |
首先检查要添加的标签是否已与广告相关联。
|
|
CANNOT_OPERATE_ON_REMOVED_ADGROUPAD |
摘要 | 一项操作尝试更新已移除的广告。 |
常见原因 |
广告一经移除,便无法再更新,包括更改其状态。
|
处理方式 |
不适用
|
预防建议 |
确保您的代码不会尝试更新已移除的广告。
|
|
|
INVALID_KEYWORD_TEXT |
摘要 | 关键字文字包含无效字符。请参阅添加关键字。 |
常见原因 |
关键字文字包含无效字符。
|
处理方式 |
不适用
|
预防建议 |
在向 API 发出请求之前,先验证应用中的关键字文字。
|
|
|
DUPLICATE_ADGROUP_NAME |
摘要 | 正在添加或重命名一个广告组,但名称已经被其他广告组使用。 |
常见原因 |
创建新广告组时,选择了正在使用或已暂停的现有广告组的名称。
|
处理方式 |
记录错误并向用户显示错误消息,可以选择推荐一个未使用的广告组名称或列出已被使用的名称。
|
预防建议 |
不适用
|
|
|
DUPLICATE_ASSET |
摘要 | 单个请求中的两个操作包含针对具有相同二进制数据的资源的创建操作。 |
常见原因 |
包含重复的创建操作(包含相同二进制数据)的更改请求。
|
处理方式 |
在单独的请求中创建资产,然后在后续请求中关联到该资产;或者,在同一请求中使用临时 ID。
|
预防建议 |
不适用
|
|
|
CLIENT_CUSTOMER_ID_INVALID |
摘要 | 客户账号的客户 ID 不是数字。 |
常见原因 |
使用不当的客户端客户 ID。
|
处理方式 |
不适用
|
预防建议 |
123-456-7890 应该是 1234567890。如需了解详情,请参阅开始使用。
|
|
CLIENT_CUSTOMER_ID_IS_REQUIRED |
摘要 | 未在 HTTP 标头中指定客户账号的客户 ID。 |
常见原因 |
未在 HTTP 标头中指定客户端客户 ID。
|
如何处理 |
不适用
|
预防建议 |
所有调用都需要客户端客户 ID,因此请确保您已在 HTTP 标头中指定了客户 ID。可考虑使用我们的客户端库,因为它们会为您处理此操作。
|
|
CUSTOMER_NOT_FOUND |
摘要 | 未找到与标头中提供的客户 ID 对应的账号。 |
常见原因 |
尝试访问刚刚创建但还没有在后端建立的账号。
|
如何处理 |
先等待 5 分钟,然后每 30 秒重试一次。
|
预防建议 |
创建账号后,请等待几分钟,然后再向该账号发出请求。
|
|
GOOGLE_ACCOUNT_COOKIE_INVALID |
摘要 | 请求标头中的访问令牌无效或已过期。 |
常见原因 |
访问令牌已失效。
|
处理方式 |
请求新令牌。如果您在使用我们的某个客户端库,请参阅相关文档以了解如何刷新令牌。
|
预防建议 |
存储并重复使用访问令牌,直到其过期为止。
|
|
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 标头传递的访问令牌不正确。
|
处理方式 |
不适用
|
预防建议 |
请确保您已传递与您账号关联的正确访问令牌。用户有时会将其与刷新令牌和授权代码混淆。如果您希望获得可访问经理账号下所有客户账号的凭据,则务必要取得该经理账号的刷新令牌。如需了解详情,请参阅我们关于访问令牌和刷新令牌以及 OAuth2 的指南。
|
|
|
CUSTOMER_NOT_ENABLED |
摘要 | 由于客户账号处于停用状态,因此无法访问。 |
常见原因 |
如果客户账号尚未完成注册或已停用,就会出现这种情况。
|
处理方式 |
登录 Google Ads 界面,并确保您已完成此账号的注册流程。对于已停用的账号,请参阅重新启用已撤销的 Google Ads 账号。
|
预防建议 |
您可以通过检查状态是否为已取消,主动检查客户账号是否已停用。
|
|
DEVELOPER_TOKEN_NOT_APPROVED |
摘要 | 开发者令牌仅获准用于测试账号,但尝试访问非测试账号。 |
常见原因 |
测试开发者令牌被用于访问非测试账号。
|
处理方式 |
请确保您确实想要访问非测试账号。如果是,您需要申请将开发者令牌升级为标准访问权限或基本访问权限。
|
预防建议 |
不适用
|
|
DEVELOPER_TOKEN_PROHIBITED |
摘要 | 请求中发送的项目不允许使用开发者令牌。 |
常见原因 |
每个 Google API 控制台项目只能与一个经理账号的开发者令牌相关联。发出 Google Ads API 请求后,开发者令牌将永久与 Google API 控制台项目配对。如果您不使用新的 Google API 控制台项目,则在发出请求时会收到 DEVELOPER_TOKEN_PROHIBITED 错误。
|
如何处理 |
不适用
|
预防建议 |
如果改用新经理账号下的开发者令牌,您需要为使用新经理账号令牌的 Google Ads API 请求创建一个新的 Google API 控制台项目。
|
|
USER_PERMISSION_DENIED |
摘要 | 授权客户无法访问正在操作的客户。 |
常见原因 |
以有权访问经理账号的用户身份进行身份验证,但未在请求中指定 login-customer-id 。
|
处理方式 |
不适用
|
预防建议 |
将 login-customer-id 指定为不含连字符的经理账号 ID (- )。客户端库内置了对此的支持。
|
|
|
BID_TOO_MANY_FRACTIONAL_DIGITS |
摘要 | 出价的值不是账号所用币种最小单位的整数倍。例如,US$ 0.015(15000 个百万分之一)不是有效的出价。 |
常见原因 |
不适用
|
处理方式 |
不适用
|
预防建议 |
验证出价是否是该账号币种最小单位的整数倍。
|
|
BID_TOO_BIG |
摘要 | 即使出价在广告系列预算范围内,也会返回此错误。 |
常见原因 |
不适用
|
处理方式 |
不适用
|
预防建议 |
检查账号是否在参与 Google 广告助公益计划。如果是,请将每次点击费用出价限制在计划规定的上限范围内。
|
|
|
MONEY_AMOUNT_LESS_THAN_CURRENCY_MINIMUM_CPC |
摘要 | 预算金额太低。 |
常见原因 |
不适用
|
处理方式 |
不适用
|
预防建议 |
验证预算金额是否高于或等于账号所用币种的最小单位。
|
|
NON_MULTIPLE_OF_MINIMUM_CURRENCY_UNIT |
摘要 | 从以百万分之一为单位的金额转换为以账号币种计价的金额时,预算金额的小数位数太多。 |
常见原因 |
不适用
|
处理方式 |
不适用
|
预防建议 |
验证预算金额是否可以被账号所用币种的最小单位整除。
|
|
|
DUPLICATE_CAMPAIGN_NAME |
摘要 | 正在添加或重命名一个广告系列,但名称已经被其他广告系列使用。 |
常见原因 |
创建新广告系列时,选择了正在使用或已暂停的现有广告系列的名称。
|
如何处理 |
记录错误并向用户显示错误消息,可以选择推荐一个未使用的广告系列名称或列出已被使用的名称。
|
预防建议 |
不适用
|
|
|
KEYWORD_HAS_INVALID_CHARS |
摘要 | 添加或修改包含无效字符的关键字。 |
常见原因 |
在关键字中使用 ! @ % * 等特殊字符。
|
处理方式 |
不适用
|
预防建议 |
务必不要在关键字中使用任何不允许的字符。请参阅添加关键字。
|
|
|
DUPLICATE_ELEMENT |
摘要 | 请求包含两个相同的冗余参数。 |
常见原因 |
不适用
|
处理方式 |
不适用
|
预防建议 |
在发出请求之前移除操作、参数、列表元素中的重复项。查找具有 DistinctElements 约束条件的字段。
|
|
|
DEADLINE_EXCEEDED |
摘要 | 请求超时,无法快速完成以返回响应。 |
常见原因 |
发出的搜索请求生成的响应过大,或者更改请求过大,无法处理。
|
处理方式 |
等待大约 30 秒后重新尝试发出请求。如果错误仍然存在,请尝试将请求拆分为多个较小的请求,以便更快完成。
|
预防建议 |
查看细分,了解它如何影响响应大小。请注意 gRPC 传输层限制。
|
|
INTERNAL_ERROR |
摘要 | 处理请求时发生了意外。 |
常见原因 |
API 因发生错误而无法正常运行。
|
处理方式 |
使用指数退避时间表重试所有因此错误而失败的请求。
|
预防建议 |
不适用
|
|
TRANSIENT_ERROR |
摘要 | 发生了暂时性内部错误,应执行重试。 |
常见原因 |
当 API 在内部遇到临时问题时,就会发生此错误。
|
处理方式 |
使用指数退避时间表重试所有因此错误而失败的请求。
|
预防建议 |
不适用
|
|
InvalidGrantError
|
invalid_grant (malformed auth code) |
摘要 | 用于交换 OAuth 令牌的授权代码格式有误。 |
常见原因 |
当尝试为已获准访问请求应用的用户生成刷新令牌时,就会发生这种情况。例如,如果针对相同的 OAuth 客户端凭据和授权用户多次运行“生成用户凭据”示例,就可能会发生这种情况。
|
处理方式 |
如需为指定的授权用户和 OAuth 客户端凭据组合重新生成刷新令牌,请撤消现有刷新令牌。请注意,撤消令牌后,该令牌将无法用于访问 Google Ads API,并且用于生成该刷新令牌的所有访问令牌都会失效。
|
预防建议 |
请务必将刷新令牌存储在安全的位置,以免需要重新生成。
|
|
|
RESOURCE_NOT_FOUND |
摘要 | 请求引用的资源未找到。 |
常见原因 |
请求尝试修改或以其他方式引用不存在或已被移除的资源。或者,为资源指定的资源名称格式不正确。
|
处理方式 |
在提交更改请求之前,请使用搜索请求检索现有资源的资源名称。查看我们的客户端库指南,其中包含有关如何以每种受支持的语言构建有效资源名称的文档
|
预防建议 |
请勿手动创建资源名称。使用客户端库提供的某个辅助方法。
|
|
|
EMPTY_LIST |
摘要 | 某必填列表为空。 |
常见原因 |
向 mutate 方法传递了空的操作列表。
|
如何处理 |
不适用
|
预防建议 |
不适用
|
|
|
RESOURCE_EXHAUSTED |
摘要 | 超出了系统频率限额。 |
常见原因 |
不适用
|
处理方式 |
不适用
|
预防建议 |
在请求之间设置短暂的延迟,或者将较多的操作组合到较少的请求中。
|
|
|
TOO_LOW |
摘要 | 某个值低于所允许的下限。 |
常见原因 |
忘记指定 ID,导致传入 0 值。
|
处理方式 |
不适用
|
预防建议 |
留意 API 参考中记录的任何范围限制。
|
|
|
INVALID_INPUT |
摘要 | 请求格式错误。 |
常见原因 |
请求的网址或内容格式不正确。
|
处理方式 |
不适用
|
预防建议 |
不适用
|
|
REQUIRED_FIELD_MISSING |
摘要 | 请求缺少必要的信息。 |
常见原因 |
在尝试添加实体时未提供必要的字段。
|
处理方式 |
记录错误并向用户显示错误消息。错误的 fieldPath 属性会指明缺少哪个字段。
|
预防建议 |
请参阅 API 参考,了解哪些字段是必不可少的。
|
|
|
RESOURCE_LIMIT |
摘要 | 请求尝试创建的资源会导致这些资源的总数超出指定限制。 |
常见原因 |
在某些上下文中,可存在的资源数量存在多种限制。
|
处理方式 |
查看系统限制,确定遇到了哪些限制。重复使用现有资源,或移除资源以腾出空间来创建新资源。
|
预防建议 |
使用搜索查询监控存在限制的资源数量。
|
|
|
TOO_LONG |
摘要 | 分配给指定字段的字符串超出限制。 |
常见原因 |
广告的标题或广告内容描述包含的文字过多。
|
如何处理 |
确定遇到的限制,相应地修改字符串,然后重新发送请求。
|
预防建议 |
请注意字符串长度限制。
|
|
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-02。
[null,null,["最后更新时间 (UTC):2024-12-02。"],[[["This document provides solutions to common errors encountered when using the Google Ads API, focusing on issues related to authentication, authorization, and various Google Ads components."],["Many errors stem from invalid inputs, missing information, or exceeding limits, requiring careful validation of requests and adherence to API guidelines."],["Authentication and authorization errors often involve incorrect credentials, token expiration, or insufficient permissions, necessitating project setup adjustments and access verification."],["Several errors can be mitigated by ensuring unique names, validating inputs, and respecting resource limits, preventing duplication and exceeding system constraints."],["Server-side and transient errors might require retries with exponential backoff, while quota issues necessitate request throttling or combining operations to reduce frequency."]]],[]]