Google Ads API is returning to beta status. Please read our blog post for more details.

服务帐号

本节讨论如何使用服务帐号访问 Google Ads API。

服务帐号属于您的应用,而不属于个别最终用户。服务帐号允许网络应用和 Google 服务之间进行服务器到服务器的互动。您的应用会代表服务帐号调用 Google API,因此用户不会直接参与。

Google Ads API 允许通过 G Suite 网域访问服务帐号。

服务帐号使用的是无需人工授权的 OAuth2 流程,但需使用只有您的应用可访问的密钥文件。

使用服务帐号主要有以下两个优势:

  • 对 Google API 访问进行授权是以配置步骤的形式完成的,从而避免了与其他 OAuth2 流程有关的复杂性,因为这些流程需要用户互动。
  • OAuth2 断言流程允许您的应用在必要时模拟其他用户。

前提条件

设置服务帐号访问权限

首先,您必须在 Google API 控制台中生成服务帐号密钥:

  1. 登录您的 G Suite 帐号后,打开 Google API 控制台

  2. 点击屏幕顶部的选择项目,然后点击新建项目。提供所需信息,然后点击创建。稍等一会,新项目就会生效。

  3. 从左上角的菜单中选择 IAM 和管理员,然后选择服务帐号

  4. 点击顶部的创建服务帐号

  5. 输入服务帐号的名称。

  6. 选中提供新的私钥,然后选择 JSON 作为密钥类型。

  7. 选中启用 G Suite 全网域委派功能,然后在同意屏幕中输入产品名称。

  8. 点击创建。JSON 密钥文件将下载到您的计算机。将其存储在只有您可以访问的安全位置。

  9. 此时,新的服务帐号会显示在项目的服务帐号页面上。

安全考虑

考虑到 G Suite 的网域级控制,请务必妥善保护相关的密钥文件,因为该文件会允许服务帐号访问其已获得授权的 Google 服务。因为该服务帐号能够模拟网域中的任何用户,所以尤其需要强调这一点。

另一个好的做法是(使用下一节介绍的范围字段)让每个服务帐号只访问一个 Google API。这是一种先发制人的措施,可在服务帐号的密钥文件已泄露的情况下,限制攻击者访问的数据量。

授予模拟能力

执行以下步骤,将模拟能力授予服务帐号:

  1. 转到以下网址,将已获授权的新 API 客户端添加到您的 G Suite 网域中:

    https://admin.google.com/YOUR_DOMAIN/ManageOauthClients
    
  2. 使用您在上述步骤中为全网域委派启用服务帐号时生成的 JSON 文件中的客户端 ID,将已获授权的新 API 客户端添加为客户端名称

  3. 输入以下内容作为 API 范围:

    https://www.googleapis.com/auth/adwords
    
  4. 对于您要授予模拟权的所有其他服务帐号,重复此过程。

现在,您就可以使用服务帐号通过 OAuth2 断言流程访问自己的 Google Ads 帐号。

配置客户端库

请在下面选择您的语言,了解如何配置您的客户端库。

Java

不支持。

.NET

OAuth 服务帐号流程

Python

不支持。

PHP

不支持。

Ruby

不支持。