Para processar conjuntos de resultados com um grande número de linhas, a linguagem de consulta do Merchant Center é compatível com paginação. Dois parâmetros estão disponíveis para controlar a paginação no corpo da solicitação reports.search
: page_size
e page_token
, além de um campo de saída no corpo da resposta: next_page_token
.
O parâmetro page_size
especifica o número máximo de linhas a serem recuperadas em uma única solicitação. Se não for especificado, ele será definido automaticamente com o tamanho máximo de página de 1.000 linhas.
O parâmetro page_token
especifica o token da página a ser retornada. Se não for especificado, a primeira página será retornada. Para recuperar uma página subsequente, o
valor recebido como next_page_token
da chamada reports.search
anterior
precisa ser fornecido como um page_token
. Quando um page_token
é fornecido, todos os outros
parâmetros na chamada precisam corresponder à chamada anterior que retornou o
page_token
para evitar comportamentos inesperados.
Exemplo:
SELECT
segments.offer_id,
metrics.impressions,
metrics.clicks,
metrics.ctr
FROM MerchantPerformanceView
WHERE segments.date BETWEEN '2021-12-01' AND '2021-12-31'
Para esta consulta, suponha que a conta contenha 100.000 offer_ids
e que page_size
esteja definido como 200. O conjunto de resultados conterá 200 objetos ReportRow
na primeira resposta, além de um next_page_token
.
Para recuperar as próximas 200 linhas, envie a solicitação novamente com o mesmo tamanho de página, mas atualize o page_token
da solicitação para o next_page_token
da resposta anterior.
Veja um exemplo de corpo de resposta (os cinco primeiros resultados mais o
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"
}