我正在尝试使用 Google-ads-API。运行 Ubuntu 20.04、Python 3.9(客户端库工作的最低要求是 3.6),使用 google-ads-api V6。这是我的痛苦故事。
我创建了一个测试管理员帐户[A],生成了开发人员的令牌,并拥有使用 API 的“测试级别”访问权限,这很棒。测试级别允许您调用有关处理测试帐户(而非生产)的信息\报告的 API。
另外,检查了帐户 [A] 的整个 Oauth2 凭据,允许测试电子邮件,运行“examples/authentication/authenticate_in_web_application.py”后,我被重定向到一个网页,允许我的主测试管理器帐户访问第二个测试管理器帐户[B](按照文档的指示,除了带有开发者令牌的主帐户[A]之外,创建另一个测试管理员帐户[B]),从此OAuth2提示成功生成刷新令牌,以允许帐户[B] ] 来管理我的帐户 [A],将刷新令牌添加到我的 google-ads.yaml 文件中,一切都很好。
当我从示例中运行这个 .py 文件时
python3 google-ads-python/examples/account_management/list_accessible_customers.py
结果是这样的:
Total results: 2
Customer resource name: "customers/1792845307"
Customer resource name: "customers/5341438919"
太棒了,花了 2 天才走到这一步。现在已经两天了,试图克服以下问题。
请注意,上述结果均来自我的帐户 [B],获取这些结果的 API 请求是在 google-ads.yaml 文件中设置帐户 [A] 的开发者令牌时发出的。
因此,.yaml 文件目前包含云控制台 (.json) 文件上帐户 [A] 的开发人员帐户令牌、帐户 [A] 的 OAuth 凭据。由步骤 1 中的身份验证生成的帐户 [B] 的刷新令牌。
继续,通过运行“get_account_information.py”(也在示例文件夹中),并将上述结果中的帐户之一传递给它[强制标志 --c,这是客户端 ID),我不断获得访问权限拒绝错误:
python3 get_account_information.py --c 5341438919
我明白了:
Request with ID "LhKeU9ZI4zZgnp05VSHbjg" failed with status "PERMISSION_DENIED" and includes the following errors:
Error with message "User doesn't have permission to access customer. Note: If you're accessing a client customer, the manager's customer id must be set in the 'login-customer-id' header. See https://developers.google.com/google-ads/api/docs/concepts/call-structure#cid".```
我尝试设置“经理的客户 ID 必须在‘登录客户 ID’中设置”,此登录客户 ID 位于 .yaml 文件中。我已尝试将其设置为步骤 2 中调用的结果。我还尝试从帐户 [A] 添加帐户经理 ID。我尝试通过 google-ads 的 UI 手动添加帐户 [A] 作为帐户 [B] 的帐户经理,然后尝试为所有这些链接过程中的所有帐户再次设置“登录客户 ID”,但惨败。
我面临示例目录中所有 .py 文件的访问被拒绝的情况。试图让这个漫长的过程尽可能彻底和详细,希望它能有意义。如果您尝试过使用此 API,您就会明白我的意思,并且我期待任何与此相关的见解\帮助\输入,即使您尚未使用过此 API。
在文档中,指南说,创建测试开发人员经理帐户后,该帐户下面的所有帐户也将是测试帐户,并且将被指定为“TEST”的红色标签,否则它是生产帐户。上面的两个帐户 [A]+[B] 都是测试经理\开发人员帐户,但没有任何红色标签表明它们是测试,我尝试在它们下创建的任何子帐户也没有。所以我想知道我面临的错误\障碍是否是由于它们没有被指定为测试帐户?但为什么它们在第 2 步中被列为“可访问帐户”。
多谢!如果需要任何其他信息,我将提供。