Phân trang kết quả truy vấn

Để xử lý các tập kết quả chứa một số lượng lớn hàng, Ngôn ngữ truy vấn Merchant Center hỗ trợ phân trang. Có 2 thông số để kiểm soát việc phân trang trong nội dung yêu cầu reports.search: page_sizepage_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ố lượng hàng tối đa cần truy xuất trong một yêu cầu duy nhất. Nếu bạn không chỉ định, hệ thống sẽ tự động đặt giá trị này 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 chỉ định, trang đầu tiên sẽ được trả về. Để truy xuất trang tiếp theo, bạn nên cung cấp giá trị nhận được dưới dạng next_page_token từ lệnh gọi reports.search trước đó dưới dạng page_token. Khi 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 không mong muố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_idspage_size được đặt thành 200. Sau đó, tậ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 hãy 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 đó.

Sau đây là ví dụ về nội dung phản hồi (5 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"
}