# Snippet de mesure

Le snippet est une balise `<script>` à coller dans le `<head>` de tes pages. Son identifiant est affiché dans la page **Installation** du site. Le script est écrit sans dépendance et pèse moins de 1,5 ko.

## Attributs

| Attribut            | Obligatoire | Effet                                                                                                                                         |
| ------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `data-site`         | oui         | Identifiant public du site. Il est copié depuis la page **Installation**.                                                                     |
| `data-api`          | non         | Adresse à laquelle le script envoie ses données. Par défaut, c’est celle du script lui-même. Ne le change que si ton installation le demande. |
| `data-auto="false"` | non         | Désactive l’envoi automatique des pages vues. Seuls les événements déclarés sont envoyés.                                                     |

## Événements

| Syntaxe                                | Effet                                                                          |
| -------------------------------------- | ------------------------------------------------------------------------------ |
| `data-hgdc-event="nom"` sur un élément | Envoie l’événement `nom` à chaque clic sur l’élément ou sur un de ses enfants. |
| `window.hgdc.track(nom, propriétés)`   | Envoie l’événement `nom`. `propriétés` est facultatif.                         |

Les règles de nommage et de taille sont dans [Événements et propriétés](/docs/reference/evenements/).

## Comportement

- **Pages vues** : une à chaque chargement, puis à chaque changement d’adresse dans une application monopage (`pushState`, `replaceState` et retour arrière).
- **Provenance** : la page d’origine n’est envoyée qu’avec la première page vue de la visite.
- **Navigateurs automatisés** : rien n’est envoyé quand `navigator.webdriver` est vrai.
- **Envoi** : le script utilise `navigator.sendBeacon`, avec `fetch` en secours. Les envois ne transportent pas de cookie.
- **Stockage** : le script de mesure n’écrit rien sur l’appareil du visiteur. Il ne crée pas de cookie et n’utilise ni `localStorage` ni `sessionStorage`.

La bannière Consent est un script distinct. Son snippet et ses attributs sont décrits dans [Bannière et registre Consent](/docs/reference/consentement/).

## Exemple

```html
<script defer src="ADRESSE_DU_SCRIPT" data-site="IDENTIFIANT_DU_SITE"></script>

<button data-hgdc-event="inscription-newsletter">S'inscrire</button>

<script>
  window.hgdc.track("devis-demande", { produit: "site-vitrine" });
</script>
```

Remplace `ADRESSE_DU_SCRIPT` et `IDENTIFIANT_DU_SITE` par les valeurs de ton snippet.
