指標和區隔欄位的查詢可傳送至 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’
您可以合併多個條件來篩選資料。這個範例將傳回 SHOPPING_ADS 計畫的個別產品點擊次數,其中指定 30 天內的點擊次數大於 100。
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