调用 Google Ads API 时,您需要 OAuth 2.0 凭据。如果您使用 Google Ads 经理账号进行 API 调用,还需要在每个请求中指定 login-customer-id 标头。本页介绍了如何设置这些值,并记录了在使用 REST 接口时发送和接收的几个额外的特定于 API 的 HTTP 标头。
OAuth 2.0 凭证
Google Ads API 使用 OAuth 2.0 对 API 请求进行授权。同时支持 OAuth 2.0 用户身份验证流程和服务账号流程。如需了解详情,请参阅 Google Ads API 中的 OAuth 2.0。
如果您是 Google API 新手,可以在为应用编写代码之前,使用 gcloud CLI 或 OAuth 2.0 Playground 试用 OAuth 2.0 凭据和 Google Ads API。
我们建议您使用 https://oauth.net/code/ 提供的 OAuth 2.0 库之一来实现 OAuth 2.0 授权工作流。不过,我们列出了 curl 指令,以防您需要自行实现。
服务账号
按照相关步骤为 Google Ads API 配置 Google Cloud 项目。记录服务账号电子邮件地址和服务账号密钥。接下来,按照服务账号指南中的通用说明设置服务账号,以便访问您的 Google Ads 账号。
用户身份验证
按照相关步骤为 Google Ads API 配置 Google Cloud 控制台项目。记录客户端 ID 和客户端密钥。接下来,按照桌面应用流程说明或Web 应用流程说明生成刷新令牌和访问令牌。用于 Google Ads API 访问权限的 scope 为 https://www.googleapis.com/auth/adwords。
生成新的访问令牌
服务账号
当您拥有服务账号电子邮件地址和服务账号密钥后,请按照将 OAuth 2.0 用于服务器到服务器应用指南生成 JWT 声明集,然后交换该声明集以获取 OAuth 2.0 访问令牌。请务必在按照指南操作时选择 HTTP/REST 标签页。用于 Google Ads API 访问的 OAuth 2.0 scope 为 https://www.googleapis.com/auth/adwords。此外,在构建 JWT 声明集时,您可以跳过 sub 参数,因为设置步骤会授予服务账号对 Google Ads 账号的直接访问权限,从而避免模拟 Google Ads 用户的需求。
然后,您可以在对 Google Ads API 的每次 API 调用中使用 Authorization HTTP 标头中的访问令牌:
GET /v25/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
用户身份验证
获得 OAuth 2.0 客户端 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 时,使用 curl 请求返回的访问令牌,并将其放在 Authorization HTTP 标头中:
GET /v25/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
请求标头
以下部分介绍了向 Google Ads API 发出请求时需要或使用的 HTTP 标头。
登录客户 ID
对于经理账号向客户账号发出的 Google Ads API 调用(即以经理账号身份登录,向其某个客户账号发出 API 调用),您还需要提供 login-customer-id HTTP 标头。此值表示发出 API 调用的经理的 Google Ads 客户 ID。
包含此标头相当于在登录后或点击页面右上角的个人资料图片后,在 Google Ads 界面中选择账号。指定客户 ID 时,请务必移除所有连字符 (—)。例如:1234567890,而不是 123-456-7890。如需详细了解登录客户 ID,请参阅 Google Ads 访问模式指南。
GET /v25/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
login-customer-id: MANAGER_CUSTOMER_ID
关联的客户 ID
当合作伙伴(例如第三方应用分析服务提供商或数据合作伙伴)对关联的 Google Ads 账号执行操作时,会使用“Linked customer ID”标头。 如需了解详情,请参阅 API 调用结构指南。
Authorization: Bearer ACCESS_TOKEN
login-customer-id: PARTNER_CUSTOMER_ID
linked-customer-id: ADVERTISER_CUSTOMER_ID
响应标头
API 的 HTTP 响应中会返回以下标头。
请求 ID
request-id 是用于唯一标识 API 请求的字符串。在调试或排查特定 API 调用方面的问题时,request-id 是一个重要的标识符,在联系 Google 开发者支持团队时,请务必提供此标识符。
request-id: 2a5Cj89VV7CNhya1DZjjrC