Analítica
Cada endpoint de analítica de perfiles con ejemplos cURL, Python y Node: métricas diarias de Google y Facebook y vistas semanales de Bing por ubicación.
La analítica de perfiles indica con qué frecuencia se vio una ubicación y se realizaron acciones relacionadas con ella en cada plataforma de publicación: impresiones, visualizaciones de página, solicitudes de indicaciones, llamadas y clics en el sitio web. Hay tres endpoints, uno por plataforma de publicación, y los tres son de lectura, por lo que basta con una clave Read (lectura). Cada métrica es una serie temporal de puntos { startTime, value }; la API no devuelve totales escalares, por lo que las sumas que muestres debes calcularlas tú.
Endpoints de un vistazo
Los tres comparten los mismos parámetros. fromDate y toDate son de tipo YYYY-MM-DD, ambos opcionales; si los omites, se usa el período reciente predeterminado de la plataforma de publicación. La ruta acepta el id de Relay en base64 o el número sin codificar. Si el valor no corresponde a ninguno de estos formatos, el endpoint devuelve 200 con el objeto de estadísticas establecido en null y un array errors, lo que parece indicar un perfil desconectado, así que comprueba primero errors.
Consulta las métricas de Google para un intervalo de fechas
GET /locations/{locationId}/google-analytics devuelve data.googleInsights con una serie diaria por métrica. total representa las impresiones del perfil, search más maps; no incluye las métricas de acciones. Úsalo para elaborar un informe de visibilidad que compare el antes y el después de un cambio en los datos.
curl "https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/google-analytics?fromDate=2026-08-01&toDate=2026-08-31" \-H "Authorization: API $LISTINGSAPI_KEY"{ "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 }] } }}El valor de startTime de cada punto es el día en el que se agrupa el recuento. En el ejemplo, total del primer día es 412, que corresponde a 300 de search más 112 de maps.
Una métrica tiene el valor null, no un array vacío, cuando la ubicación no tiene datos de Google para el período o su perfil de Google no está conectado. Trata null y [] de la misma manera al agregar los datos.
Consulta las métricas de Facebook para un intervalo de fechas
GET /locations/{locationId}/facebook-analytics tiene la misma estructura dentro de data.facebookInsights, con cinco series diarias. Requiere que la página de Facebook de la ubicación esté conectada. ctaAction te permite medir la actividad de un botón «Reservar ahora» o «Llamar ahora» durante el período de una campaña.
curl "https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/facebook-analytics?fromDate=2026-08-01&toDate=2026-08-31" \-H "Authorization: API $LISTINGSAPI_KEY"{ "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 }] } }}No hay ninguna métrica de Me gusta de la página. Todas las series se devuelven con el valor null cuando la página no tiene datos para el intervalo o no está conectada, así que comprueba si el valor es null antes de iterar.
Consulta las visualizaciones de Bing para un intervalo de fechas
GET /locations/{locationId}/bing-analytics devuelve una única serie, data.bingInsights.views, agrupada por semana en lugar de por día. Cada punto es el número de visualizaciones de una semana que comienza en startTime. Los datos se actualizan cada lunes con los de la semana anterior, por lo que la semana completa más reciente es la última que verás. Consulta un intervalo de varios meses para obtener una línea de tendencia; no es adecuado para la atribución diaria.
curl "https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/bing-analytics?fromDate=2026-06-01&toDate=2026-08-31" \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "bingInsights": { "views": [ { "startTime": "2026-06-01T00:00:00+00:00", "value": 73 }, { "startTime": "2026-06-08T00:00:00+00:00", "value": 58 } ] } }}A diferencia de Google y Facebook, Bing indica la ausencia de datos mediante un array views vacío con 200, no mediante null. Trata ambos casos como "nada que mostrar" y comprueba length == 0 si quieres una etiqueta de "sin datos", ya que la suma de un array vacío es 0.
Errores que verás
Las páginas de referencia no indican códigos de error específicos de los recursos de analítica. Estos son los casos que encontrarás:
La lista completa está en Códigos de error.
Próximos pasos
- Consulta la analítica del perfil: suma los valores de una serie para obtener un total mensual y compara dos períodos, con las comprobaciones de
null. - Analítica de reseñas: puntuación, volumen y tasa de respuesta de la misma ubicación, con diferencias entre períodos incorporadas.
- Reseñas: los endpoints de analítica de reseñas junto con el resto del recurso de reseñas.
- Página principal de referencia: Analítica. SDKs: Analítica en Python, Analítica en Node.