本指南将介绍如何使用服务账号访问 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 账号。
客户端库配置
请在下面选择您的语言,了解如何配置您的客户端库。
Java
.NET
Python
PHP
Ruby
Perl
安全疑虑
由于服务帐号具有针对您的 Google Workspace 网域的网域级委派控制,因此请务必保护密钥文件(该密钥文件允许服务帐号访问其获授权的 Google 服务)。由于该服务帐号能够模拟网域中的任何用户,因此尤其如此。
另一个好的做法是仅允许服务帐号访问所需的最基本 API 集。这是一种先发制人措施,可在服务帐号的密钥文件被盗时,限制攻击者可以访问的数据量。