> ## 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.

# Eventos registrados automáticamente

> Qué registra automáticamente el SDK de navegador de Scanova: vistas de página, clics, desplazamiento y envíos de formulario, con su tipo y sus metadatos.

Cuando activas las opciones de registro automático en `scanova('init', ...)`, el SDK captura las acciones del usuario sin código adicional. Esta página muestra exactamente qué envía cada función.

## Vista de página

**Se activa con:** `autoPageview: true`

Se dispara una vez por carga de página, en cuanto el SDK se inicializa.

**Tipo de evento:** `pageview`

**Metadatos capturados:** *(ninguno; el contexto de la página va en los campos de nivel superior)*

**Ejemplo de payload completo:**

```json theme={null}
{
  "event_id": "f9ac7db6-f900-4d8e-8918-c846834195a8",
  "event_type": "pageview",
  "site_id": "YOUR_SITE_ID",
  "scan_session_id": "7ad26d4f-3181-4ef8-b6ca-b8f59499dd43",
  "web_session_id": "2d0c328a-01d0-4010-85f4-f327130d1bd4",
  "visitor_id": "363fe851-7d8f-4090-902f-0f5a462829f5",
  "page_url": "https://yoursite.com/?scnv=7ad26d4f-3181-4ef8-b6ca-b8f59499dd43",
  "referrer": "https://google.com",
  "timestamp": "2026-05-13T10:00:00.000Z",
  "device": {
    "user_agent": "Mozilla/5.0 ...",
    "screen_width": 1440,
    "screen_height": 900,
    "language": "en-US"
  },
  "metadata": {}
}
```

**Importante:** `autoPageview` se dispara al inicializarse el SDK. Si además llamas manualmente a `scanova('track', 'page_view', ...)`, enviarás dos eventos por carga de página. Usa uno u otro.

**Deduplicación:** el SDK evita disparar `pageview` dos veces para la misma URL dentro de un mismo ciclo de vida. En un sitio multipágina clásico, si alguien sale y vuelve a la misma URL, la segunda carga reinicializa el SDK y se dispara con normalidad. En una SPA, donde la URL cambia en el cliente, esa protección implica que volver a una ruta ya visitada **no** vuelve a disparar la vista de página: debes gestionarlo tú. Consulta la [guía de SPA](/es/conversion-tracking/browser/spa-frameworks).

***

## Clic

**Se activa con:** `autoClicks: true`

Se dispara cuando alguien hace clic en un enlace (`<a>`), un botón (`<button>`) o cualquier elemento con `role="button"`.

**Tipo de evento:** `click`

**Metadatos capturados:**

| Clave             | Descripción                                                                                                           |
| ----------------- | --------------------------------------------------------------------------------------------------------------------- |
| `element_type`    | Nombre de la etiqueta HTML: `A`, `BUTTON`                                                                             |
| `element_text`    | Texto visible o `aria-label` del elemento (máx. 100 caracteres). Si `data-scnv-name` está definido, se usa ese valor. |
| `destination_url` | Valor de `href` en elementos de enlace (solo se incluye si existe y no es `javascript:` ni `mailto:`)                 |

**Ejemplo de payload:**

```json theme={null}
{
  "event_type": "click",
  "metadata": {
    "element_type": "A",
    "element_text": "View Pricing",
    "destination_url": "/pricing"
  }
}
```

**Etiquetas de elemento personalizadas:**

Añade `data-scnv-name` a cualquier elemento para controlar la etiqueta que aparece en los informes:

```html theme={null}
<button data-scnv-name="Hero CTA">Get Started Free</button>
<a href="/pricing" data-scnv-name="Nav Pricing">Pricing</a>
```

***

## Envío de formulario

**Se activa con:** `autoForms: true`

Se dispara cuando alguien envía cualquier `<form>` de la página. Los valores de los campos **nunca se capturan**: solo la identidad del formulario.

**Tipo de evento:** `form_submit`

**Metadatos capturados:**

| Clave         | Descripción                                                                                                                   |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `form_name`   | Identificador del formulario. Orden de prioridad: `data-scnv-name` → `aria-label` → atributo `name` → `id` → `"unnamed-form"` |
| `form_action` | El atributo `action` del formulario, o la ruta actual si no está definido                                                     |

**Ejemplo de payload:**

```json theme={null}
{
  "event_type": "form_submit",
  "metadata": {
    "form_name": "Contact Form",
    "form_action": "/contact"
  }
}
```

**Nombre de formulario personalizado:**

```html theme={null}
<form data-scnv-name="Newsletter Signup" action="/subscribe">
  ...
</form>
```

***

## Profundidad de desplazamiento

**Se activa con:** `autoScroll: true`

Se dispara cuando la persona pasa ciertos hitos de la página. Cada hito se dispara **una vez por carga de página**: desplazarse arriba y abajo repetidamente no vuelve a dispararlo.

**Tipo de evento:** `scroll`

**Hitos:** 25 %, 50 %, 75 %, 90 %

**Metadatos capturados:**

| Clave          | Descripción                                        |
| -------------- | -------------------------------------------------- |
| `scroll_depth` | Hito porcentual alcanzado: `25`, `50`, `75` o `90` |

**Ejemplos de payload:**

```json theme={null}
{ "event_type": "scroll", "metadata": { "scroll_depth": 25 } }
{ "event_type": "scroll", "metadata": { "scroll_depth": 50 } }
{ "event_type": "scroll", "metadata": { "scroll_depth": 75 } }
{ "event_type": "scroll", "metadata": { "scroll_depth": 90 } }
```

Los eventos de desplazamiento usan un debounce de 100 ms para no dispararse con micromovimientos.

**Advertencia para SPA:** los hitos de desplazamiento se guardan en memoria y **no se reinician al cambiar de ruta** en una SPA. Si alguien llega al 75 % en `/home` y navega a `/pricing`, el SDK no disparará los eventos de 25 %, 50 % ni 75 % en `/pricing`, solo los hitos por encima del ya alcanzado. Para reiniciarlos al cambiar de ruta, recarga el SDK o implementa un enfoque manual de eventos de desplazamiento.

***

## Combinar registro automático y eventos personalizados

Los eventos automáticos y los personalizados conviven sin conflicto. Una configuración típica registra vistas de página y desplazamiento automáticamente, y añade eventos personalizados para acciones de alto valor:

```javascript theme={null}
scanova('init', 'YOUR_SITE_ID', {
  autoPageview: true,
  autoScroll: true,
  autoClicks: false,  // disabled; we use custom click tracking below
  autoForms: false
});

// Manual click event for a specific button
document.getElementById('cta-btn').addEventListener('click', () => {
  scanova('track', 'cta_click', { plan: 'pro', section: 'hero' });
});
```
