Paginar os resultados da consulta

Para lidar com conjuntos de resultados que contêm um grande número de linhas, a linguagem de consulta do Merchant Center é compatível com a 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 como o tamanho máximo 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 vai 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 um comportamento inesperado.

Exemplo:

SELECT
  segments.offer_id,
  metrics.impressions,
  metrics.clicks,
  metrics.ctr
FROM MerchantPerformanceView
WHERE segments.date BETWEEN '2021-12-01' AND '2021-12-31'

Nessa consulta, suponha que a conta tenha 100.000 offer_ids e que page_size esteja definido como 200. O conjunto de resultados conterá 200 objetos ReportRow na primeira resposta, junto com 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"
}