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

Для обработки наборов результатов, содержащих большое количество строк, язык запросов Merchant Center поддерживает разбиение на страницы. Для управления нумерацией страниц в теле запроса reports.search доступны два параметра: page_size и page_token , в дополнение к одному выходному полю в теле ответа : next_page_token .

Параметр page_size указывает максимальное количество строк, которые нужно получить в одном запросе. Если он не указан, автоматически устанавливается максимальный размер страницы в 1000 строк.

Параметр page_token указывает токен возвращаемой страницы. Если не указано, возвращается первая страница. Чтобы получить следующую страницу, значение, полученное в качестве next_page_token из предыдущего вызова reports.search , должно быть предоставлено как 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. Тогда результирующий набор будет содержать 200 объектов ReportRow в первом ответе вместе с next_page_token .

Чтобы получить следующие 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"
}
,

Для обработки наборов результатов, содержащих большое количество строк, язык запросов Merchant Center поддерживает разбиение на страницы. Для управления нумерацией страниц в теле запроса reports.search доступны два параметра: page_size и page_token , в дополнение к одному выходному полю в теле ответа : next_page_token .

Параметр page_size указывает максимальное количество строк, которые нужно получить в одном запросе. Если он не указан, автоматически устанавливается максимальный размер страницы в 1000 строк.

Параметр page_token указывает токен возвращаемой страницы. Если не указано, возвращается первая страница. Чтобы получить следующую страницу, значение, полученное в качестве next_page_token из предыдущего вызова reports.search , должно быть предоставлено как 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. Тогда результирующий набор будет содержать 200 объектов ReportRow в первом ответе вместе с next_page_token .

Чтобы получить следующие 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"
}