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

Чтобы обрабатывать наборы результатов, содержащие большое количество строк, язык запросов 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"
}