服务账号
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
本指南将介绍如何使用服务帐号访问 Google Ads API。
服务帐号是属于您的应用而不是某个最终用户的帐号。服务帐号支持 Web 应用与 Google 服务之间的服务器到服务器交互。您的应用会代表服务帐号调用 Google API,因此用户不会直接参与。
服务账号使用的是无需人工授权的 OAuth2 流程,但需使用只有您的应用可访问的密钥文件。
使用服务账号主要有以下两个优势:
- 对 Google API 访问进行授权是以配置步骤的形式完成的,从而避免了与其他 OAuth2 流程有关的复杂性,因为这些流程需要用户互动。
- 通过 OAuth2 断言流程,您的应用可以在必要时模拟其他用户。
前提条件
- 您拥有的 Google Workspace 网域,例如
mydomain.com
或 mybusiness.com
。
- Google Ads API 开发者令牌以及(可选的)测试账号。
- 适用于您使用的语言的客户端库。
- 已为 Google Ads API 配置 Google API 控制台项目。
- 对您要访问的 Google Ads 帐号拥有权限的 Google Ads 用户。
Google Ads 不支持在不进行模拟的情况下使用服务账号。
服务账号访问权限设置
由于用户模拟仅在网域级别控制,因此通过 Google OAuth2 使用服务帐号和断言流程需要您向 Google Workspace 注册自己的网域。然后,您的应用及其用户就可以模拟网域中的任何用户了。
首先创建服务帐号和凭据。
以 JSON 格式下载服务帐号密钥,并记下服务帐号 ID。
请与您的网域管理员分享服务帐号 ID 和 Google Ads API 范围 (https://www.googleapis.com/auth/adwords
)。
请求网域管理员将全网域授权委派给您的服务帐号。
如果您是网域管理员,请按照帮助中心说明操作。
您现在可以通过 OAuth2 断言流程,使用服务帐号访问您的 Google Ads 帐号。
客户端库配置
请在下面选择您的语言,了解如何配置您的客户端库。
安全考量
由于服务帐号拥有 Google Workspace 网域的网域级委派控制,因此请务必妥善保护相应的密钥文件,该文件允许服务帐号访问其获得授权的 Google 服务。因为该服务帐号能够模拟网域中的任何用户,所以尤其需要注意这一点。
另一个好的做法是仅允许服务帐号访问所需的最低限度的 API 集。这是一种先发制人的措施,可在服务帐号的密钥文件被盗时限制攻击者可以访问的数据量。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-06-27。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2024-06-27\u3002"}
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-06-27。"]]