调用 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 的 Authorization HTTP 标头中使用访问令牌 :
GET /v24/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_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 的 Authorization HTTP 标头中使用 curl 请求返回的访问令牌 :
GET /v24/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN
请求标头
以下部分介绍了向 Google Ads API 发出请求时需要或使用的 HTTP 标头。
开发者令牌
Google Ads API 还要求使用 开发者令牌 才能调用该 API。如果您已有开发者令牌,可以前往 https://ads.google.com/aw/apicenter 查找。系统可能会提示您登录 Google Ads 经理账号。如果您没有开发者令牌,请按照 说明注册开发者 令牌。
您必须在每次调用 Google Ads API 的 developer-token HTTP 标头中添加开发者令牌值:
GET /v24/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。如需详细了解登录客户 ID,请参阅 Google Ads 访问权限模型
指南。
GET /v24/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN
login-customer-id: MANAGER_CUSTOMER_ID
关联的客户 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