Разбиение результатов запроса на страницы

В языке запросов Merchant Center есть следующие поля для разбивки на страницы:

  • pageSize: максимальное количество строк, которое можно получить в одном запросе. По умолчанию используется максимальный размер страницы – 1000 строк.
  • pageToken: токен страницы, которую нужно вернуть. Если значение не указано, возвращается первая страница.
  • nextPageToken – значение pageToken, которое позволяет получить следующую страницу из вызова accounts.reports.search.

Если указан параметр pageToken, все остальные параметры в вызове должны соответствовать предыдущему вызову, чтобы избежать непредвиденного поведения.

Например, если вы выполните следующий запрос в аккаунте, в котором есть 100 000 значений offer_id, а для параметра pageSize задано значение 200, то в первом ответе будет только 200 объектов ReportRow и nextPageToken:

SELECT offer_id, impressions, clicks, click_through_rate
FROM product_performance_view
WHERE date BETWEEN '2023-12-01' AND '2023-12-31'

Ниже приведен пример ответа (первые пять результатов и nextPageToken):

{
  "results": [
    {
      "productPerformanceView": {
        "offerId": "12345",
        "clicks": "0",
        "impressions": "59",
        "clickThroughRate": 0
      }
    },
    {
      "productPerformanceView": {
        "offerId": "12346",
        "clicks": "9625",
        "impressions": "276695",
        "clickThroughRate": 0.034785594246372356
      }
    },
    {
      "productPerformanceView": {
        "offerId": "12347",
        "clicks": "148",
        "impressions": "22045",
        "clickThroughRate": 0.0067135404853708325
      }
    },
    {
      "productPerformanceView": {
        "offerId": "12348",
        "clicks": "11",
        "impressions": "1100",
        "clickThroughRate": 0.01
      }
    },
    {
      "productPerformanceView": {
        "offerId": "12349",
        "clicks": "569",
        "impressions": "62977",
        "clickThroughRate": 0.0090350445400701838
      }
    },
    ...
  ],
  "nextPageToken": "CMgB"
}

Чтобы получить следующие 200 строк, отправьте запрос снова с тем же размером страницы, но замените pageToken на nextPageToken из предыдущего ответа.