指標和區隔欄位的查詢可以傳送至 reports.search 方法。如要以 Merchant Center 查詢語言建構查詢,請先使用語言文法撰寫查詢。查詢由多個子句組成:
SELECTFROMWHEREORDER BYLIMIT
子句會使用欄位名稱、資料表名稱、運算子、條件和排序,協助您選取所需資料。將多個查詢合併為單一查詢後,即可使用 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.datesegments.program
指標
metrics.impressionsmetrics.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。ORDER BY 子句只能使用 SELECT 子句中指定的欄位。查詢中的 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