本指南介绍了所有 API 调用的通用结构。
如果您使用客户端库与 API 进行互动,则无需操心底层请求的详细信息;但在进行测试和调试时,对它们有所了解还是很有用的。
Google Ads API 是一个带有 REST 绑定的 gRPC API。这意味着有两种方法可以调用此 API。
[首选] 以协议缓冲区的形式创建请求的正文,使用 HTTP/2 将其发送到服务器,然后将响应反序列化到协议缓冲区,并解析结果。我们的大多数文档都介绍了如何使用 gRPC。
[可选] 以 JSON 对象的形式创建请求的正文,使用 HTTP 1.1 将其发送到服务器,然后将响应反序列化为 JSON 对象,并解析结果。如需详细了解如何使用 REST,请参阅 REST 接口指南。
资源名称
API 中的大多数对象都通过其资源名称字符串进行标识。使用 REST 接口时,这些字符串还可用作网址。如需了解其结构,请参阅 REST 接口的资源名称。
复合 ID
如果对象的 ID 不具有全局唯一性,则在构建该对象的复合 ID 时,要在前面加上其父级的 ID 和波浪符号 (~)。
例如,某个广告组广告 ID 不具有全局唯一性,我们需要在前面加上其父级对象(即广告组)的 ID,从而形成具有唯一性的复合 ID,具体如下:
123
的AdGroupId
+~
+45678
的AdGroupAdId
=123~45678
的复合广告组广告 ID。
请求标头
这指的是请求中伴随正文的 HTTP 标头(或 grpc 元数据):
授权
您需要以 Authorization: Bearer YOUR_ACCESS_TOKEN
格式添加 OAuth2 访问令牌,以标识代表客户操作的经理账号或直接管理自己账号的广告客户。有关如何获取访问令牌的说明,请参阅 OAuth2 指南。访问令牌在获得后一小时之内有效;过期后,您可以刷新访问令牌来获取新令牌。请注意,我们的客户端库会自动刷新过期令牌。
developer-token
开发者令牌是由 22 个字符组成的字符串,用于唯一标识 Google Ads API 开发者。开发者令牌字符串示例如下:ABcdeFGH93KL-NOPQ_STUv
。开发者令牌应采用 developer-token : ABcdeFGH93KL-NOPQ_STUv
的形式。
login-customer-id
这是在请求中使用的授权客户的客户 ID,它不带连字符 (-
)。如果您通过经理账号访问客户账号,则此标头是必填字段,且必须设置为经理账号的客户 ID。
https://googleads.googleapis.com/v19/customers/1234567890/campaignBudgets:mutate
设置 login-customer-id
的作用就相当于在登录或点击右上角的个人资料图片后选择 Google Ads 界面中的账号。如果您未添加此标头,则它默认为执行操作的客户。
linked-customer-id
只有第三方应用分析工具提供商在将转化数据上传到关联的 Google Ads 账号时才会使用此标头。
假设账号 A
的用户通过 ThirdPartyAppAnalyticsLink
向账号 B
授予对其实体的读取和修改权限。关联后,账号 B
的用户可以针对账号 A
进行 API 调用,具体取决于关联提供的权限。在这种情况下,对账号 A
的 API 调用权限由指向账号 B
的第三方关联决定,而不是由其他 API 调用中使用的经理账号关系决定。
第三方应用分析工具提供商会按如下方式进行 API 调用:
linked-customer-id
:上传数据的第三方应用分析账号(账号B
)。customer-id
:上传数据到的 Google Ads 账号(账号A
)。login-customer-id
和Authorization
标头:用于标识有权访问账号B
的用户的值组合。
响应标头
以下标头(或 grpc trailing-metadata)随响应正文一起返回。出于调试目的考虑,我们建议您记录这些值。
request-id
request-id
是对请求进行唯一标识的字符串。