쿼리 결과 페이지화

행이 많은 결과 집합을 처리하기 위해 Merchant Center Query Language는 페이지로 나누기를 지원합니다. reports.search 요청 본문에서 페이지로 나누기를 제어하는 데 사용할 수 있는 매개변수 2개(page_sizepage_token)와 응답 본문의 출력 필드 1개(next_page_token)가 있습니다.

page_size 매개변수는 단일 요청에서 가져올 최대 행 수를 지정합니다. 지정하지 않으면 최대 페이지 크기인 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으로 설정되어 있다고 가정합니다. 그러면 결과 세트에는 첫 번째 응답에 next_page_token와 함께 200개의 ReportRow 객체가 포함됩니다.

다음 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"
}