指標フィールドとセグメント フィールドに対するクエリは、reports.search メソッドに送信できます。Merchant Center クエリ言語でクエリを作成するには、まず言語文法を使用してクエリを作成する必要があります。クエリは複数の句で構成されます。
SELECTFROMWHEREORDER BYLIMIT
句では、フィールド名、テーブル名、演算子、条件、並べ替えを使用して、目的のデータを選択できます。1 つのクエリにまとめたら、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’
1 つのリクエストで異なるフィールド タイプをクエリすることもできます。
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 句で使用できません。
- 少なくとも 1 つの指標フィールドなしでセグメント フィールドをクエリする。
上記の条件に関連する情報は、リファレンス ドキュメントで確認できます。
FROM
FROM 句は、リクエストでデータを取得するテーブルを指定します。FROM 句のテーブルは、特定のクエリの他のすべての句で使用できるフィールドを定義します。FROM 句に指定できるテーブルは 1 つだけです。現在、MerchantPerformanceView テーブルのみがサポートされています。reports サービスの search メソッドに対するクエリでは、FROM 句は必須です。
WHERE
WHERE 句は、リクエストのデータをフィルタするときに適用する条件を指定します。WHERE 句を使用する場合、1 つ以上の条件を AND で区切って指定することができます。各条件は、field_name Operator value のパターンに従う必要があります。セグメント フィールドは WHERE 句で使用できますが、指標フィールドを WHERE 句で使用するには、SELECT 句で指定する必要があります。クエリでは 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