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

# Événements suivis automatiquement

> Ce que le SDK navigateur Scanova suit automatiquement : pages vues, clics, profondeur de défilement et envois de formulaire, avec type et métadonnées.

Lorsque vous activez les options de suivi automatique dans `scanova('init', ...)`, le SDK capture les actions des visiteurs sans code supplémentaire. Cette page montre exactement ce que chaque fonction envoie.

## Page vue

**Activé par :** `autoPageview: true`

Se déclenche une fois par chargement de page, dès l'initialisation du SDK.

**Type d'événement :** `pageview`

**Métadonnées capturées :** *(aucune — le contexte de page se trouve dans les champs de premier niveau)*

**Exemple de payload complet :**

```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": {}
}
```

**Important :** `autoPageview` se déclenche à l'initialisation du SDK. Si vous appelez en plus `scanova('track', 'page_view', ...)` manuellement, vous enverrez deux événements par chargement de page. Utilisez l'un ou l'autre.

**Déduplication :** le SDK empêche `pageview` de se déclencher deux fois pour la même URL au cours d'un même cycle de vie. Sur un site multipage classique, si la personne quitte la page puis revient à la même URL, le second chargement réinitialise le SDK et le déclenchement est normal. Dans une SPA, où l'URL change côté client, cette protection signifie que revenir sur une route déjà visitée ne redéclenche **pas** la page vue : vous devez le gérer vous-même. Voir le [guide SPA](/fr/conversion-tracking/browser/spa-frameworks).

***

## Clic

**Activé par :** `autoClicks: true`

Se déclenche lorsqu'une personne clique sur un lien (`<a>`), un bouton (`<button>`) ou tout élément portant `role="button"`.

**Type d'événement :** `click`

**Métadonnées capturées :**

| Clé               | Description                                                                                                                            |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `element_type`    | Nom de la balise HTML : `A`, `BUTTON`                                                                                                  |
| `element_text`    | Texte visible ou `aria-label` de l'élément (100 caractères max.). Si `data-scnv-name` est défini, c'est cette valeur qui est utilisée. |
| `destination_url` | Valeur de `href` pour les liens (incluse uniquement si présente et différente de `javascript:` ou `mailto:`)                           |

**Exemple de payload :**

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

**Libellés d'élément personnalisés :**

Ajoutez `data-scnv-name` à n'importe quel élément pour contrôler le libellé repris dans les rapports :

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

***

## Envoi de formulaire

**Activé par :** `autoForms: true`

Se déclenche lorsqu'une personne envoie un `<form>` de la page. Les valeurs des champs ne sont **jamais capturées** — seule l'identité du formulaire l'est.

**Type d'événement :** `form_submit`

**Métadonnées capturées :**

| Clé           | Description                                                                                                                |
| ------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `form_name`   | Identifiant du formulaire. Ordre de priorité : `data-scnv-name` → `aria-label` → attribut `name` → `id` → `"unnamed-form"` |
| `form_action` | L'attribut `action` du formulaire, ou le chemin courant s'il n'est pas défini                                              |

**Exemple de payload :**

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

**Nom de formulaire personnalisé :**

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

***

## Profondeur de défilement

**Activé par :** `autoScroll: true`

Se déclenche lorsque la personne dépasse certains paliers de la page. Chaque palier se déclenche **une fois par chargement de page** : faire défiler de haut en bas à répétition ne le redéclenche pas.

**Type d'événement :** `scroll`

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

**Métadonnées capturées :**

| Clé            | Description                                              |
| -------------- | -------------------------------------------------------- |
| `scroll_depth` | Palier en pourcentage atteint : `25`, `50`, `75` ou `90` |

**Exemples 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 } }
```

Les événements de défilement utilisent un debounce de 100 ms afin de ne pas se déclencher sur de légers à-coups.

**Limite en SPA :** les paliers de défilement sont conservés en mémoire et **ne sont pas réinitialisés lors d'un changement de route** dans une SPA. Si la personne atteint 75 % sur `/home` puis navigue vers `/pricing`, le SDK ne déclenchera pas les événements 25 %, 50 % ou 75 % sur `/pricing`, seulement les paliers au-delà de celui déjà atteint. Pour réinitialiser au changement de route, rechargez le SDK ou gérez les événements de défilement manuellement.

***

## Combiner suivi automatique et événements personnalisés

Les événements automatiques et personnalisés coexistent sans conflit. Une configuration classique suit automatiquement les pages vues et la profondeur de défilement, et ajoute des événements personnalisés pour les actions à forte valeur :

```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' });
});
```
