对指标和细分字段的查询可以发送到 reports.search
方法。如需使用 Merchant Center 查询语言构建查询,您需要先使用语言语法编写查询。查询由多个子句组成:
SELECT
FROM
WHERE
ORDER BY
LIMIT
子句使用字段名称、表名、运算符、条件和排序,帮助您选择所需的数据。在合并为单个查询后,您可以使用 Google Content API for Shopping 发出请求。我们来看看如何使用每个子句。
条款
SELECT
SELECT
子句指定要在请求中提取的一组字段。SELECT
接受以英文逗号分隔的细分字段和指标列表,从而在响应中返回值。SELECT
子句在查询中是必需子句。
下面是一个从给定表中选择点击指标的示例查询:
SELECT
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
您还可以在单个请求中查询不同的字段类型:
SELECT
segments.date,
segments.program,
metrics.impressions,
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
细分字段
segments.date
segments.program
指标
metrics.impressions
metrics.clicks
由于以下限制,SELECT
子句中不允许使用某些字段:
- 查询至少一个指标字段的细分字段。
有关上述情况的信息,请参阅我们的参考文档。
FROM
FROM
子句在请求中指定要从中提取数据的表。FROM
子句中的表定义了给定查询的所有其他子句都可以使用哪些字段。在 FROM
子句中只能指定一个表。目前仅支持 MerchantPerformanceView 表。在对 reports
服务上的 search
方法进行查询时,必须使用 FROM
子句。
WHERE
WHERE
子句指定在为请求过滤数据时要应用的条件。使用 WHERE
子句时,可以指定一个或多个条件,并使用 AND
将其分隔开。每个条件都应遵循 field_name Operator value
格式。任何细分字段都可以在 WHERE
子句中使用,但指标字段需要在 SELECT
子句中指定才能在 WHERE
子句中使用。在查询中必须使用 WHERE
子句,因为您必须始终指定希望返回性能数据的日期范围。
以下示例演示了如何使用 WHERE
返回指定时间段的指标:
SELECT
segments.offer_id,
metrics.impressions
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
您可以结合使用多个条件来过滤数据。此示例将返回在给定 30 天内点击次数大于 100 的 SHOPPING_ADS 计划中,每个优惠的点击次数。
SELECT
segments.offer_id,
segments.program,
metrics.clicks
FROM MerchantPerformanceView
WHERE metrics.clicks > 100
AND segments.program = SHOPPING_ADS
AND segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’;
在以下查询中,您会发现选择了 segments.date
。无论您是否选择 segments.date
,在检索效果数据时,都必须在 WHERE
子句中提供有限的日期范围。
SELECT
segments.date,
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
在过滤时,请务必注意运算符是否区分大小写。
如需查看运算符的完整列表,请参阅语言语法。
ORDER BY
ORDER BY
子句指定结果的返回顺序。这样一来,您就可以根据字段名称按升序或降序排列相关数据。每种排序都指定为 field_name
,后跟 ASC
或 DESC
。如果 ASC
和 DESC
均未指定,则顺序默认为 ASC
。只有 SELECT
子句中指定的字段才能用在 ORDER BY
子句中。ORDER BY
子句在查询中是可选子句。
以下查询按点击次数从高到低对返回的行进行排序:
SELECT
segments.offer_id,
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
ORDER BY metrics.clicks DESC
您可以使用逗号分隔列表在 ORDER BY
子句中指定多个字段。系统将按照查询中指定的顺序进行排序。
例如,在以下查询中,结果按 offer_id
升序排序,接着按展示次数降序排序,最后按点击次数降序排序:
SELECT
segments.offer_id,
metrics.impressions,
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
ORDER BY
segments.offer_id,
metrics.impressions DESC,
metrics.clicks DESC
LIMIT
LIMIT
子句用于指定要返回的结果数。
如果您只对摘要感兴趣,这会非常有用。
例如,LIMIT
可用于限制以下查询的结果总数:
SELECT
segments.program,
segments.offer_id,
metrics.impressions
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
ORDER BY metrics.impressions DESC
LIMIT 50