Análises

Todos os endpoints de análise de perfil com exemplos cURL, Python e Node: métricas diárias do Google/Facebook e visualizações semanais do Bing por local.

As estatísticas de perfil mostram com que frequência um local foi visto e recebeu interações em cada plataforma de publicação: impressões, visualizações de página, solicitações de rotas, chamadas e cliques no site. Há três endpoints, um por plataforma de publicação, e os três são de leitura, portanto, uma chave Read (leitura) é suficiente. Cada métrica é uma série temporal de pontos { startTime, value }; a API não retorna totais escalares, portanto, as somas que você exibe são calculadas por você.

Visão geral dos endpoints

MétodoCaminhoO que fazReferência
GET/locations/{locationId}/google-analyticsNove séries diárias do Google Business Profile.Estatísticas do Google
GET/locations/{locationId}/facebook-analyticsCinco séries diárias da Página do Facebook.Estatísticas do Facebook
GET/locations/{locationId}/bing-analyticsUma série semanal do Bing Places.Estatísticas do Bing

Os três compartilham os mesmos parâmetros. fromDate e toDate são do tipo YYYY-MM-DD, ambos opcionais; se você os omitir, será usado o período recente padrão da plataforma de publicação. O caminho aceita o id Relay em base64 ou o número simples. Um valor que não seja nenhum dos dois faz a API retornar 200 com o objeto de insights definido como null e um array errors, o que se parece com um perfil desconectado, portanto, verifique errors primeiro.

Consulte métricas do Google para um intervalo de datas

GET /locations/{locationId}/google-analytics retorna data.googleInsights com uma série diária por métrica. total representa as impressões do perfil, search mais maps; não inclui as métricas de ações. Use essa métrica para um relatório de visibilidade antes e depois de uma alteração nos dados.

NomeEmObrigatórioObservações
locationIdpathSimid Relay em base64 ou databaseId numérico.
fromDatequeryNãoInício do intervalo, YYYY-MM-DD. O padrão é um período recente.
toDatequeryNãoFim do intervalo, YYYY-MM-DD.
Google
curl "https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/google-analytics?fromDate=2026-08-01&toDate=2026-08-31" \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "data": {    "googleInsights": {      "total": [        { "startTime": "2026-08-01T00:00:00+00:00", "value": 412 },        { "startTime": "2026-08-02T00:00:00+00:00", "value": 388 }      ],      "search": [{ "startTime": "2026-08-01T00:00:00+00:00", "value": 300 }],      "maps": [{ "startTime": "2026-08-01T00:00:00+00:00", "value": 112 }],      "directionsAction": [{ "startTime": "2026-08-01T00:00:00+00:00", "value": 24 }],      "phoneAction": [{ "startTime": "2026-08-01T00:00:00+00:00", "value": 8 }],      "websiteAction": [{ "startTime": "2026-08-01T00:00:00+00:00", "value": 41 }],      "businessBookings": [{ "startTime": "2026-08-01T00:00:00+00:00", "value": 0 }],      "businessFoodOrders": [{ "startTime": "2026-08-01T00:00:00+00:00", "value": 0 }],      "businessFoodMenuClicks": [{ "startTime": "2026-08-01T00:00:00+00:00", "value": 0 }]    }  }}

O startTime de cada ponto é o dia em que a contagem é agrupada. No exemplo, total no primeiro dia é 412, ou seja, 300 de search mais 112 de maps.

SérieSignificado
totalImpressões do perfil, search mais maps.
searchImpressões nos resultados do Google Search, somando computadores e dispositivos móveis.
mapsImpressões nos resultados do Google Maps, somando computadores e dispositivos móveis.
directionsActionSolicitações de rotas até o local.
phoneActionCliques no botão de chamada.
websiteActionCliques que levam ao site.
businessBookingsReservas iniciadas a partir do perfil.
businessFoodOrdersPedidos de comida feitos a partir do perfil.
businessFoodMenuClicksCliques no link do cardápio.

Uma métrica é null, e não um array vazio, quando o local não tem dados do Google para o período ou seu perfil do Google não está conectado. Trate null e [] da mesma forma ao agregar os dados.

Consulte métricas do Facebook para um intervalo de datas

GET /locations/{locationId}/facebook-analytics tem a mesma estrutura em data.facebookInsights, com cinco séries diárias. Esse endpoint exige que a Página do Facebook do local esteja conectada. Com ctaAction, você mede o desempenho de um botão "Reserve agora" ou "Ligue agora" durante o período de uma campanha.

NomeEmObrigatórioObservações
locationIdpathSimid Relay em base64 ou databaseId numérico.
fromDatequeryNãoInício do intervalo, YYYY-MM-DD. O padrão é um período recente.
toDatequeryNãoFim do intervalo, YYYY-MM-DD.
Facebook
curl "https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/facebook-analytics?fromDate=2026-08-01&toDate=2026-08-31" \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "data": {    "facebookInsights": {      "views": [{ "startTime": "2026-08-01T00:00:00+00:00", "value": 120 }],      "ctaAction": [{ "startTime": "2026-08-01T00:00:00+00:00", "value": 5 }],      "directionsAction": [{ "startTime": "2026-08-01T00:00:00+00:00", "value": 3 }],      "phoneAction": [{ "startTime": "2026-08-01T00:00:00+00:00", "value": 2 }],      "websiteAction": [{ "startTime": "2026-08-01T00:00:00+00:00", "value": 9 }]    }  }}
SérieSignificado
viewsTotal de visualizações da Página.
ctaActionCliques no botão de chamada para ação da Página.
directionsActionSolicitações de rotas pela Página.
phoneActionChamadas iniciadas a partir da Página.
websiteActionCliques que levam ao site a partir da Página.

Não há métrica de curtidas da página. Todas as séries retornam null quando a Página não tem dados para o intervalo ou não está conectada, portanto, verifique se o valor é null antes de iterar.

Consulte as visualizações do Bing em um intervalo de datas

GET /locations/{locationId}/bing-analytics retorna uma única série, data.bingInsights.views, agrupada por semana em vez de por dia. Cada ponto é a contagem de visualizações de uma semana que começa em startTime. Os dados são atualizados toda segunda-feira com os dados da semana anterior, portanto, a semana completa mais recente é a última que você verá. Consulte um intervalo de vários meses para obter uma linha de tendência; esses dados não são adequados para atribuição diária.

NomeEmObrigatórioObservações
locationIdpathSimID Relay em Base64 ou databaseId numérico.
fromDatequeryNãoInício do intervalo, YYYY-MM-DD. O padrão é uma janela recente.
toDatequeryNãoFim do intervalo, YYYY-MM-DD.
Bing
curl "https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/bing-analytics?fromDate=2026-06-01&toDate=2026-08-31" \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "data": {    "bingInsights": {      "views": [        { "startTime": "2026-06-01T00:00:00+00:00", "value": 73 },        { "startTime": "2026-06-08T00:00:00+00:00", "value": 58 }      ]    }  }}
SérieSignificado
viewsVisualizações do perfil no Bing Places, um ponto por semana.

Ao contrário do Google e do Facebook, o Bing indica a ausência de dados com um array views vazio acompanhado de 200, e não com null. Trate ambos como "nada para exibir" e verifique length == 0 se quiser exibir o rótulo "sem dados", pois a soma de um array vazio é 0.

Erros que você verá

As páginas de referência não indicam códigos de erro específicos do recurso de análise. Os casos que você encontrará:

CódigoSignificadoSolução
401 com SY90001Chave de API ausente ou inválida.Envie Authorization: API $LISTINGSAPI_KEY.
200 com googleInsights, facebookInsights ou bingInsights definido como null e um array errorslocationId não é um número nem um ID Relay que possa ser decodificado.Passe o ID em base64 retornado por um endpoint de leitura. Não aplique codificação de URL a ele.
200 com uma métrica null (Google, Facebook) ou um array views vazio (Bing), e sem errorsNão há dados para a janela ou a plataforma de publicação não está conectada.Exiba "indisponível", não zero. Conecte a conta.
429Limite de requisições.Aguarde Retry-After. Consulte Limites de requisições.

A lista completa está em Códigos de erro.

Próximos passos