# Limecount: documentación completa > Limecount es analítica web sin cookies, con los datos en la UE. Se instala pegando una línea de código en la cabecera de la web y mide visitas, páginas, eventos y objetivos sin banner de cookies en el modo básico. # Ajustes de la web > Dominio, subdominios, zona horaria, rutas excluidas, parámetros, modos de medición, retención, alertas y borrado: todos los ajustes de una web. Cada web tiene su pantalla de **Ajustes de la web** (en el menú, bajo **Web seleccionada**). Editan el propietario y los administradores; el rol de lectura lo ve todo en solo lectura. Los cambios se aplican en un minuto aproximadamente. Consulta [equipo y permisos](https://limecount.com/docs/equipo.md). ## Qué se puede cambiar | Ajuste | Qué hace | Más información | | ------------------------------ | ---------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | | Dominio | Solo se cuentan las visitas que llegan desde este dominio | [comprobar la instalación](https://limecount.com/docs/comprobar.md) | | Contar también los subdominios | Admite `tienda.tuweb.com`, `blog.tuweb.com`… además del dominio | | | Zona horaria | Cuándo empieza y acaba cada día en tus gráficas, alertas y periodos | [el resumen](https://limecount.com/docs/panel-estadisticas.md) | | Páginas excluidas | Rutas que no se cuentan, una por línea; `*` como comodín | [excluir páginas](https://limecount.com/docs/excluir-paginas.md) | | Parámetros de URL permitidos | El resto de parámetros se borra antes de guardar la visita. Solo aplica en medición ampliada | [campañas UTM](https://limecount.com/docs/utm.md), [limpieza](https://limecount.com/docs/limpieza-cliente.md) | | Modos de medición | Activa o desactiva la medición básica sin consentimiento previo; la ampliada está siempre disponible | [modos de medición](https://limecount.com/docs/modos-de-medicion.md) | | Respetar DNT y GPC | Siempre activo, no se puede desactivar | [preferencias de privacidad](https://limecount.com/docs/preferencias-de-privacidad.md) | | Conservar visitas durante | 24 meses (por defecto), 12 o 6 meses | Más abajo | | Página de exclusión | Enlace para que tus visitantes decidan no ser contados | [página de exclusión](https://limecount.com/docs/pagina-exclusion.md) | | Alertas por email | Avisos de caída, pico o falta de datos | [alertas](https://limecount.com/docs/alertas-por-email.md) | | Enlaces compartidos | Estadísticas en solo lectura para clientes | [enlaces compartidos](https://limecount.com/docs/enlaces-compartidos.md) | | Google Analytics | Importa y compara el historial de GA4 | [importar GA4](https://limecount.com/docs/importar-google-analytics.md) | Tras cambiar la medición básica, guarda y **actualiza el código de instalación** en tu web (**Ver código de instalación**). Las alertas se guardan al instante; el resto, con el botón de guardar de la cabecera. ## Parámetros permitidos Hasta 20 nombres. Cada uno puede llevar letras, números y `_ . - [ ]`, con un máximo de 40 caracteres. No se admiten nombres que suelen llevar datos sensibles, como `token`, `email`, `password`, `code` o `session`. ## Retención «Conservar visitas durante» fija cuánto tiempo se guardan los datos. Si lo reduces, las visitas más antiguas se borran en 24 horas. Si necesitas conservar las cifras, [exporta un CSV](https://limecount.com/docs/exportar.md) antes. ## Borrar una web Solo el propietario. Al confirmar, escribiendo el dominio, se dejan de contar visitas al momento y todos los datos de la web se eliminan en 30 días. No se puede deshacer. Un administrador ve el apartado pero no puede borrar. Las acciones sobre webs, objetivos y equipo quedan en el registro de **Actividad** de la organización, en **Ajustes de organización**; lo ven el propietario y los administradores. Se conserva 24 meses. ## Ajustes de la organización En **Ajustes de organización** (menú lateral) cambias el nombre de la organización, consultas la actividad y, si eres propietario, [borras la organización](https://limecount.com/docs/seguridad-de-la-cuenta.md#borrar-la-cuenta-o-la-organizacion). Fuente: https://limecount.com/docs/ajustes-de-la-web --- # El resumen de estadísticas > Cómo leer el resumen de cada web y de la organización: indicadores exactos y estimados, gráfica, periodos, comparación, filtros y desgloses. El **Resumen** de una web (en el menú, bajo **Web seleccionada**) reúne todas sus estadísticas en una pantalla. Pueden verlo el propietario, los administradores y el rol de lectura. Un [enlace compartido](https://limecount.com/docs/enlaces-compartidos.md) muestra la misma pantalla en solo lectura. ## Periodo y comparación El selector de periodo ofrece: | Periodo | Qué cubre | | --------------- | ------------------------------------------------ | | Hoy | El día de hoy, por horas | | Últimos 7 días | Hoy y los 6 días anteriores | | Últimos 30 días | Hoy y los 29 días anteriores (el predeterminado) | | Este mes | Del día 1 hasta hoy | | Mes anterior | El mes natural anterior completo | | Personalizado… | Un rango «Desde» y «Hasta» | El rango personalizado admite hasta 400 días, desde el 1 de enero de 2020, y no puede ir más allá de hoy. Los días empiezan y acaban según la [zona horaria de la web](https://limecount.com/docs/ajustes-de-la-web.md). Con **Comparar con el periodo anterior** cada indicador muestra su variación y la gráfica dibuja una segunda línea. El periodo anterior es el tramo de igual duración justo antes del elegido. En «Este mes» y «Mes anterior» se compara con el mes natural anterior, recortado a los mismos días. El periodo, la comparación y los filtros viven en la dirección de la página: puedes copiarla o guardarla como favorito. ## Indicadores | Indicador | Tipo | Qué significa | | --------------------------- | -------- | ------------------------------------------------------------------------------------------------- | | Páginas vistas | Exacto | Cuántas veces se ha cargado una página, en modo básico o ampliado | | Entradas estimadas | Estimado | Aproximación a las visitas; no son personas únicas | | Lectura media | Estimado | Tiempo visible medio por página. Solo con medición ampliada aceptada | | Rebote aproximado | Estimado | Entradas que no siguieron a otra página del sitio, sobre el total de entradas | | Sesiones medidas | Exacto | Inicios de sesión temporal. Solo ampliado aceptado; no son personas y no sale al filtrar | | Visitantes (con aceptación) | Estimado | Navegadores distintos que aceptaron todo. No es toda tu audiencia | | Eventos | Exacto | Aparece al filtrar por un evento | | Conversiones | Exacto | Aparece si tienes [objetivos](https://limecount.com/docs/objetivos.md); la tasa de conversión que la acompaña es estimada | Cada indicador lleva la etiqueta de exacto o estimado. Las entradas, la lectura y el rebote se calculan con reglas aproximadas, así que no esperes que coincidan al céntimo con otras herramientas: consulta [por qué las cifras no coinciden](https://limecount.com/blog/cifras-no-coinciden-entre-herramientas). Encima de los indicadores, la tarjeta **Cómo se han medido estas páginas vistas** separa las vistas en básicas, ampliadas e históricas (anteriores a la separación de modos). Es la forma de saber cuánta parte de tu audiencia aporta los datos de campañas, eventos y tiempos. Más en [modos de medición](https://limecount.com/docs/modos-de-medicion.md). ## La gráfica Muestra las páginas vistas o las entradas estimadas del periodo (botones **Visitas estimadas** y **Páginas vistas**). El tramo depende de la duración: por horas con «Hoy», por días hasta 92 días y por meses a partir de ahí. Pasa el cursor o toca para ver los valores; con teclado, usa las flechas. Hay una tabla con los mismos datos para lectores de pantalla. El modo básico se agrupa por día UTC, así que en la vista por horas no refleja la hora real de la visita. Si has creado [anotaciones](https://limecount.com/docs/anotaciones.md), aparecen como marcas verticales sobre la gráfica y en la lista bajo ella. ## Filtros combinables Pulsa cualquier fila de un desglose y se añade un filtro: todo el resumen pasa a mostrar solo ese subconjunto. Puedes combinar varios, y se aplican todos a la vez. Aparecen como chips encima de los indicadores; quita uno con su aspa o todos con **Quitar filtros**. Filtros disponibles: página, entrada, fuente, UTM source, UTM medium, campaña, país, región, ciudad, dispositivo, navegador, sistema y evento. Quitar un país quita también su región y su ciudad. Con el filtro de evento, los indicadores de páginas pasan a «—» y aparece el de Eventos, porque un evento no es una página. ## Desgloses Cada tarjeta tiene pestañas y muestra sus 10 primeras filas con una barra. **Ver todas** abre la lista completa (hasta 1.000 filas). | Tarjeta | Pestañas | | ------------ | ------------------------------------------- | | Páginas | Más vistas, De entrada, Anterior, Siguiente | | Fuentes | Fuentes, UTM source, UTM medium, Campañas | | Geografía | Países (con mapa), Regiones, Ciudades | | Dispositivos | Tipo, Navegador, Sistema | | Eventos | Cada evento con su objetivo y su conversión | - **Anterior** y **Siguiente** muestran por dónde se mueve la gente dentro de tu sitio. Se explican en [recorridos](https://limecount.com/docs/modos-de-medicion.md#recorridos); «Siguiente» exige filtrar antes una página. - **Fuentes** agrupa por dominio de procedencia. Las campañas requieren etiquetar los enlaces: ver [campañas UTM](https://limecount.com/docs/utm.md). - **Geografía**, navegador y sistema solo existen en medición ampliada. Las regiones y ciudades con menos de 5 visitas en el periodo se suman en una fila `(other)` que no se puede filtrar. Los nombres vienen en inglés. - **Eventos** necesita [eventos enviados desde tu web](https://limecount.com/docs/eventos.md) y, para ver la conversión, [objetivos](https://limecount.com/docs/objetivos.md). Los [embudos](https://limecount.com/docs/embudos.md) tienen su propia pantalla. ## Qué más hay en la pantalla - **Exportar CSV** descarga las cifras del periodo y los filtros activos. Ver [exportar datos](https://limecount.com/docs/exportar.md). - Si la web no tiene visitas en el periodo, un aviso te lleva a [comprobar la instalación](https://limecount.com/docs/comprobar.md). - **Comparar con GA4**, en el menú de la web, contrasta tus cifras con las de Google Analytics: ver [importar GA4](https://limecount.com/docs/importar-google-analytics.md). ## Resumen de la organización La pantalla **Inicio**, la primera del menú, suma todas las webs de tu organización. Ofrece los periodos Últimos 7 días, Últimos 30 días y Este mes, y usa la zona horaria de tu navegador. - Indicadores: páginas vistas, entradas estimadas, sesiones medidas, visitantes con aceptación (suma por web: el mismo navegador cuenta una vez en cada web) y **Webs activas**, las que han tenido tráfico en los últimos 7 días. - Una gráfica con una línea por web, que puedes mostrar u ocultar desde la leyenda. - La tabla **Tráfico por web**, con enlace al resumen de cada una y su parte del tráfico total. Si tienes más de 500 webs, se muestran las primeras 500. **Gestionar webs** lista todas las webs con sus cifras, un buscador y el estado del código de instalación; desde ahí se añaden webs nuevas si tu rol lo permite. Fuente: https://limecount.com/docs/panel-estadisticas --- # Equipo y permisos > Invita a personas a tu organización con rol de administrador o de lectura. Qué puede hacer cada rol, cuándo caducan las invitaciones y límites por plan. Tus webs pertenecen a una organización, y las personas que la integran tienen un rol. Se gestiona en **Equipo**. ## Roles | Acción | Propietario | Administrador | Lectura | | ------------------------------------------- | :---------: | :-----------: | :--------------: | | Ver estadísticas y exportar CSV | Sí | Sí | Sí | | Crear webs y editar sus ajustes y objetivos | Sí | Sí | No | | Crear y gestionar enlaces compartidos | Sí | Sí | No (solo los ve) | | Invitar y quitar miembros | Sí | Sí | No | | Cambiar el rol de un miembro | Sí | No | No | | Borrar una web o la organización | Sí | No | No | Cada organización tiene un propietario, que no se puede quitar ni cambiar de rol. A las personas invitadas les asignas el rol de administrador o de lectura. ## Invitar a alguien 1. En **Equipo**, escribe el email y elige el rol. 2. La persona recibe un email con un enlace que caduca a los 7 días. 3. Si ya tiene cuenta, entra y acepta; si no, se registra con ese mismo email. Puedes reenviar o revocar una invitación pendiente. Si invitas otra vez al mismo email, la invitación se renueva. ## Límite de miembros Depende del plan. Cuentan los miembros y las invitaciones pendientes. | Plan | Miembros | | -------- | ---------- | | Starter | 1 | | Pro | 3 | | Business | 10 | | Agency | Ilimitados | Las acciones importantes (invitaciones, cambios de rol, borrados) quedan en el registro de actividad de la organización, en **Ajustes**, durante 24 meses. Fuente: https://limecount.com/docs/equipo --- # Eventos personalizados > Crea tu primer evento paso a paso: configura el script, envíalo desde un botón o JavaScript, comprueba la recepción y úsalo como objetivo. Un **evento** es una acción que tu web avisa a Limecount que ha ocurrido. Por ejemplo, un clic en «Contactar» o un registro completado. **No se crea ni se instala un evento al escribir su nombre en Objetivos**: primero tienes que configurar tu web para enviarlo. Esta guía usa dos nombres de ejemplo: | Acción | Nombre que envía el código | Qué significa | | -------------------- | -------------------------- | ------------------------------------------------------------ | | Pulsar un botón | `clic_contacto` | Se ha pulsado; no confirma que se haya enviado un formulario | | Terminar un registro | `registro_completado` | Tu aplicación ya ha confirmado que el registro salió bien | El nombre debe ser fijo para todas las personas. No añadas emails, nombres de clientes, números de pedido ni identificadores. Los eventos personalizados solo se envían en el **modo ampliado, tras la aceptación**. En básico se cuentan páginas vistas, no estas acciones. ## 1. Prepara la web en el panel 1. Selecciona la web correcta en la barra superior. 2. Abre **Ajustes de la web → Modos de medición**. 3. Pulsa **Ver código de instalación** en esa sección. Si acabas de añadir la web, ya estás en la pantalla de instalación. No hay que habilitar el ampliado: siempre está permitido y solo se activa si el visitante acepta. 4. Copia el script de esa web. Tendrás que modificar **esa misma etiqueta** en tu página: no instales un segundo tracker. Necesitas poder editar el HTML o el código de tu web. Crear un objetivo en Limecount no modifica tu web, WordPress ni tu aplicación automáticamente. ## 2. Declara los eventos en el script En la etiqueta que has copiado, añade los nombres en `data-events`. Para este ejemplo: ```html data-events="clic_contacto,registro_completado" ``` El atributo va **dentro de la etiqueta ` ``` **Sustituye `data-key`, `data-host` y `src` por los valores reales del código de instalación de tu web.** La clave es pública; no uses una contraseña ni una clave privada. Conserva los demás atributos de tu instalación. Las sesiones temporales y el token de visitante se activan con `data-consent="all"` y no son necesarios para registrar un evento. `data-paths` declara plantillas para agrupar rutas (`/blog/:articulo`); las no declaradas se envían con su ruta real, con los segmentos que parecen identificadores (emails, números largos, UUID, tokens) cambiados por `:id`. `data-props` declara categorías opcionales. Aquí solo se admiten `ubicacion: 'cabecera'` o `'pie'`, y `plan: 'starter'` o `'pro'`. Los valores no declarados se omiten; no se envía texto libre. Consulta [limpieza antes del envío](https://limecount.com/docs/limpieza-cliente.md). ## 3. Conecta la aceptación del visitante `data-consent="necessary"` (valor por defecto) solo permite medición necesaria: **el ampliado no se activa hasta que la persona acepte**. Cuando tu gestor indique que aceptó todo, sirve la etiqueta con `data-consent="all"`. El tracker lee el atributo una sola vez al cargar: para cambios sin recargar, conecta la categoría de analítica de tu gestor a `setConsent`, que se aplica después del atributo y prevalece (cambiar el atributo en caliente no tiene efecto). Retirar el permiso borra el token con `setConsent('denied')` o en la siguiente carga con `necessary`: ```js function comunicarConsentimientoAnalitica(aceptado) { const estado = aceptado === true ? 'granted' : 'denied'; if (window.limecount?.setConsent) { window.limecount.setConsent(estado); } else { window.limecount = window.limecount || {}; window.limecount.q = window.limecount.q || []; window.limecount.q.push(['setConsent', estado]); } } // Desde los callbacks reales de tu gestor: // Acepta específicamente analítica -> comunicarConsentimientoAnalitica(true) // Rechaza o retira el permiso -> comunicarConsentimientoAnalitica(false) ``` No llames a la aceptación por cargar la página, seguir navegando o cerrar el aviso. Al recargar, tu gestor debe restaurar una elección válida. El script no muestra un banner en las webs de tus clientes: el aviso de la web de Limecount solo pertenece a Limecount. Tienes el procedimiento completo en [modos y consentimiento](https://limecount.com/docs/modos-de-medicion.md). ## 4. Envía un clic desde HTML Añade `data-lc-event` al botón que ya tienes en tu web: ```html ``` No necesitas llamar también a `track`: el tracker detecta el clic y envía **un evento `clic_contacto`**. El atributo de propiedad añade la categoría permitida `ubicacion: 'cabecera'`. Puedes poner los atributos en un enlace existente; seguirá navegando normalmente. Publica el cambio, acepta analítica mediante tu gestor y pulsa el botón. Un clic en ese botón cuenta una acción, **no un formulario completado**. No añadas simultáneamente una llamada JavaScript para la misma acción o la contarás dos veces. ## 5. Envía una acción completada desde JavaScript Para un registro, un pago u otra operación, inserta esta llamada **en el punto de tu código donde tu aplicación ya sabe que la operación terminó correctamente**: ```js window.limecount?.track?.('registro_completado', { plan: 'pro' }); ``` La llamada se coloca en tu aplicación, no en la consola del panel de Limecount. No la ejecutes al cargar la página ni al pulsar «Enviar» antes de conocer el resultado. Si falla la operación, no envíes el evento de éxito. - `registro_completado` debe figurar en `data-events` con las mismas mayúsculas y minúsculas. - `{ plan: 'pro' }` es opcional y debe coincidir en valor y tipo con `data-props`. - El `?.` evita romper tu aplicación si el tracker no cargó. No garantiza que se haya enviado nada. - Los eventos ocurridos antes de cargar el tracker o antes de aceptar no se recuperan después. No los pongas en una cola para enviarlos retrospectivamente. ## Ejemplo completo para probar en una página Este ejemplo incluye una etiqueta, botones de aceptación/rechazo y dos acciones. **Es una página de prueba de integración**, no un gestor completo de todas las cookies o finalidades de tu web. No recuerda el permiso al recargar. En producción usa tu gestor habitual, con su información, vigencia y retirada. Sustituye clave, dominio y URL del script por los de tu instalación y sirve la página desde el dominio autorizado. No basta con abrir un archivo `file://`. Las pruebas en localhost requieren además la configuración de desarrollo indicada en la guía de instalación. ```html Prueba de eventos Limecount

Prueba de eventos

El básico cuenta páginas. Si aceptas, esta prueba añade clics y acciones declaradas. Puedes retirar pulsando «Rechazar o retirar analítica».

Esperando al tracker…

``` **Resultado esperado:** antes de aceptar, los dos botones de acción no envían eventos personalizados. Después de aceptar y ver `Modo actual: enhanced`, cada pulsación en contacto envía un `clic_contacto`; cada pulsación en la simulación envía un `registro_completado`. Después de rechazar, dejan de enviarse. El botón de simulación no crea ninguna cuenta real. ## 6. Comprueba que el evento ha llegado 1. Prueba en tu web publicada, con la etiqueta actualizada, el tracker cargado y la analítica aceptada. 2. Si necesitas diagnosticarlo, abre las herramientas del navegador **en tu web**, no en el panel. En la consola, `window.limecount?.getMode?.()` debe devolver `enhanced` para enviar eventos personalizados. 3. En **Red / Network**, realiza la acción y busca un `POST` al endpoint de eventos de tu instalación, normalmente `/api/e`. El cuerpo debe incluir `n: "clic_contacto"` o `n: "registro_completado"` y `m: "enhanced"`. 4. Vuelve al panel, selecciona esa misma web y abre **Resumen → Eventos y objetivos → Eventos**. Elige un periodo que incluya hoy, quita filtros y actualiza después de unos segundos. Una respuesta `202` del recolector no demuestra por sí sola que se haya contado: también responde de forma silenciosa a algunos descartes. Comprueba el recuento en el panel. No pegues ni compartas capturas con información personal de tus peticiones. ## 7. Convierte el evento en un objetivo **Solo si quieres tratar esa acción como conversión**: 1. Abre **Objetivos → Nuevo objetivo** de esa web. 2. En **Nombre**, escribe una etiqueta para el panel, por ejemplo **Contactos desde el botón**. 3. En **Se cumple cuando**, elige **Se envía un evento**. 4. En **Evento**, selecciona `clic_contacto`. Si no ha llegado todavía, elige **Otro nombre…** y escribe ese nombre exacto. Si no hay eventos, el formulario permite escribirlo directamente. 5. Guarda, vuelve a realizar la acción en tu web y consulta el recuento del objetivo. **Nombre del objetivo** y **nombre del evento** son cosas diferentes: puedes llamar al objetivo «Contactos desde el botón», pero el código debe enviar `clic_contacto`. Crear o cambiar un objetivo no añade nombres a `data-events`, no instala código y no envía acciones. Las propiedades tampoco crean objetivos separados automáticamente. También existe el objetivo por página, por ejemplo `/gracias`, sin evento personalizado. Consulta [objetivos](https://limecount.com/docs/objetivos.md). ## Eventos reservados Limecount reconoce nueve nombres con significado fijo. Con ellos puedes medir una compra o un contacto, y verlos en los [embudos](https://limecount.com/docs/embudos.md), sin configurar nada más en el script. | Nombre | Qué significa | Grupo | Cuándo enviarlo | | ---------------- | ------------------------------- | --------- | --------------------------------------------------------------- | | `sign_up` | Registro | Cuenta | Cuando la cuenta ya se ha creado correctamente | | `login` | Inicio de sesión | Cuenta | Cuando el acceso ya se ha confirmado | | `view_pricing` | Vio precios | Compra | Al mostrar los precios cuando no hay una ruta propia | | `add_to_cart` | Añadió al carrito | Compra | Cuando el producto ya está en el carrito | | `begin_checkout` | Empezó a comprar | Compra | Al entrar en el proceso de pago | | `purchase` | Compra | Compra | Cuando el pago se ha confirmado, nunca antes | | `click_cta_home` | Clic en el CTA de la home | Captación | Al pulsar el botón principal de la página de inicio | | `view_contact` | Vio contacto | Captación | Al mostrar el contacto cuando no hay una ruta propia | | `submit_contact` | Envió el formulario de contacto | Captación | Cuando el formulario se ha enviado correctamente, no en el clic | Ejemplos: ```js // Tras confirmar el pago en tu aplicación window.limecount?.track?.('purchase'); ``` ```html ``` ```js // Dentro del código que se ejecuta cuando el envío ha salido bien window.limecount?.track?.('submit_contact'); ``` Envía `submit_contact` cuando tu aplicación ya sabe que el formulario se envió bien, no al pulsar el botón: un clic no garantiza que el envío haya funcionado. Qué conviene saber: - **No hace falta declararlos en `data-events`.** El tracker los admite sin más. El resto de tus eventos sí necesitan figurar ahí. - **Siguen el modo ampliado**, como cualquier evento: solo se registran si la persona ha aceptado la medición ampliada. En básico no se cuentan. Consulta [modos y consentimiento](https://limecount.com/docs/modos-de-medicion.md). - **El nombre debe ser exacto y en minúsculas.** `Purchase` o `purchase_extra` son eventos normales, no reservados, y no entran en los embudos por defecto. - **`purchase` no lleva importe ni moneda.** Cuenta compras, no ingresos. - **`view_pricing` y `view_contact` también se pueden medir por ruta.** Si tu página de precios o de contacto tiene su propia dirección, usa un paso por página en el embudo. El evento sirve cuando no hay ruta propia, por ejemplo en un modal o en una sección con ancla. - Si ya enviabas alguno de estos nombres, sus datos anteriores pasan a verse como reservados; no hay que migrar nada. ## Si el evento no aparece | Lo que observas | Qué revisar | | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | | `window.limecount` no existe | Clave, dominio y `src` reales; script cargado; dominio autorizado; HTTPS y bloqueadores. Espera a que termine de cargar. | | `getMode()` devuelve `basic` | Falta aceptación válida: `data-consent` sigue en `necessary` y no se llamó a `setConsent('granted')`. Conecta el gestor. | | `getMode()` devuelve `off` | Exclusión, DNT/GPC, ruta excluida o básico desactivado sin permiso ampliado. No fuerces la aceptación para eludir esas señales. | | No sale la petición de un evento | El nombre no está en `data-events`, es distinto en mayúsculas/minúsculas, o la acción ocurrió antes de cargar/aceptar. | | Sale el evento pero faltan propiedades | Clave, valor y tipo deben estar declarados exactamente en `data-props`. Los atributos HTML son cadenas de texto. | | Hay `202` pero no recuento | Comprueba modo habilitado en ajustes, dominio, exclusiones, filtros, periodo, cuotas, límites y el tiempo de actualización. | | Cuenta dos veces | No combines atributo HTML y `track()` para la misma acción; revisa que tu aplicación solo llame una vez. | | Ya había acciones antes de instalar o aceptar | No se reconstruyen ni se envían retroactivamente. Haz una acción nueva después de completar la instalación. | ## Límites y eventos automáticos Usa nombres en minúsculas como `clic_contacto`, empezando por una letra y siguiendo con letras, números, `_` o `-`, hasta 64 caracteres. No incluyas secuencias de seis o más dígitos ni datos personales. Los nombres `pageview`, `outbound`, `download` y los que empiezan por `_` están reservados para el tracker. Se admiten hasta diez propiedades categóricas declaradas y un cuerpo total de 2.048 bytes. La protección antes del envío omite lo que no coincide con los catálogos; las claves sensibles también se descartan. No envíes contenido de formularios, emails, teléfonos, cuentas, pedidos, tokens ni valores que identifiquen a una persona. En ampliado aceptado, `outbound` mide enlaces externos con una categoría fija, y `download` mide enlaces a ficheros (.pdf, .zip, .rar, .7z, .dmg, .exe, .msi, .csv, .xls(x), .doc(x), .ppt(x), .mp3, .mp4, .mov, .epub y .txt) con una ruta o plantilla permitida. No necesitas declararlos como eventos personalizados. Una acción personalizada recibida cuenta para el límite del plan igual que una página vista; los eventos internos de tiempo o inicio de sesión no son facturables. Las condiciones de privacidad, exclusiones y consentimiento siguen aplicándose: registrar un evento no concede una exención legal ni garantiza anonimización. Consulta [limpieza antes del envío](https://limecount.com/docs/limpieza-cliente.md) y [texto para tu política](https://limecount.com/docs/texto-politica.md). Fuente: https://limecount.com/docs/eventos --- # Instalar Limecount > Pega una línea de código en la cabecera de tu web y empieza a medir sin cookies. Sirve para HTML, WordPress, Shopify, Google Tag Manager y webs en React o Vue. **Dos modos:** el básico cuenta páginas vistas; eventos, campañas y tiempo de interacción requieren el modo ampliado y aceptación válida. Consulta [modos de medición y consentimiento](https://limecount.com/docs/modos-de-medicion.md). Una línea de código en todas las páginas de tu web. El código actualizado usa una política conservadora: las rutas desconocidas se agrupan y los eventos personalizados requieren una declaración de nombres y categorías. Consulta [limpieza antes del envío](https://limecount.com/docs/limpieza-cliente.md) para configurar el detalle sin valores libres. ## 1. Copia tu código Lo encontrarás en la pantalla de instalación de tu web (**Webs → tu web → Instalar**), que se abre al crearla. Tiene esta forma, con la clave pública de tu web: ```html ``` `data-consent="necessary"` (valor por defecto) mide solo lo necesario. Si usas un gestor de consentimiento (CMP), cuando el visitante acepte todo, la web debe servir `data-consent="all"` (o llamar a `limecount.setConsent('granted')`). El atributo se lee una sola vez al cargar: para cambios sin recargar, usa `setConsent('granted')` o `setConsent('denied')`: se activa el ampliado con sesiones temporales y token de visitante. Consulta [modos de medición y consentimiento](https://limecount.com/docs/modos-de-medicion.md). Las etiquetas antiguas con `data-enhanced`/`data-sessions` siguen funcionando. ## 2. Pégalo antes de `` ### HTML Abre la plantilla común de tu web, la que contiene la etiqueta ``, y pega la línea justo antes de ``. ### WordPress Funciona con WordPress, Shopify o cualquier web: pegas una línea en la cabecera. En WordPress, añádela desde el editor del tema (`header.php`, mejor en un tema hijo) o con un plugin de cabeceras y scripts genérico, en la zona de la cabecera de todo el sitio. ### Shopify En **Tienda online → Temas → Editar código**, abre `theme.liquid` y pega la línea antes de ``. ### Google Tag Manager Crea una etiqueta de tipo **HTML personalizado** con el código y el activador **All Pages**. ### React, Vue, Angular y similares Pégalo en el `index.html`. Los cambios de página sin recarga se detectan solos. > ¿Usas un bloqueador de anuncios? Algunos bloquean los scripts de analítica. Para probarlo, desactívalo en tu web o usa una ventana privada sin extensiones. ## 3. Comprueba que funciona Más detalle en [comprobar que funciona](https://limecount.com/docs/comprobar.md). Abre tu web en otra pestaña. La pantalla de instalación del panel pasa a **recibido** en cuanto llega la primera visita, normalmente en segundos. | Si no aparece | Revisa | | ----------------------- | -------------------------------------------------------------------------------------------------- | | Nada tras un minuto | Que la línea está en el HTML publicado (ver código fuente de la página) | | Solo en algunas páginas | Que la plantilla es común a todas | | Visitas de otro dominio | El dominio en Ajustes de la web: el código solo cuenta en el dominio de su web (cabecera `Origin`) | | Nada desde tu ordenador | Por defecto no se envía nada desde `localhost`; para probar en local añade `data-local="1"` | Fuente: https://limecount.com/docs/instalacion --- # Texto para tu política de privacidad > Un texto base para explicar en tu política de privacidad que usas Limecount, qué datos se tratan y cómo pueden excluirse tus visitantes. Revísalo con tu asesor. > Este texto es una plantilla orientativa, no asesoramiento legal. Adáptalo a tu caso y revísalo con tu asesor: lo que digas debe ser cierto para tu web. Puedes informar de la medición de audiencia con un párrafo como el siguiente. Sustituye lo que va entre corchetes. ## Texto base ```text Medición de audiencia básica. Usamos Limecount para elaborar estadísticas de uso de [nuestra web], con la finalidad exclusiva de [finalidad y base jurídica evaluadas]. Contamos páginas vistas, rutas declaradas o agrupadas, procedencia general y tipo de dispositivo, por día UTC. Este modo no utiliza cookies de seguimiento, identificadores persistentes ni campañas o eventos personalizados. No guardamos IP completa ni User-Agent completo. La conexión recibe estos datos temporalmente para atender y proteger la petición. Los datos se procesan en [ubicaciones y proveedores verificados], se conservan durante [24 / 12 / 6] meses y no se reutilizan para otras finalidades ni para seguir personas entre webs. Puedes excluir este navegador en [enlace de exclusión]. Consulta [identidad y contacto del responsable, encargados, base jurídica, derechos y demás información aplicable]. ``` Si tienes el ampliado habilitado, añade y adapta este segundo párrafo; omítelo si no lo utilizas: ```text Analítica ampliada opcional. Si aceptas específicamente esta finalidad en [gestor de preferencias], medimos además acciones y categorías declaradas, campañas, país, región y ciudad aproximados, familia de navegador/sistema y tiempo de interacción, agrupados por hora. La ubicación se deduce temporalmente de la IP con una base de datos local, sin conservar la IP, coordenadas ni código postal. Si habilitamos sesiones, utilizamos un código aleatorio en sessionStorage: caduca tras 30 minutos sin actividad o 12 horas como máximo y se elimina al retirar. Si aceptas todo, guardamos además en localStorage (clave lc_visitor) un identificador aleatorio de visitante que caduca a los 13 meses desde su creación, no se renueva con nuevas visitas y se borra al rechazar o retirar. No se deriva de tu IP, navegador o pantalla. El servidor no conserva ese identificador: guarda un código derivado (seudónimo), que se elimina con el resto de datos al vencer la conservación. Al retirar, se borra del navegador, pero los datos ya registrados con el código derivado permanecen en las estadísticas hasta vencer la conservación, sin poder enlazarse con visitas nuevas. Sirve para contar navegadores distintos que aceptaron, no para seguirte entre webs. El servidor conserva una marca técnica de deduplicación de sesión con TTL de 24 horas; las estadísticas conservan un contador de inicio, sin token de sesión. No se usan identificadores de cuenta ni datos de formularios. Puedes rechazar o retirar en [acceso permanente a preferencias] con la misma facilidad que aceptar. La retirada detiene los futuros datos ampliados y [mantiene la medición básica evaluada / detiene toda medición, según la configuración]. No reconstituimos las acciones anteriores a tu aceptación. La retirada no elimina automáticamente estadísticas ya agregadas ni afecta a la licitud del tratamiento anterior. ``` ## Qué debes comprobar - Que el periodo de conservación del texto coincide con **Ajustes de la web → Conservar visitas durante** (24, 12 o 6 meses). - Que el enlace de exclusión funciona. Cómo obtenerlo: [página de exclusión](https://limecount.com/docs/pagina-exclusion.md). - Que no envías datos personales en las propiedades de tus [eventos personalizados](https://limecount.com/docs/eventos.md). - Que citas a Limecount como proveedor de la medición. ## Do Not Track y GPC El tracker y la ingesta respetan siempre Do Not Track y Global Privacy Control en ambos modos, independientemente del valor de ajustes antiguos. Revisa [modos de medición y consentimiento](https://limecount.com/docs/modos-de-medicion.md) antes de publicar esta plantilla. Si no usas `data-consent="all"` ni sesiones, retira del segundo párrafo las frases del identificador de visitante y de sesión. El básico sin aceptación previa requiere evaluar las condiciones aplicables; un texto en la política no sustituye esa evaluación ni la configuración del servicio. Para el contexto normativo, lee [analítica web sin banner de cookies: qué dice la guía de la AEPD](https://limecount.com/blog/analitica-sin-banner-aepd). Fuente: https://limecount.com/docs/texto-politica --- # Banner y preferencias de privacidad > Cómo aceptar, rechazar o retirar la analítica ampliada de la web de Limecount y qué elección se recuerda en tu navegador. ## Tu elección en la web de Limecount El aviso permite **Aceptar analítica ampliada** o **Rechazar analítica ampliada**, con botones del mismo estilo y visibilidad. No hay una casilla opcional marcada de antemano. Navegar, hacer scroll o ignorar el aviso no equivale a aceptar. El contenido de la web sigue disponible sin aceptar. Usamos el nombre «analítica ampliada» porque el tracker no instala cookies de seguimiento. El aviso solicita permiso para una finalidad de medición, no para cookies que no existen. La ausencia de cookies no elimina por sí sola todas las obligaciones de privacidad. | Elección | Qué permite | | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | | Sin elegir o rechazar | Solo el básico configurado: páginas vistas, procedencia y dispositivo general, por día UTC | | Aceptar | Añadir eventos y categorías declaradas, campañas, país, región y ciudad aproximados, familia de navegador/sistema, interacción y sesiones temporales | | Retirar | Detener los futuros datos ampliados; volver al básico configurado | En limecount.com no hay identificador de visitante: no se guarda IP completa, User-Agent completo, contenido de formularios ni identificadores de personas o sesiones en los eventos. La IP y las cabeceras forman parte de la conexión y requieren minimización adicional de los registros de infraestructura. DNT/GPC y la exclusión bloquean ambos modos aunque se haya aceptado. Bloqueadores y errores de red pueden impedir recuentos. El ampliado de esta web incorpora un código aleatorio de sesión en `sessionStorage`, distinto de la preferencia de 180 días: caduca tras 30 minutos sin actividad o 12 horas como máximo. No procede de tu IP o cuenta y se elimina al retirar. El servidor conserva una marca técnica de deduplicación con TTL de 24 horas, sin incluirla en las estadísticas. Consulta [sesiones medidas](https://limecount.com/docs/sesiones-temporales.md). La versión anterior del permiso se vuelve a preguntar. ## Cambiar o retirar el permiso En cualquier página pública abre **Preferencias de privacidad**, en el pie. Puedes aceptar, rechazar o, si habías aceptado, pulsar **Retirar consentimiento**. Retirar tiene efecto sobre los próximos envíos; no recupera eventos anteriores ni cancela peticiones ya enviadas. No elimina automáticamente estadísticas agregadas anteriores; los derechos se atienden por el canal de privacidad del responsable. El aviso es una región informativa, no una barrera para acceder al contenido. Aceptar y rechazar requieren una acción explícita. La preferencia de analítica de la web pública no concede permisos para medir el panel, los enlaces compartidos o la página de exclusión. ## Almacenamiento de la preferencia Solo después de una elección guardamos `lc_analytics_choice` en el almacenamiento local del mismo origen. Contiene la elección (`granted` o `denied`), la versión de finalidad `analytics-v2`, la fecha de elección y la de caducidad. **No contiene un identificador de visitante ni se envía al recolector de analítica.** La preferencia dura **180 días desde la elección**. Visitar o reabrir preferencias no renueva ese plazo. Una nueva elección explícita sí lo inicia de nuevo. Si caduca, cambia la versión, se borra o está dañada, el ampliado queda sin permiso y volvemos a preguntar. La retirada en una pestaña se comunica a otras pestañas del mismo origen mediante el evento de almacenamiento del navegador. Si tu navegador impide guardar una elección nueva, se aplica durante esa página y el aviso informa del fallo. Al retirar se intenta eliminar la aceptación anterior antes de guardar el rechazo. Si el navegador impide tanto borrar como escribir, no se puede garantizar actualizar una preferencia antigua: el aviso pide borrar los datos de este sitio en el navegador. Una aceptación nueva que no se pudo guardar no se restaura al recargar. La exclusión voluntaria del tracker usa por separado `lc_ignore`. Las cookies técnicas de sesión del panel y de los enlaces protegidos tienen otras finalidades; no se aceptan mediante este aviso. ## Cuándo se puede usar el básico sin aceptación La [guía de la AEPD sobre medición de audiencia](https://www.aepd.es/guias/guia-cookies-analiticas-externas.pdf) contempla una exención condicionada, no una autorización general para toda la UE. El editor y su proveedor deben evaluar finalidad, anonimización efectiva, ausencia de cruce/reutilización, conservación, información, separación entre editores y garantías contractuales. La configuración técnica por sí sola no acredita todos esos extremos. Si una instalación no puede acreditar la exención aplicable, debe desactivar también el básico y medir solo tras aceptar. El alojamiento europeo y la ausencia de cookies no sustituyen esta evaluación. La [AEPD](https://www.aepd.es/preguntas-frecuentes/17-internet-y-redes-sociales/FAQ-1707-importancia-de-las-cookies-en-la-proteccion-de-datos) exige que aceptar y rechazar se ofrezcan con igual visibilidad; retirar debe ser tan sencillo como aceptar. ## Para quienes instalan Limecount en otras webs Este banner pertenece a la web pública de Limecount: **el script de tus webs no lo inserta automáticamente**. Usa un gestor propio o una CMP adecuada a todas las finalidades de tu web y conéctalo según [modos de medición y consentimiento](https://limecount.com/docs/modos-de-medicion.md) (`data-consent="all"` o `setConsent`). A diferencia de limecount.com, en las webs de clientes el servicio crea con todo aceptado un token de visitante de 13 meses; informa de ello en tu política. No reutilices una aceptación de Limecount en otros dominios ni entre webs de clientes. El ejemplo de la web pública conserva una preferencia local versionada, no un justificante central de consentimiento. El responsable debe determinar y documentar qué evidencia necesita, la versión de información mostrada y la evaluación del básico. Si utilizas cookies de publicidad u otros proveedores, necesitas incluir sus finalidades y controles propios; este aviso solo cubre la analítica descrita. ## Preparación para producción Antes de activar medición real en la web de Limecount hay que configurar su clave pública y habilitar el ampliado en los ajustes de ese sitio, verificar la finalidad del básico, concretar titular/contacto y validar los textos legales, proveedores, residencia, registros y conservación. Si la clave está vacía, la web no carga el tracker: probar el banner no significa que esté midiendo visitas reales. Fuente: https://limecount.com/docs/preferencias-de-privacidad --- # Modos de medición y consentimiento > Cuenta páginas vistas en modo básico y activa eventos, campañas y tiempo de interacción solo tras aceptar la analítica ampliada. Limecount distingue dos modos. El básico está activado por defecto y puedes desactivarlo en **Web → Ajustes → Modos de medición**. El ampliado está siempre permitido, pero solo se activa si el visitante acepta. Ningún modo guarda IP completa, cookies de seguimiento, huellas digitales ni navegación de personas entre webs. El básico no usa identificadores; el ampliado, solo con todo aceptado, añade un token de visitante de 13 meses (más abajo). ## Qué mide cada modo | Dato | Básico | Ampliado tras aceptar | | -------------------------------------------------------------------- | ------- | ---------------------------------------------------- | | Páginas vistas y rutas revisadas | Sí | Sí, sin duplicar la vista al aceptar | | Entradas estimadas y dominio general de procedencia | Sí | Sí | | Tipo general de dispositivo | Sí | Sí | | Granularidad temporal almacenada | Día UTC | Hora UTC | | País, región y ciudad aproximados; familia de navegador y sistema | No | Sí; ubicación derivada temporalmente, sin guardar IP | | Campañas UTM declaradas | No | Sí | | Eventos, clics salientes, descargas y categorías declaradas | No | Sí | | Tiempo visible de interacción | No | Sí, desde la aceptación | | Sesiones temporales con código aleatorio | No | Sí, con `data-consent="all"` | | Visitantes recurrentes (navegadores distintos que aceptaron todo) | No | Sí, con `data-consent="all"`; token de 13 meses | | IP completa, texto libre, email, cookies de cuenta o URL sin limpiar | No | No | «Visitas» es una estimación de entradas; no representa personas únicas. Recargar la página (F5) no cuenta como entrada nueva: el tracker lo detecta con Navigation Timing sin guardar nada, y la página vista sí se cuenta. En el resumen de cada web se desglosan las páginas vistas básicas, ampliadas e históricas. El histórico anterior a esta versión no se etiqueta como consentido. El día UTC del modo básico puede no coincidir con el día local configurado; en un gráfico horario aparecerá agrupado a medianoche UTC, nunca como hora real de visita. Las campañas, eventos y tiempos de interacción nuevos describen solamente la parte de la audiencia que aceptó. No extrapolamos sus resultados a toda la audiencia. Los objetivos de ruta pueden contar páginas vistas de ambos modos; los objetivos de evento requieren ampliado. La tasa existente por entradas es una aproximación, no una tasa de conversión por persona ni una tasa exclusiva de quienes aceptaron. Las sesiones temporales caducan tras 30 minutos sin actividad y un máximo de 12 horas. Solo se activan con todo aceptado (`data-consent="all"`). Consulta [sesiones medidas](https://limecount.com/docs/sesiones-temporales.md) para conocer el almacenamiento de pestaña, la deduplicación temporal y los límites del recuento. ## Conecta tu gestor de consentimiento La web pública de Limecount incluye un aviso propio con aceptar, rechazar y retirar desde el pie. Su funcionamiento y almacenamiento están descritos en [banner y preferencias de privacidad](https://limecount.com/docs/preferencias-de-privacidad.md). Ese aviso no se inserta automáticamente en las webs de tus clientes: cada editor conecta su gestor a su propia finalidad. 1. Revisa la finalidad y las condiciones del básico para la web y los países en los que opera. Si necesitas consentimiento previo para toda la medición, desactiva **Medición básica sin consentimiento previo**. 2. Copia el snippet de instalación de la web: incluye `data-consent="necessary"` (valor por defecto, solo necesarias). No hay que habilitar el ampliado en los ajustes: siempre está permitido y solo se activa si el visitante acepta. Si desactivaste el básico, el snippet incluirá `data-basic="off"`. 3. Declara las rutas, eventos, categorías y campañas siguiendo [limpieza antes del envío](https://limecount.com/docs/limpieza-cliente.md). 4. Conecta tu gestor de consentimiento (CMP) a la categoría específica de analítica. No lo hagas al cerrar el banner, por continuar navegando, por aceptar condiciones generales ni al aceptar otra categoría. ### Opción recomendada: `data-consent` El snippet nuevo lleva `data-consent="necessary"`. Cuando tu CMP indique que el visitante aceptó todo, la web debe servir la etiqueta con `data-consent="all"`. Con `data-consent` presente se activan en el ampliado las sesiones temporales y el token de visitante. ```html ``` El tracker lee `data-consent` **una sola vez, al cargar**. Si el visitante cambia su elección sin recargar la página, tu CMP debe llamar a `limecount.setConsent('denied')` (o `'granted'`): cambiar el atributo en caliente no tiene efecto hasta la siguiente carga. Retirar el permiso borra el token solo con `setConsent('denied')` o en la siguiente carga con `data-consent="necessary"`. Si hay un `setConsent` en la cola `window.limecount.q`, se aplica después del atributo y prevalece. ### Para cambios en caliente: `setConsent` El siguiente adaptador funciona antes y después de cargar el tracker. Pasa únicamente `true` si tu gestor tiene una aceptación válida para la finalidad actual: ```js function actualizarConsentimientoAnalitica(aceptado) { const estado = aceptado === true ? 'granted' : 'denied'; if (window.limecount?.setConsent) { window.limecount.setConsent(estado); } else { window.limecount = window.limecount || {}; window.limecount.q = window.limecount.q || []; window.limecount.q.push(['setConsent', estado]); } } // Desde los callbacks reales del gestor: // aceptación de analítica -> actualizarConsentimientoAnalitica(true) // rechazo o retirada -> actualizarConsentimientoAnalitica(false) ``` Al cargar cada documento, el tracker empieza con el consentimiento que indique `data-consent` (`necessary` por defecto, sin ampliado). Tu gestor debe restaurar una elección vigente, bien sirviendo `data-consent="all"`, bien mediante la cola antes de cargar el script, o notificarla después con `setConsent`. El tracker no almacena ni deduce la aceptación y no inserta un banner en las webs de tus clientes. La web pública de Limecount sí tiene un aviso propio de preferencias. El gestor debe permitir rechazar y retirar con la misma facilidad, conservar la evidencia necesaria y solicitar una nueva elección al cambiar la finalidad. No se envían nombres, emails ni identificadores del consentimiento al recolector. ```js window.limecount.getMode(); // 'basic', 'enhanced' u 'off' window.limecount.setConsent('granted'); // solo desde una aceptación válida window.limecount.setConsent('denied'); // retirada inmediata para futuros envíos ``` Aceptar no reenvía eventos anteriores ni duplica una página ya contada en básico. Los eventos `track` encolados antes de cargar el tracker se descartan porque no se puede acreditar su estado de consentimiento cuando ocurrieron. Registra eventos nuevos después de la inicialización. La retirada no puede cancelar peticiones ya enviadas ni elimina automáticamente estadísticas ya agregadas; las solicitudes de derechos se gestionan por el canal de privacidad. Las etiquetas antiguas con `data-enhanced="1"` (y `data-sessions="1"`) y sin `data-consent` siguen funcionando como antes: el ampliado espera a `setConsent('granted')`, con sesiones temporales si llevan `data-sessions`, pero sin token de visitante. Recomendamos migrar a `data-consent`. Si básico está desactivado, aceptar inicia una primera vista de la página actual; rechazar o retirar detiene la medición. Si básico está activado, rechazar o retirar conserva únicamente sus páginas vistas posteriores. DNT/GPC y `optOut()` bloquean ambos modos; `optIn()` levanta la exclusión manual pero nunca concede consentimiento ampliado. ## Token de visitante (solo con todo aceptado) Con `data-consent="all"` (o `setConsent('granted')` en una etiqueta con `data-consent`), el tracker guarda en `localStorage` una clave `lc_visitor::` con 128 bits aleatorios (Web Crypto). Caduca a los **13 meses desde su creación** y no se renueva con nuevas visitas. No se deriva de IP, navegador ni pantalla: no es una huella. Se borra al rechazar o retirar el consentimiento, al excluirse (`lc_ignore`) o con DNT/GPC. El servidor nunca guarda el token: guarda `visitor_id`, un número de 64 bits derivado de él y del sitio. Es un seudónimo a efectos del RGPD (dato personal seudonimizado) y se borra con la retención y el purgado de eventos. Al retirar el consentimiento se borra el token del navegador, pero los eventos ya registrados con su `visitor_id` siguen en las estadísticas hasta el plazo de retención de la web (ya no se pueden enlazar con visitas nuevas). El panel muestra «Visitantes (con aceptación)»: navegadores distintos que aceptaron todo, estimado, sin extrapolar al total de la audiencia ni deduplicar entre webs. Consulta [sesiones medidas](https://limecount.com/docs/sesiones-temporales.md). Informa de este token en tu política: [texto base](https://limecount.com/docs/texto-politica.md). ## Qué aplica el servidor El servidor verifica que el modo no esté desactivado en esa web (el ampliado siempre está permitido). Un evento ampliado requiere además la declaración de consentimiento del tracker. La ingesta exige que la cabecera `Origin` sea la del dominio de la web (o sus subdominios, si están permitidos): un código usado desde otro dominio se descarta. Tampoco se miden navegadores automatizados (`navigator.webdriver`), bots, headless, crawlers de IA, monitores de uptime ni previsualizadores de enlaces, ni peticiones que dicen ser un navegador moderno sin cabeceras de navegador; no se usa fingerprinting. Esta declaración no sustituye la evidencia que conserva el gestor del editor. Los cambios de ajustes tardan como máximo 60 segundos por la caché; vuelve a publicar el snippet para que el navegador también adopte la configuración. Sin modo declarado, las integraciones antiguas se tratan como básicas: solo páginas vistas, sin propiedades, campañas, país ni navegador. Los eventos ampliados rechazados no se convierten silenciosamente en básicos. La validación y la limpieza siguen siendo obligatorias en ambos modos; aceptar nunca habilita recopilar cualquier dato. ## Condiciones para usar el básico sin pedir aceptación La [guía de medición de audiencia de la AEPD](https://www.aepd.es/guias/guia-cookies-analiticas-externas.pdf) contempla una exención condicionada: finalidad limitada a audiencia para el editor, estadísticas anónimas, ausencia de cruce y reutilización para otros fines, información a visitantes, conservación limitada, separación entre editores y garantías contractuales y evaluación documentada del proveedor. No es una exención automática para toda la UE ni una certificación de esta instalación. El editor debe documentar la evaluación aplicable, informar en su política de privacidad y formalizar el encargo de tratamiento. La infraestructura debe evitar persistir IP, cabeceras, cookies y URLs completas en proxies, CDN y registros. El servidor ve temporalmente IP y cabeceras para atender la conexión y protegerla; no se pueden eliminar del protocolo antes de que llegue la petición. Usa un recolector dedicado sin cookies y revisa backups, residencia y supresión. Revisa periódicamente si la conservación elegida (6, 12 o 24 meses) sigue siendo necesaria. La minimización no prueba por sí sola anonimización: revisa rutas, catálogos y combinaciones poco frecuentes. No añadas nombres de personas a catálogos estáticos. Si estas condiciones no se pueden acreditar, desactiva el básico y mide solo después de aceptar. Nunca se promete capturar el 100 % de visitas: exclusiones, bloqueadores y fallos de red siguen existiendo. ## Despliegue de esta versión Aplica la migración ClickHouse `0003-measurement-mode` antes de actualizar ingesta y estadísticas. Actualiza el tracker, reinicia el recolector que mantiene su copia en memoria e invalida la caché de `s.js`. Publica los snippets nuevos y prueba aceptación, rechazo, recarga y retirada. Las versiones antiguas no tienen esta separación de modos; no las mantengas activas junto a la nueva etiqueta. ## Recorridos En la tarjeta «Páginas» del resumen, las pestañas «Anterior» y «Siguiente» muestran entre qué páginas de tu sitio se mueve la gente. «Anterior» lista de qué página venían las vistas; la fila «Entrada o externa» agrupa las que llegaron sin página anterior de tu sitio (entrada directa, buscador, otra web) y no se puede filtrar. «Siguiente» muestra adónde van después de una página concreta, así que hay que filtrar primero esa página: sin filtro no se muestra nada. Pulsar una fila filtra por esa página, y con la página filtrada «Anterior» te dice de dónde llegan a ella. No se sigue a personas. No se guarda ningún identificador ni se reconstruye la ruta de nadie: en cada vista solo se cuenta de qué página del mismo sitio venía, y esas cuentas se suman. Por eso «Siguiente» es la misma cifra vista desde el otro lado, no un recorrido individual. El mismo desglose está en la vista compartida y en el CSV. Para ver estos datos en el panel, consulta [el resumen de estadísticas](https://limecount.com/docs/panel-estadisticas.md#desgloses). Fuente: https://limecount.com/docs/modos-de-medicion --- # Alertas de tráfico por email > Recibe un aviso cuando las visitas de una web caen a menos de la mitad, se triplican o dejan de llegar datos. Cuándo se evalúa, umbrales y destinatarios. Las alertas te avisan por email cuando el tráfico de una web se sale de lo habitual. Vienen desactivadas. Se activan por web en **Ajustes de la web → Alertas por email**; el cambio se guarda al momento. ## Qué avisos hay | Aviso | Cuándo salta | | --------- | --------------------------------------------------------------------------------------- | | Caída | Las visitas del día son **menos de la mitad** de lo habitual | | Pico | Las visitas del día son **3 veces o más** lo habitual | | Sin datos | No llega ningún dato durante 24 horas, habiendo recibido datos en los 7 días anteriores | «Visitas» son las [entradas estimadas](https://limecount.com/docs/panel-estadisticas.md#indicadores). «Lo habitual» es la media de ese mismo día de la semana en las 4 semanas anteriores: un martes se compara con los 4 martes previos. ## Cuándo se evalúa - Una vez al día por web, cuando termina el día en la [zona horaria de la web](https://limecount.com/docs/ajustes-de-la-web.md). Se evalúa el día cerrado, el de ayer. - Caída y pico solo se calculan si la media habitual es de **al menos 20 visitas** y la web lleva **28 días o más verificada**. Con menos tráfico o una web nueva, la media no es fiable y no se avisa. - Cada aviso se envía una sola vez por web y día. - «Sin datos» avisa una vez y no se repite hasta que vuelvan los datos. Si salta, tiene prioridad sobre la caída de ese día. - Si tu organización ha dejado de recoger visitas (prueba terminada, suscripción cancelada o tope del 200 % del [plan](https://limecount.com/docs/plan-y-facturacion.md)), no se envían alertas, porque la ausencia de datos sería nuestra y no de tu web. ## A quién llegan A las personas con rol de propietario o administrador de la organización que tengan el email verificado. El rol de lectura no recibe alertas. Cada destinatario puede recibir como máximo 5 emails por hora; el resto se descarta. ## Quién puede activarlas Propietario y administradores. El rol de lectura ve el ajuste desactivado. Ver [equipo y permisos](https://limecount.com/docs/equipo.md). Para un resumen periódico en lugar de avisos puntuales, usa el [informe semanal](https://limecount.com/docs/informe-semanal.md). Fuente: https://limecount.com/docs/alertas-por-email --- # Limpieza antes del envío > Configura rutas, eventos y categorías permitidas para que el tracker no transmita valores libres del visitante. Política conservadora y límites. **Dos modos:** el básico cuenta páginas vistas; eventos, campañas y tiempo de interacción requieren el modo ampliado habilitado y aceptación válida. Consulta [modos de medición y consentimiento](https://limecount.com/docs/modos-de-medicion.md). El tracker actual prepara cada evento **en el navegador**, antes de serializarlo. No envía la URL completa ni propiedades libres. La validación de la ingesta sigue siendo una segunda capa; no sustituye esta política local. ## Instala el código actualizado Copia el snippet nuevo desde la instalación de tu web. Es obligatorio `data-host`, que debe ser el dominio público de la web. La clave pública y el dominio identifican el sitio, no a la persona. Un script antiguo sin `data-host` no envía eventos con esta versión: actualiza las etiquetas antes de publicar. Mantén `referrerpolicy="no-referrer"` y `crossorigin="anonymous"` en la etiqueta. Añade solo rutas, nombres de evento y categorías que hayas revisado. Ejemplo de configuración (sustituye la clave y el dominio por los de tu web): ```html ``` No construyas estos atributos con datos de una sesión, usuario o formulario. Son un catálogo estático del sitio, igual para todos sus visitantes. La configuración se revisa al cargar el script y permanece fija durante esa carga. ## Rutas - La raíz `/` se admite siempre. - Si la ruta casa con una plantilla declarada en `data-paths`, se envía la plantilla. En `/blog/:articulo`, cualquier segmento de artículo se sustituye por el texto literal `:articulo`. No se transmite su valor original. Cada parámetro representa un solo segmento; no se admiten comodines que copien texto libre. - Las demás rutas se envían tal cual (`/servicios/diseno-web`), salvo los segmentos que parecen un dato personal o un identificador, que se sustituyen por `:id`: los que contienen `@` (emails), 6 o más dígitos seguidos, UUID y tokens largos de letras y números. `/pedidos/1234567/factura` llega como `/pedidos/:id/factura`. - Esta detección es automática y no entiende el significado del texto: un nombre propio en la ruta (`/clientes/ana-garcia`) no se detecta. Si tus URLs llevan nombres u otros datos de personas, declara una plantilla (`/clientes/:cliente`) para esa sección. - Los fragmentos, credenciales de URL y consultas se eliminan. Solo se conservan las tres UTM cuyos valores estén declarados en el catálogo correspondiente. - Los cambios que solo modifican la consulta o el fragmento no generan una nueva página vista. El host enviado es el dominio estático declarado, no un subdominio generado por visitante. El tracker admite ese host y su variante `www`; un subdominio público diferente necesita su propia declaración estática. No midas dominios o subdominios personales. En desarrollo local existe la excepción explícita `data-local="1"`, que no debe usarse en producción. La lista de parámetros permitidos del servidor **no hace que el tracker envíe consultas**. Es una segunda capa para otras integraciones, que necesitan su propia revisión de privacidad. ## Eventos y propiedades `data-events` contiene nombres fijos, por ejemplo `registro_completado`. Los nombres que no figuren en él se descartan. Los eventos automáticos (`pageview`, `_engagement`, `outbound`, `download`) siguen funcionando; no deben utilizarse como nombres de eventos personalizados. Cada propiedad debe existir en `data-props`, y su valor debe coincidir exactamente, incluido el tipo, con una categoría declarada. Por ejemplo: ```js window.limecount.track('registro_completado', { plan: 'pro' }); ``` Sin catálogo de propiedades, no se envía ninguna. Las propiedades desconocidas, objetos, arrays y valores fuera de catálogo se omiten; no se convierten a texto ni se recortan para que encajen. Algunas claves típicas de identificación se rechazan incluso si se intentan declarar. No declares información personal como categoría. Un catálogo no convierte en anónimos datos de identidad, salud, intereses sensibles o grupos tan pequeños que permitan identificar a alguien. Las listas estáticas son una reducción del riesgo, no una detección infalible del significado de un texto. ## Fuentes, descargas y datos técnicos La procedencia no incluye ruta ni consulta. Algunos buscadores y redes se agrupan en dominios generales conocidos. Las demás fuentes externas aparecen como `external.invalid`, una etiqueta técnica fija que no hace ninguna petición a ese dominio. Los eventos salientes no envían el destino original: usan esa misma categoría fija. Las descargas solo conservan una ruta o plantilla declarada; el resto se agrupa. El ancho de ventana se reduce a tres categorías (480, 900 o 1440), en lugar de transmitir su precisión original. ## Transporte y exclusión Se utiliza únicamente `fetch` con `credentials: 'omit'`, `referrerPolicy: 'no-referrer'` y `keepalive`. No hay fallback a Beacon, porque no permite elegir esas dos políticas. Si el navegador no puede enviar la petición segura, el evento se pierde; no se reintenta con un transporte más permisivo. El tracker respeta DNT y GPC antes de realizar peticiones de eventos. La exclusión manual funciona también en memoria si el almacenamiento local está bloqueado. El ajuste DNT/GPC del servidor sigue disponible como protección adicional para otras integraciones. La dirección IP, el User-Agent y la cabecera Origin pueden ser visibles al servidor durante la conexión. El código de JavaScript no puede impedirlo; la ingesta no debe persistir IPs ni User-Agent completos. Sirve `s.js` desde un colector HTTPS independiente, sin cookies propias de cuentas, y revisa también los logs del proxy, CDN y balanceador. La etiqueta `crossorigin` omite credenciales en la descarga de un script de otro origen, pero no suprime cookies de un script del mismo origen. ## Efecto sobre las estadísticas y despliegue Esta política reduce deliberadamente el detalle: los identificadores de las rutas se agrupan en `:id`, propiedades y campañas no configuradas desaparecen y algunas acciones excluidas no se cuentan. No compares sus cifras con las de un tracker más permisivo como si midieran exactamente lo mismo. El script se comprueba contra un presupuesto de **4 KB gzip**. La limpieza ha ampliado el presupuesto anterior de 2 KB. El límite de tamaño del cuerpo de cada evento sigue siendo 2.048 bytes. Antes de servir la nueva versión, actualiza snippets y catálogos, construye el tracker, publica esa versión y vacía su caché. Las versiones antiguas o clientes alternativos no adquieren esta protección por una actualización de la documentación. El servidor no puede impedir retroactivamente que un cliente antiguo envíe información. Consulta [cómo se recogen los datos](https://limecount.com/docs/como-funciona.md) para conocer el almacenamiento, las limitaciones y los controles de producción que siguen pendientes. Fuente: https://limecount.com/docs/limpieza-cliente --- # Instalar Limecount con una IA > Pide a Claude Code, Cursor u otra IA que instale Limecount en tu web o consulte tus estadísticas. Conecta el servidor MCP o usa llms.txt, con prompts listos. Si programas con un asistente de IA (Claude Code, Cursor, Claude Desktop, VS Code con Copilot…), puede instalar y configurar Limecount por ti. Para que no invente atributos, Limecount publica su documentación en un formato pensado para IA: un servidor MCP y los ficheros `llms.txt` y `llms-full.txt`. > Las herramientas de **documentación** del servidor MCP son públicas: no necesitan cuenta ni clave. Las de **estadísticas** son opcionales y solo funcionan si añades una [clave de API](https://limecount.com/docs/api.md) de solo lectura al conectar; sin ella, el servidor no accede a tus estadísticas ni a tu panel, y nunca a datos de visitantes individuales. ## Antes de empezar Crea tu web en Limecount y copia su **clave pública** (empieza por `lc_`) desde **Webs → tu web → Instalar**. Es pública: va en el HTML de tu web, así que puedes pegarla en el chat con la IA sin riesgo. Si no la tienes aún, la IA instalará el código con un marcador y te dirá dónde cambiarlo. ## Opción 1: servidor MCP (recomendada) La dirección del servidor es `https://limecount.com/mcp` (protocolo MCP sobre HTTP). Para instalar Limecount con ayuda de la IA no hace falta autenticación; para consultar tus estadísticas, añade la clave como se explica [más abajo](#consultar-tus-estadisticas-con-la-ia). ### Claude Code Ejecuta una vez en tu terminal: ```bash claude mcp add --transport http limecount https://limecount.com/mcp ``` ### Claude Desktop y Claude.ai Abre **Configuración → Conectores → Añadir conector personalizado**, pon el nombre `Limecount` y la dirección `https://limecount.com/mcp`. No hace falta iniciar sesión. ### Cursor Crea o edita `.cursor/mcp.json` en tu proyecto (o el global `~/.cursor/mcp.json`): ```json { "mcpServers": { "limecount": { "url": "https://limecount.com/mcp" } } } ``` ### VS Code Crea o edita `.vscode/mcp.json`: ```json { "servers": { "limecount": { "type": "http", "url": "https://limecount.com/mcp" } } } ``` ### Qué herramientas ofrece | Herramienta | Para qué sirve | | --------------------- | ----------------------------------------------------------------------------------------------- | | `get_install_snippet` | El código exacto de instalación y los pasos para tu framework, con cómo comprobar que funciona. | | `list_docs` | Lista las páginas de la documentación. | | `get_doc` | Devuelve una página completa en Markdown. | | `search_docs` | Busca en la documentación y devuelve fragmentos. | | `get_event_guide` | Cómo enviar eventos, objetivos y embudos. | Para consultar tus estadísticas están las herramientas de la sección [Consultar tus estadísticas con la IA](#consultar-tus-estadisticas-con-la-ia). `get_install_snippet` conoce HTML, Next.js, React, Vue, Angular, Astro, Nuxt, Svelte, WordPress y Google Tag Manager. ## Consultar tus estadísticas con la IA Con una clave de la [API de estadísticas](https://limecount.com/docs/api.md), tu asistente puede responder preguntas como «¿cuántas visitas tuve el último trimestre?» o «¿qué páginas traen más tráfico desde Google?». Las herramientas reenvían la petición a la API de Limecount con tu clave, y solo devuelven datos agregados. > La clave da **acceso de lectura a las estadísticas** de las webs que elijas. Guárdala como una contraseña: no la subas a un repositorio ni la pegues en un chat. Puedes limitarla a algunas webs y revocarla en cualquier momento desde **Ajustes de organización → Claves de API**. Limecount no guarda ni registra la clave que envía tu cliente MCP. ### 1. Crea la clave En **Ajustes de organización → Claves de API** (solo propietarios y administradores), pulsa **Crear clave** y cópiala: empieza por `lck_` y no se vuelve a mostrar. ### 2. Pásala en la cabecera Authorization En Claude Code: ```bash claude mcp add --transport http limecount https://limecount.com/mcp --header "Authorization: Bearer lck_..." ``` En Cursor (`.cursor/mcp.json`, mejor el global `~/.cursor/mcp.json` para no subir la clave al repositorio): ```json { "mcpServers": { "limecount": { "url": "https://limecount.com/mcp", "headers": { "Authorization": "Bearer lck_..." } } } } ``` En VS Code (`.vscode/mcp.json`; con `inputs` y `password: true` VS Code te pide la clave y no queda escrita en el fichero): ```json { "inputs": [ { "type": "promptString", "id": "limecount-key", "description": "Clave de API de Limecount", "password": true } ], "servers": { "limecount": { "type": "http", "url": "https://limecount.com/mcp", "headers": { "Authorization": "Bearer ${input:limecount-key}" } } } } ``` Los conectores personalizados de Claude Desktop y Claude.ai no admiten, por ahora, cabeceras propias: para consultar estadísticas usa Claude Code, Cursor, VS Code u otro cliente que admita `headers`. ### Herramientas de estadísticas | Herramienta | Para qué sirve | | ---------------------- | ----------------------------------------------------------------------------------------------------------------- | | `list_sites` | Lista tus webs y su `id`. La IA la usa primero. | | `get_stats_overview` | Totales del periodo (visitas, páginas vistas, eventos…), con comparación opcional. | | `get_stats_timeseries` | Evolución por hora, día, semana, mes o trimestre. | | `get_stats_breakdown` | Ranking por página, fuente, país, dispositivo, evento y el resto de [dimensiones](https://limecount.com/docs/api.md#get-stats-breakdown). | | `get_goals` | Objetivos con conversiones y tasa. | | `get_funnels` | Embudos con sus pasos. | Admiten el periodo (`today`, `7d`, `30d`, `month`, `lastMonth`, `90d`, `12m`, `year`) o un rango `from`/`to`, y los mismos filtros que el panel. Si falta la clave, la herramienta devuelve un error que explica cómo crearla y configurarla; si la clave no es válida o se supera el límite de 60 peticiones por minuto, devuelve el mensaje de la API. Un prompt de ejemplo: «Con Limecount, dime las visitas por trimestre del último año de midominio.com y qué tres páginas crecieron más». ## Opción 2: llms.txt si tu herramienta no admite MCP Si tu asistente no soporta MCP, dale una de estas direcciones o pégalas en el chat: - [llms.txt](https://limecount.com/llms.txt): índice de la documentación con enlaces y una descripción de cada página. - [llms-full.txt](https://limecount.com/llms-full.txt): toda la documentación en un solo fichero Markdown. - Cualquier página en Markdown: añade `.md` a su dirección, por ejemplo [`/docs/instalacion.md`](https://limecount.com/docs/instalacion.md). ## Un prompt para copiar Cambia la clave y el dominio por los tuyos. Si todavía no tienes clave, borra esa frase y la IA te indicará dónde ponerla. ```text Instala Limecount (analítica web sin cookies) en este proyecto. Mi clave pública es lc_XXXXXXXXXXXXXXXXXXXX y el dominio de la web es midominio.com. Usa el servidor MCP de Limecount (get_install_snippet) para obtener el código exacto; si no puedes usar MCP, lee https://limecount.com/llms.txt. Detecta el framework del proyecto, coloca la etiqueta