使用 Google Ads API 的 REST 接口时,您处理的是 Google Ads API 的 .proto 描述符文件中定义的相同资源和类型的 JSON 表示形式。JSON 编码方案遵循协议缓冲区语言指南的 JSON 映射部分中所述的规范编码方案。
一般来说,与服务之间往来的所有顶级消息都是单个 JSON 对象。大多数 mutate 请求都包含一个 operations
数组,该数组本身包含许多 create
、update
或 delete
操作。同样,search
响应是 JSON 对象,其中包含一个 results
数组,其中包含查询的结果集。
标识符从 snake_case(在协议缓冲区中)转换为 JSON 中的 lowerCamelCase。不过,在使用 search
或 searchStream
发送 Google Ads 查询语言查询时,此规则有一个值得注意的例外情况。无论您使用哪个接口,查询语言本身都使用蛇形命名法。不过,REST 中的查询结果会以普通 JSON 对象的形式返回,并且其标识符采用小驼峰式命名法。
例如,用于提取账号中有效关键字列表的查询在查询本身中使用蛇形命名法 (ad_group_criterion
,而非 adGroupCriterion
):
POST /v21/customers/CUSTOMER_ID/googleAds:searchStream HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "query": "SELECT ad_group_criterion.keyword.text FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'" }
不过,响应是对象的 JSON 表示形式(由于此请求使用 searchStream
,因此封装在 JSON 数组中),并使用驼峰式标识符 adGroupCriterion
:
[ { "results": [ { "adGroupCriterion": { "resourceName": "customers/1842689525/adGroupCriteria/55771861891~10003060", "keyword": { "text": "pay per click" } } }, ... ] } ]