행이 많은 결과 집합을 처리하기 위해 Merchant Center Query Language는 페이지로 나누기를 지원합니다. reports.search
요청 본문에서 페이지로 나누기를 제어하는 데 사용할 수 있는 매개변수 2개(page_size
및 page_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"
}