クエリ結果にページを設定する

多数の行を含む結果セットを処理するため、Merchant Center のクエリ言語はページネーションをサポートしています。reports.search リクエスト本文でページネーションを制御するには、レスポンス本文の 1 つの出力フィールドと、next_page_token の 2 つのパラメータ(page_sizepage_token)を使用できます。

page_size パラメータでは、1 回のリクエストで取得する最大行数を指定します。指定しない場合は、最大ページサイズ(1, 000 行)に自動的に設定されます。

page_token パラメータは、返すページのトークンを指定します。指定しない場合は、最初のページが返されます。後続のページを取得するには、前回の reports.search 呼び出しから next_page_token として受け取った値を page_token として指定する必要があります。page_token を指定する場合、予期しない動作を避けるため、呼び出しのその他すべてのパラメータは、page_token を返した前回の呼び出しと一致する必要があります。

例:

SELECT
  segments.offer_id,
  metrics.impressions,
  metrics.clicks,
  metrics.ctr
FROM MerchantPerformanceView
WHERE segments.date BETWEEN '2021-12-01' AND '2021-12-31'

このクエリでは、アカウントに 100,000 の offer_ids が含まれ、page_size が 200 に設定されているとします。結果セットには、最初のレスポンスに含まれる 200 個の ReportRow オブジェクトと next_page_token が含まれます。

次の 200 行を取得するには、同じページサイズでリクエストを再送信します。ただし、リクエストの page_token を前のレスポンスの next_page_token に更新します。

レスポンスの本文の例を次に示します(最初の 5 つの結果と next_page_token)。

{
  "results": [
    {
      "segments": {
        "offerId": "12345"
      },
      "metrics": {
        "clicks": "0",
        "impressions": "59",
        "ctr": 0
      }
    },
    {
      "segments": {
        "offerId": "12346"
      },
      "metrics": {
        "clicks": "9625",
        "impressions": "276695",
        "ctr": 0.034785594246372356
      }
    },
    {
      "segments": {
        "offerId": "12347"
      },
      "metrics": {
        "clicks": "148",
        "impressions": "22045",
        "ctr": 0.0067135404853708325
      }
    },
    {
      "segments": {
        "offerId": "12348"
      },
      "metrics": {
        "clicks": "11",
        "impressions": "1100",
        "ctr": 0.01
      }
    },
    {
      "segments": {
        "offerId": "12349"
      },
      "metrics": {
        "clicks": "569",
        "impressions": "62977",
        "ctr": 0.0090350445400701838
      }
    },
    ...
  ],
  "nextPageToken": "CMgB"
}