授权和 HTTP 标头

视频:身份验证

在调用 Google Ads API 时,您需要 OAuth 2.0 应用凭据和开发者令牌。如果您使用 Google Ads 经理帐号进行 API 调用,则还需要为每个请求指定 login-customer-id 标头。本页面介绍了如何设置这些值,并记录了使用 REST 接口时发送和接收的几个其他特定于 API 的 HTTP 标头。

OAuth 2.0 凭据

Google Ads API 使用应用凭据识别和授权 API 请求。OAuth 2.0 客户端和服务帐号均可配置。如需详细了解如何配置客户端授权,请参阅 Google Ads API 中的 OAuth2

如果您刚开始接触 Google API,可以先使用 oauth2lOAuth 2.0 Playground,对应用凭据和 Google Ads API 进行实验,然后再为您的应用编写代码。

使用桌面应用流程或 Web 应用流程

按照相应步骤为 Google Ads API 配置 Google API 控制台项目。记录客户端 ID客户端密钥,然后返回此页面。

创建 OAuth 客户端后,请按照桌面应用流程说明Web 应用流程说明生成刷新令牌访问令牌

使用服务账号

按照服务帐号指南中的常见说明,为 Google Ads API 设置服务帐号访问权限。

设置用于访问 Google Ads 账号的服务账号后,请按照针对服务器对服务器应用使用 OAuth 2.0 指南,确保选择 HTTP/REST 标签页。用于 Google Ads API 访问的 scopehttps://www.googleapis.com/auth/adwords

生成新的访问令牌

有了客户端 ID客户端密钥刷新令牌后,您便可以使用 curl 命令行工具生成新的访问令牌,以用于 API 调用:

curl \
  --data "grant_type=refresh_token" \
  --data "client_id=CLIENT_ID" \
  --data "client_secret=CLIENT_SECRET" \
  --data "refresh_token=REFRESH_TOKEN" \
  https://www.googleapis.com/oauth2/v3/token

然后,您可以在对 Google Ads API 的每个 API 调用的 Authorization HTTP 标头中使用 curl 请求返回的访问令牌

GET /v17/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

请求标头

开发者令牌

Google Ads API 还需要开发者令牌才能调用 API。您可以直接在 Google Ads 界面中为您的经理帐号申请令牌。如需详细了解如何设置开发者令牌,请参阅获取您的开发者令牌

您需要在对 Google Ads API 的每个 API 调用的 developer-token HTTP 标头中添加您的开发者令牌值:

GET /v17/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

登录客户 ID

对于经理对客户帐号进行的 Google Ads API 调用(即以管理员身份登录以对其某个客户帐号进行 API 调用时),您还需要提供 login-customer-id HTTP 标头。此值表示进行 API 调用的经理的 Google Ads 客户 ID。

添加此标头相当于在登录或点击页面右上角的个人资料图片后,在 Google Ads 界面中选择帐号。指定客户 ID 时,请务必移除所有连字符 (—),例如:1234567890,而不是 123-456-7890

GET /v17/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN
login-customer-id: MANAGER_CUSTOMER_ID

关联的客户 ID

只有第三方应用分析工具在将转化数据上传到关联的 Google Ads 帐号时使用此标头。如需了解详情,请参阅 API 调用结构指南

...
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN
login-customer-id: MANAGER_CUSTOMER_ID
linked-customer-id: LINKED_CUSTOMER_ID

响应标头

API 的 HTTP 响应中会返回以下标头。

要求 ID

request-id 是唯一标识 API 请求的字符串。在调试或排查特定 API 调用的问题时,request-id 是一个重要标识符,在联系 Google 开发者支持团队时可以方便地使用。

request-id: 2a5Cj89VV7CNhya1DZjjrC