调用 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 命令行工具或 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 /v26/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 的每次 API 调用的 Authorization HTTP 标头中使用 curl 请求返回的访问令牌:
GET /v26/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 /v26/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
login-customer-id: MANAGER_CUSTOMER_ID
关联的客户 ID
合作伙伴(例如第三方应用分析工具提供商或数据合作伙伴)在对关联的 Google Ads 账号执行操作时,会使用“关联的客户 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