> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scanova.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Preguntas frecuentes

> Respuestas a las dudas más habituales sobre el seguimiento de conversiones de Scanova: configuración, atribución, eventos, privacidad e informes del panel.

## General

### ¿Necesito eventos del navegador y de servidor a la vez?

No: puedes usar solo uno de los dos. Los eventos del navegador no requieren nada en el backend y son la forma más rápida de empezar. Los de servidor necesitan una clave de API y código en tu backend, pero son más fiables (los bloqueadores de anuncios no los afectan) y permiten informar de ingresos y de conversiones del servidor.

La mayoría de las implantaciones usan ambos: el SDK del navegador para los datos de interacción y los eventos de servidor para las conversiones confirmadas.

### ¿Puedo medir conversiones sin un escaneo de código QR?

No. El SDK del navegador necesita un `scan_session_id` para enviar cualquier evento: si alguien llega a tu web sin escanear un código QR, el SDK detecta que falta la sesión y no envía nada. La API de eventos de servidor también exige `scan_session_id` como campo obligatorio.

El seguimiento de conversiones de Scanova está pensado específicamente para medir lo atribuido a escaneos de códigos QR. No funciona como una herramienta de analítica web de uso general.

***

## SDK del navegador

### ¿Qué navegadores admite el SDK?

El SDK funciona en todos los navegadores modernos: Chrome, Firefox, Safari, Edge y sus versiones móviles. No necesita más funciones del navegador que `XMLHttpRequest` o `fetch` y `localStorage`.

### ¿Pueden bloquear el SDK los bloqueadores de anuncios?

Sí: los bloqueadores centrados en la privacidad y algunas extensiones pueden bloquear los eventos del navegador enviados desde `t.scanova.io`. Para las conversiones importantes (compras, registros), usa [eventos de servidor](/es/conversion-tracking/server/send-events), que no se pueden bloquear.

### ¿El SDK afecta al rendimiento de mi página?

El SDK se carga de forma asíncrona (atributo `async`) y no bloquea el renderizado. El script ocupa unos 10 KB minificado y comprimido con gzip. Los eventos se envían en segundo plano después de cargar la página.

### ¿Puedo usar el SDK en varias páginas?

Sí: instala el fragmento en la plantilla global del `<head>` de tu sitio y se ejecutará en todas las páginas. El `scan_session_id` se mantiene de una página a otra gracias a `localStorage`, así que todo el recorrido se atribuye al escaneo original.

### ¿Qué pasa si alguien entra sin escanear un código QR?

No se envía ningún evento. El SDK del navegador comprueba que existe un `scan_session_id` antes de enviar nada. Si no lo hay (la persona llegó directamente y no por un escaneo), el SDK se salta el evento por completo. De esa visita no se guarda nada.

### ¿Cuánto dura la atribución de un escaneo?

60 días. Si alguien escanea un código QR y vuelve a tu web dentro de esos 60 días, sus visitas se siguen atribuyendo a ese escaneo. Pasados los 60 días, la entrada `_scnv` de localStorage caduca y se pierde la atribución.

***

## Eventos de servidor

### ¿Cómo obtengo el scan\_session\_id en mi servidor?

Pásalo del navegador a tu servidor. Las formas habituales son:

* Incluirlo en un campo de formulario oculto
* Enviarlo en el cuerpo de la petición cuando tu frontend llama a tu API
* Leerlo del parámetro de la URL al cargar la página y guardarlo en la sesión del usuario en tu servidor

Consulta [Enviar eventos de servidor](/es/conversion-tracking/server/send-events#passing-scan_session_id-from-browser-to-server) para ver ejemplos de código.

### ¿Puedo enviar eventos por lotes?

Sí. Usa `POST /server-events/batch` con hasta 100 eventos por petición. Es lo recomendable para backends de mucho volumen y arquitecturas basadas en colas.

### ¿Qué pasa si reintento una petición fallida?

Si reenvías el mismo `event_id`, el duplicado se marca como tal y queda fuera del recuento de conversiones. Usa siempre el mismo `event_id` en todos los reintentos. Consulta [Idempotencia y reintentos](/es/conversion-tracking/server/idempotency-retries).

### ¿Puedo enviar eventos con fechas pasadas?

Sí: usa el campo `event_time` para indicar cuándo ocurrió el evento. Resulta útil cuando envías eventos de forma asíncrona desde una cola. El campo acepta el formato ISO 8601 en UTC.

***

## Privacidad y datos

### ¿Debo enviar direcciones de correo en texto plano?

No. Nunca incluyas direcciones de correo en texto plano en `metadata` ni en `properties`. Usa `user_identifiers.email_hash` con un hash SHA-256 del correo en minúsculas.

### ¿Para qué sirve el campo `consent`?

El campo `consent` transmite al sistema de seguimiento la señal de consentimiento del RGPD:

* `granted`: todos los campos se guardan con normalidad
* `denied` o `pending`: los campos con datos personales (`page_url`, `referrer`, `city`, `metadata`) se eliminan antes de guardar

El propio valor de `consent` se guarda siempre como registro de auditoría.

### ¿Cuánto tiempo se conservan los datos?

Los eventos se conservan 2 años por defecto. Los registros huérfanos (aquellos cuya sesión de escaneo no se puede resolver) se eliminan automáticamente a las 24 horas.

***

## Panel e informes

### ¿Cuánto tardan los eventos en aparecer en los informes?

Normalmente entre 10 y 30 segundos con carga normal. En picos de tráfico puede haber retrasos de unos minutos.

### ¿Cómo pauso el seguimiento de un sitio?

Abre **Análisis → Seguimiento de conversiones → Configurar el seguimiento de conversiones**, selecciona **Configuración de seguimiento** en el sitio y usa el interruptor **Site Status** de la pestaña **Insertar script**. Con el sitio en pausa, sus eventos devuelven `400`.

### ¿Qué es un evento huérfano y cuándo se elimina?

Un evento huérfano es aquel en el que el `scan_session_id` existe pero todavía no se puede resolver a un código QR: ocurre cuando el evento llega antes de que el sistema haya enlazado la sesión con el registro del código QR. Los eventos huérfanos se eliminan automáticamente a las 24 horas si los datos de sesión no llegan nunca. Si llegan a tiempo, el evento se completa y se conserva los 2 años habituales.
