Search Analytics: query

Requer autorização

Consulte os dados de tráfego de pesquisa com filtros e parâmetros definidos por você. O método retorna zero ou mais linhas agrupadas pelas chaves de linha (dimensões) definidas por você. É necessário definir um período de um ou mais dias.

Quando a data é uma das dimensões, os dias sem dados são omitidos da lista de resultados. Para saber quais dias têm dados, faça uma consulta sem filtros agrupados por data para o período de interesse.

Os resultados são classificados por contagem de cliques em ordem decrescente. Se duas linhas tiverem a mesma contagem de cliques, elas serão classificadas de maneira arbitrária.

Consulte o exemplo em Python para chamar esse método.

A API é limitada por restrições internas do Search Console e não garante o retorno de todas as linhas de dados, mas sim das principais.

Consulte os limites da quantidade de dados disponíveis.

Exemplo de POST JSON:
POST https://www.googleapis.com/webmasters/v3/sites/https%3A%2F%2Fwww.example.com%2F/searchAnalytics/query?key={MY_API_KEY}
{
  "startDate": "2015-04-01",
  "endDate": "2015-05-01",
  "dimensions": ["country","device"]
}
Faça o teste agora.

Solicitação

Solicitação HTTP

POST https://www.googleapis.com/webmasters/v3/sites/siteUrl/searchAnalytics/query

Parâmetros

Nome do parâmetro Valor Descrição
Parâmetros de caminho
siteUrl string O URL da propriedade, conforme definido no Search Console. Exemplos: http://www.example.com/ (para uma propriedade de prefixo de URL) ou sc-domain:example.com (para uma propriedade de domínio)

Autorização

Esta solicitação requer autorização com pelo menos um dos seguintes escopos (leia mais sobre autenticação e autorização).

Escopo
https://www.googleapis.com/auth/webmasters.readonly
https://www.googleapis.com/auth/webmasters

Corpo da solicitação

No corpo da solicitação, forneça os dados com a seguinte estrutura:

{
  "startDate": string,
  "endDate": string,
  "dimensions": [
    string
  ],
  "type": string,
  "dimensionFilterGroups": [
    {
      "groupType": string,
      "filters": [
        {
          "dimension": string,
          "operator": string,
          "expression": string
        }
      ]
    }
  ],
  "aggregationType": string,
  "rowLimit": integer,
  "startRow": integer
}
Nome da propriedade Valor Descrição Observações
startDate string [Obrigatório] Data de início do período solicitado, no formato AAAA-MM-DD, no horário do Pacífico (UTC - 7:00/8:00). Precisa ser menor ou igual à data de término. Esse valor está incluído no intervalo.
endDate string [Obrigatório] Data de término do período solicitado, no formato AAAA-MM-DD, no horário do Pacífico (UTC - 7:00/8:00). Precisa ser maior ou igual à data de início. Esse valor está incluído no intervalo.
dimensions[] list [Opcional] Zero ou mais dimensões para agrupar os resultados. Os resultados são agrupados na ordem em que você fornece essas dimensões.É possível usar qualquer nome de dimensão em dimensionFilterGroups[].filters[].dimension, bem como "date" e "hour". Os valores da dimensão de agrupamento são combinados para criar uma chave exclusiva para cada linha de resultado. Se nenhuma dimensão for especificada, todos os valores serão combinados em uma única linha. Não há limite para o número de dimensões que podem ser agrupadas, mas não é possível agrupar pela mesma dimensão duas vezes. Exemplo : [country, device]
searchType string Descontinuado. Use type
type string [Opcional] Filtra os resultados para o seguinte tipo:
  • "discover": são os resultados do Discover.
  • "googleNews": resultados de news.google.com e do app Google Notícias para Android e iOS. Não inclui resultados da guia "Notícias" na Pesquisa Google.
  • "news": resultados da pesquisa da guia "Notícias" na Pesquisa Google.
  • "image": resultados da pesquisa da guia "Imagens" na Pesquisa Google.
  • "video": resultados da pesquisa de vídeos
  • "web": [Padrão] Filtra os resultados para a guia combinada ("Todas") na Pesquisa Google. Não inclui resultados do Discover ou do Google Notícias.
dimensionFilterGroups[] list [Opcional] Zero ou mais grupos de filtros a serem aplicados aos valores de agrupamento de dimensões. Todos os grupos de filtros precisam corresponder para que uma linha seja retornada na resposta. Em um único grupo de filtros, é possível especificar se todos os filtros precisam corresponder ou se pelo menos um precisa.
dimensionFilterGroups[].groupType string Se todos os filtros nesse grupo precisam retornar verdadeiro ("and") ou se um ou mais precisam retornar verdadeiro (ainda não é compatível).

Os valores aceitáveis são:
  • "and": Todos os filtros no grupo precisam retornar verdadeiro para que o grupo de filtros seja verdadeiro.
dimensionFilterGroups[].filters[] list [Opcional] Zero ou mais filtros para testar na linha. Cada filtro consiste em um nome de dimensão, um operador e um valor. O tamanho máximo é de 4.096 caracteres. Exemplos:
country equals FRA
query contains mobile use
device notContains tablet
dimensionFilterGroups[].filters[].dimension string A dimensão a que esse filtro se aplica. É possível filtrar por qualquer dimensão listada aqui, mesmo que você não esteja agrupando por ela.

Os valores aceitáveis são:
  • "country": filtra o país especificado, conforme indicado pelo código de país de três letras (ISO 3166-1 alfa-3).
  • "device": filtra os resultados pelo tipo de dispositivo especificado. Valores compatíveis:
    • COMPUTADOR
    • DISPOSITIVO MÓVEL
    • TABLET
  • "page": filtra a string de URI especificada.
  • "query": filtra a string de consulta especificada.
  • "searchAppearance": filtra um recurso específico de resultado da pesquisa. Para conferir uma lista dos valores disponíveis, execute uma consulta agrupada por "searchAppearance". A lista completa de valores e descrições também está disponível na documentação de ajuda.
dimensionFilterGroups[].filters[].operator string [Opcional] Como o valor especificado precisa corresponder (ou não) ao valor da dimensão da linha.

Os valores aceitáveis são:
  • "contains": o valor da linha precisa conter ou ser igual à sua expressão (sem diferenciar maiúsculas de minúsculas).
  • "equals": [Padrão] sua expressão precisa ser exatamente igual ao valor da linha (diferencia maiúsculas de minúsculas para dimensões de página e consulta).
  • "notContains": o valor da linha não pode conter sua expressão como uma substring ou uma correspondência completa (sem diferenciar maiúsculas de minúsculas).
  • "notEquals": sua expressão não pode ser exatamente igual ao valor da linha (diferencia maiúsculas de minúsculas para dimensões de página e consulta).
  • "includingRegex": uma expressão regular de sintaxe RE2 que precisa ser correspondida.
  • "excludingRegex": uma expressão regular de sintaxe RE2 que não pode ser correspondida.
dimensionFilterGroups[].filters[].expression string O valor do filtro a ser correspondido ou excluído, dependendo do operador.
aggregationType string

[Opcional] Como os dados são agregados. Se agregados por propriedade, todos os dados da mesma propriedade serão agregados . Se agregados por página, todos os dados serão agregados por URI canônico . Se você filtrar ou agrupar por página, escolha "automático". Caso contrário, é possível agregar por propriedade ou por página, dependendo de como você quer que os dados sejam calculados. Consulte a documentação de ajuda para saber como os dados são calculados de maneira diferente por site e por página.

Observação: Se você agrupar ou filtrar por página, não será possível agregar por propriedade.

Se você especificar qualquer valor diferente de "automático", o tipo de agregação no resultado vai corresponder ao tipo solicitado. Se você solicitar um tipo inválido, vai receber um erro. A API nunca vai mudar o tipo de agregação se o tipo solicitado for inválido.

Os valores aceitáveis são:
  • "auto": [Padrão] permite que o serviço decida o tipo de agregação apropriado.
  • "byNewsShowcasePanel": agrega valores por painel do News Showcase. Isso precisa ser usado em combinação com o NEWS_SHOWCASE searchAppearance filtro e type=discover ou type=googleNews. Se você agrupar por página, filtrar por página ou filtrar para outro searchAppearance, não será possível agregar por byNewsShowcasePanel.
  • "byPage": agrega valores por URI.
  • "byProperty": agrega valores por propriedade. Indisponível para type=discover ou type=googleNews
rowLimit integer [Opcional; o intervalo válido é de 1 a 25.000; o padrão é 1.000] O número máximo de linhas a serem retornadas. Para percorrer os resultados, use o deslocamento startRow.
startRow integer [Opcional; o padrão é 0] Índice de base zero da primeira linha na resposta. Não pode ser um número negativo. Se startRow exceder o número de resultados da consulta, a resposta será bem-sucedida com zero linhas.
dataState string [Opcional] Se "all" (sem diferenciar maiúsculas de minúsculas), os dados vão incluir dados recentes. Se "final" (sem diferenciar maiúsculas de minúsculas) ou se esse parâmetro for omitido, os dados retornados vão incluir apenas dados finalizados. Se "hourly_all" (sem diferenciar maiúsculas de minúsculas), os dados vão incluir detalhes por hora. Isso indica que os dados por hora incluem dados parciais e devem ser usados ao agrupar pela dimensão da API HOUR.

Resposta

Os resultados são agrupados de acordo com as dimensões especificadas na solicitação. Todos os valores com o mesmo conjunto de valores de dimensão serão agrupados em uma única linha. Por exemplo, se você agrupar pela dimensão do país, todos os resultados de "usa" serão agrupados, todos os resultados de "mdv" serão agrupados e assim por diante. Se você agrupar por país e dispositivo, todos os resultados de "usa, tablet" serão agrupados, todos os resultados de "usa, mobile" serão agrupados e assim por diante. Consulte a documentação do relatório de Search Analytics para saber os detalhes de como os cliques, as impressões e assim por diante são calculados e o que eles significam.

Os resultados são classificados por contagem de cliques, em ordem decrescente, a menos que você agrupe por data. Nesse caso, os resultados são classificados por data, em ordem crescente (do mais antigo para o mais recente). Se houver um empate entre duas linhas, a ordem de classificação será arbitrária.

Consulte a propriedade rowLimit na solicitação para saber o número máximo de valores que podem ser retornados.

{
  "rows": [
    {
      "keys": [
        string
      ],
      "clicks": double,
      "impressions": double,
      "ctr": double,
      "position": double
    }
  ],
  "responseAggregationType": string
}
Nome da propriedade Valor Descrição Observações
rows[] list Uma lista de linhas agrupadas pelos valores de chave na ordem fornecida na consulta.
rows[].keys[] list Uma lista dos valores de dimensão dessa linha, agrupados de acordo com as dimensões na solicitação, na ordem especificada na solicitação.
rows[].clicks double Contagem de cliques da linha.
rows[].impressions double Contagem de impressões da linha.
rows[].ctr double Taxa de cliques (CTR) da linha. Os valores variam de 0 a 1,0, inclusive.
rows[].position double Posição média nos resultados da pesquisa.
responseAggregationType string Como os resultados foram agregados.Consulte a documentação de ajuda para saber como os dados são calculados de maneira diferente por site e por página.

Os valores aceitáveis são:
  • "auto"
  • "byPage": os resultados foram agregados por página.
  • "byProperty": os resultados foram agregados por propriedade.
metadata object

Um objeto que pode ser retornado com os resultados da consulta, fornecendo contexto sobre o estado dos dados.

Quando você solicita dados recentes (usando all ou hourly_all para dataState), algumas das linhas retornadas podem representar dados incompletos, o que significa que os dados ainda estão sendo coletados e processados. Esse objeto de metadados ajuda a identificar exatamente quando isso começa e termina.

Todas as datas e horários fornecidos nesse objeto estão no America/Los_Angeles fuso horário.

O campo específico retornado nesse objeto depende de como você agrupou os dados em a solicitação:

  • first_incomplete_date (string): a primeira data em que os dados ainda estão sendo coletados e processados, apresentada no formato YYYY-MM-DD (formato de data local estendido ISO-8601).

    Esse campo é preenchido apenas quando o dataState da solicitação é all e os dados são agrupados por date, e o período solicitado contém pontos de dados incompletos.

    Todos os valores após first_incomplete_date ainda podem mudar significativamente.

  • first_incomplete_hour (string): a primeira hora em que os dados ainda estão sendo coletados e processados, apresentada no formato YYYY-MM-DDThh:mm:ss[+|-]hh:mm (formato de data e hora de deslocamento estendido ISO-8601).

    Esse campo é preenchido apenas quando o dataState da solicitação é hourly_all, e os dados são agrupados por hour e o período solicitado contém pontos de dados incompletos.

    Todos os valores após first_incomplete_hour ainda podem mudar significativamente.

Confira!

Use o APIs Explorer abaixo para chamar esse método em dados ativos e ver a resposta.