쿼리 결과 페이지화

다수의 행이 포함된 결과 집합을 처리하기 위해 판매자 센터 쿼리 언어에서는 페이지로 나누기를 지원합니다. reports.search 요청 본문의 두 가지 매개변수(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로 업데이트합니다.

다음은 응답 본문의 예입니다 (처음 다섯 개의 결과와 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"
}