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