Pesquisa e SearchStream

A API Search Ads 360 Reporting tem um mecanismo unificado de recuperação de atributos e geração de relatórios de métricas, que permite criar consultas usando a Linguagem de Consultas do Search Ads 360. Isso permite consultas complexas que podem retornar grandes quantidades de dados sobre contas individuais do Search Ads 360.

É possível criar consultas usando os métodos Search ou SearchStream. Ambos os métodos aceitam as mesmas consultas e retornam resultados equivalentes. O método Search retorna dados em tamanhos de página personalizáveis, permitindo a iteração sobre um conjunto de resultados usando a paginação. Isso pode ser vantajoso em condições de baixa largura de banda ou de rede não confiável, por exemplo, para segmentar um conjunto de resultados grande em respostas menores que podem ser buscadas novamente se uma conexão for perdida. O método SearchStream, por outro lado, transmite o conjunto de resultados inteiro de volta em uma única resposta, o que pode ser mais eficiente para a recuperação de dados em massa.

Search e SearchStream usam o mesmo URL base:

    https://searchAds360.googleapis.com/v0/customers/CUSTOMER_ID/searchAds360

O método de pesquisa baseado em página usa um parâmetro pageSize opcional, que limita quantos resultados são retornados em uma única resposta da API.

POST /v0/customers/CUSTOMER_ID/searchAds360:search HTTP/1.1
Host: searchAds360.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN

{
"pageSize": 10000,
"query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'"
}

Se houver mais linhas nos resultados do que pageSize, um nextPageToken será retornado na resposta:

{
  "results": [
    // ...
    // ...
    // ...
  ],
  "nextPageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B",
  "fieldMask": "adGroupCriterion.keyword.text,adGroupCriterion.status"
}

A repetição da mesma consulta com um pageToken adicionado com o valor acima busca a próxima página de resultados:

POST /v0/customers/CUSTOMER_ID/searchAds360:search HTTP/1.1
Host: searchads360.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN


{
"pageSize": 10000,
"query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'",
"pageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B"
}

Para usar o método SearchStream, que retorna todos os resultados em uma única resposta transmitida, basta mudar o método de serviço no URL para searchStream. pageSize e pageToken não são necessários para SearchStream:

POST /v0/customers/CUSTOMER_ID/searchAds360:searchStream HTTP/1.1
Host: searchads360.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN

{
    "query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'"
}