É possível paginar os resultados recuperados com
GoogleAdsService.Search em vez de fazer o download de todo o conjunto de resultados de uma só vez. Para uma visão geral dos relatórios com a API Google Ads, consulte a
visão geral de relatórios.
Search retorna páginas fixas de até 10.000 linhas. A definição de page_size em
SearchGoogleAdsRequest foi descontinuada e retorna um erro
RequestError.PAGE_SIZE_NOT_SUPPORTED.
Exemplo de consulta e paginação
Considere a seguinte consulta:
SELECT
ad_group.id,
ad_group_criterion.type,
ad_group_criterion.criterion_id,
ad_group_criterion.keyword.text,
ad_group_criterion.keyword.match_type
FROM ad_group_criterion
WHERE ad_group_criterion.type = KEYWORD
Se a conta tiver 50.000 palavras-chave, o conjunto de resultados vai conter 10.000
GoogleAdsRow objetos na primeira resposta, além de um
next_page_token.
Para recuperar as próximas 10.000 linhas, envie a solicitação novamente, mas atualize o
page_token da solicitação para o next_page_token da resposta:
{
"query": "SELECT ad_group.id, ad_group_criterion.type, ad_group_criterion.criterion_id, ad_group_criterion.keyword.text, ad_group_criterion.keyword.match_type FROM ad_group_criterion WHERE ad_group_criterion.type = KEYWORD",
"pageToken": "CN3q9...example_token..."
}
Observe que next_page_token não é preenchido na resposta que
contém o último lote de linhas.
Nossas bibliotecas de cliente processam a paginação automaticamente. Você só precisa iterar pelas linhas da resposta. Quando todas as linhas na página atual forem retornadas, a biblioteca de cliente vai buscar uma nova página de linhas automaticamente em seu nome até que todo o conjunto de dados seja recuperado. Se você estiver usando o REST em vez do gRPC, será necessário fazer uma solicitação explícita para cada nova página.
Armazenamento em cache e expiração do token de página
A API Google Ads armazena em cache internamente o conjunto de dados para que as solicitações de página subsequentes sejam mais rápidas do que a inicial. Os valores next_page_token têm um tempo de vida limitado (TTL) e expiram se não forem usados em um período curto (cerca de duas horas). Se um token de página expirar, a API vai retornar um erro, e você precisará iniciar uma nova consulta.
A consulta precisa permanecer idêntica em solicitações subsequentes para aproveitar os dados armazenados em cache. As solicitações paginadas subsequentes não contam como operações adicionais na cota de operações diárias para acesso de explorador e acesso básico. Se a consulta for diferente e enviada com o mesmo token de página, um erro será retornado.