指標フィールドとセグメント フィールドのクエリは、reports.search
メソッドに送信できます。Merchant Center のクエリ言語でクエリを作成するには、まず言語文法を使用してクエリを作成する必要があります。クエリはいくつかの句で構成されています。
SELECT
FROM
WHERE
ORDER BY
LIMIT
句では、フィールド名、テーブル名、演算子、条件、順序を使用して、目的のデータを選択できます。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.date
segments.program
指標
metrics.impressions
metrics.clicks
次の制限により、一部のフィールドは SELECT
句で使用できません。
- 指標フィールドを 1 つもないセグメント フィールドをクエリする場合。
上記の状態に関連する情報については、リファレンス ドキュメントをご覧ください。
FROM
FROM
句には、リクエストでデータを取得するテーブルを指定します。FROM
句のテーブルは、指定されたクエリの他のすべての句で使用できるフィールドを定義します。FROM
句で指定できるテーブルは 1 つのみです。現在、MerchantPerformanceView テーブルのみがサポートされています。reports
サービスの search
メソッドに対するクエリでは、FROM
句が必須です。
WHERE
WHERE
句は、リクエストのデータをフィルタするときに適用する条件を指定します。WHERE
句を使用する場合は、AND
を使用して 1 つ以上の条件を指定し、それらを区切ることができます。各条件は、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’
複数の条件を組み合わせてデータをフィルタできます。この例では、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