Google Ads API is returning to beta status. Please read our blog post for more details.

在 Google Ads API 中查询

Google Ads 查询语言的语法类似于 AdWords API 中的 AWQL,但有一些细微的变化。

  • 很多您希望在 WHEREORDER BY 子句中使用的字段,可能也正好是 SELECT 子句中需要使用的字段。在您选择的资源上,并不直接需要使用字段;但如果您希望按其他相关资源上的字段进行过滤或排序,则必须明确选择该字段。例如,如果您选择 FROM ad_group,则在 SELECT 子句中不需要使用广告组字段,但如果您希望按相关的广告系列 ID 进行排序,则必须在 SELECT 子句中添加 campaign.id

  • WHERE 子句的有效运算符列表不一样了。受支持的新运算符列表如下所示:

    Google Ads API AdWords API 差异
    BETWEEN 仅在 Google Ads API 中提供。
    CONTAINS ALL CONTAINS_ALL 移除了下划线。
    CONTAINS ANY CONTAINS_ANY 移除了下划线。
    CONTAINS NONE CONTAINS_NONE 移除了下划线。
    CONTAINS NONE DOES_NOT_CONTAIN DOES_NOT_CONTAIN 只需单个值,而 CONTAINS NONE 需要值列表。要镜像 DOES_NOT_CONTAIN 功能,请提供单个元素列表作为 CONTAINS NONE 的值。
    DURING(在 WHERE 子句中) DURING 作为一个单独的子句 DURING 现在是一个运算符,而不是顶级子句。
    LIKE STARTS_WITH LIKE 不区分大小写。
    LIKE STARTS_WITH_IGNORE_CASE LIKE 不区分大小写。
    NOT IN NOT_IN 移除了下划线。
    NOT LIKE 仅在 Google Ads API 中提供。
  • 现在,允许在所有查询中对结果进行排序。

  • 现在,允许在所有查询中限制结果的个数。以前,会有一个 LIMIT 子句与 AdWords API 服务的查询方法一起使用,对页面大小和起始索引进行定义。但在 Google Ads API 中,已不再使用对页面大小和起始索引进行限制的思路了。

  • 现在,分页开始使用页面标记,因此您可以直接从上次中断的位置继续操作,而不是 AWQL 中显示的 LIMIT 子句。您可以在 GoogleAdsService 的请求中指定页面大小。

  • 日期过滤存在差异。再也没有 DURING 子句了;现在的 DURING 变成了可在 WHERE 子句中使用的运算符。使用 DURING 子句过滤字段 date,其作用与 AWQL 中的 DURING 子句相同。例如:

    ... WHERE segments.date DURING LAST_30_DAYS
    ... WHERE segments.date >= '2018-01-01' AND segments.date <= '2018-01-31'
    ... WHERE segments.date >= '2018-01-01'
    
  • 列表的语法已更改。在 AdWords API 中,您使用的是 [] 括号。但在 Google Ads AP 中,请改用 () 括号。例如,您可以使用 () 括号为广告组 Status 值列表指定谓词,如下所示:

    ad_group.status IN (ENABLED, PAUSED)