Để xử lý các tập hợp kết quả chứa nhiều hàng, Ngôn ngữ truy vấn của Merchant Center có hỗ trợ tính năng phân trang. Có 2 tham số để kiểm soát việc phân trang trong nội dung yêu cầu reports.search
: page_size
và page_token
, ngoài một trường đầu ra trong nội dung phản hồi: next_page_token
.
Tham số page_size
chỉ định số hàng tối đa cần truy xuất trong một yêu cầu. Nếu bạn không chỉ định, thì Analytics sẽ tự động đặt thành kích thước trang tối đa là 1.000 hàng.
Tham số page_token
chỉ định mã thông báo của trang cần trả về. Nếu không được chỉ định, trang đầu tiên sẽ được trả về. Để truy xuất trang tiếp theo, giá trị nhận được dưới dạng next_page_token
từ lệnh gọi reports.search
trước đó phải được cung cấp dưới dạng page_token
. Khi một page_token
được cung cấp, tất cả các tham số khác trong lệnh gọi phải khớp với lệnh gọi trước đó đã trả về page_token
để tránh hành vi ngoài dự kiến.
Ví dụ:
SELECT
segments.offer_id,
metrics.impressions,
metrics.clicks,
metrics.ctr
FROM MerchantPerformanceView
WHERE segments.date BETWEEN '2021-12-01' AND '2021-12-31'
Đối với truy vấn này, giả sử tài khoản chứa 100.000 offer_ids
và page_size
được đặt thành 200. Sau đó, tập hợp kết quả sẽ chứa 200 đối tượng ReportRow
trong phản hồi đầu tiên, cùng với một next_page_token
.
Để truy xuất 200 hàng tiếp theo, hãy gửi lại yêu cầu với cùng kích thước trang, nhưng cập nhật page_token
của yêu cầu thành next_page_token
của phản hồi trước đó.
Dưới đây là ví dụ về nội dung phản hồi (năm kết quả đầu tiên cùng với 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"
}