授权和 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 客户端后,请按照桌面应用流程说明网站应用流程说明生成刷新令牌访问令牌

使用服务账号

按照服务账号指南中的常规说明,为 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 /v19/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 /v19/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 /v19/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