Aller au contenu

La balise et ses attributs

Tout commence par une balise, collée dans le <head> de chaque page :

<script defer src="https://stats.exemple.fr/a.js" data-site="s_arvordemo001"></script>

/a.js est un script de quelques kilo-octets, sans dépendance, servi par l’API d’eodia analytics (en cache une heure, avec un ETag). L’onglet Installation de chaque site donne la balise avec sa clé et l’adresse de collecte (COLLECT_URL) déjà remplies.

AttributRôle
data-sitela clé publique du site, s_ suivi de douze caractères. Obligatoire
data-identityun visiteur connecté : un JWT HS256 signé par votre serveur avec le secret du site. Voir le visiteur connecté
data-spales changements d’adresse sans rechargement : history (défaut), hash, ou off. Voir les applications à page unique
data-auto="false"pas de page vue automatique : la page appelle EodiaAnalytics.page() elle-même
data-previewautorise le mode aperçu : la carte de chaleur dessinée sur la vraie page, à la demande d’eodia insights
<script
defer
src="https://stats.exemple.fr/a.js"
data-site="s_arvordemo001"
data-spa="history"
data-identity="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…"
data-preview
></script>
  • les pages vues, y compris les changements d’adresse sans rechargement ; une page en pré-rendu (document.prerendering) n’est comptée qu’une fois affichée ;
  • le référent et les paramètres de campagne, y compris dans le fragment (#utm_source=…) ;
  • vos événements (EodiaAnalytics.track), voir l’API de la page ;
  • les mesures automatiques que le site a activées : liens sortants, téléchargements, recherche interne, formulaires, vidéos ;
  • à la sortie de la page : le temps d’engagement (page affichée au premier plan) et la profondeur de défilement maximale ;
  • les clics : un sélecteur stable de l’élément cliqué (son id, data-eodia-zone ou data-testid, sinon un chemin de balises sur cinq niveaux au plus) et la position du clic dans l’élément, de 0 à 1, indépendante de la taille de l’écran ; 100 clics par page au plus ;
  • les zones (data-eodia-zone) : leur temps de visibilité.
  • Elle ne lit jamais une valeur saisie ni un texte sélectionné.
  • Elle ne pose rien d’autre que le cookie de mesure _eoa, et seulement si le serveur le lui demande (site en mode cookie), et la marque d’un refus (optOut()), rangée dans le localStorage.
  • Elle n’envoie rien si le visiteur a refusé (optOut()), si le navigateur envoie le signal Global Privacy Control, ou s’il est piloté par un robot (navigator.webdriver).

La première page vue part en fetch (avec keepalive) pour lire la réponse : le cookie à poser et les mesures automatiques à lancer. Les envois suivants partent en navigator.sendBeacon, groupés par 50 au plus. Le corps est toujours du JSON en text/plain : aucune requête de pré-vol CORS. Le point de collecte vérifie que la page appartient aux domaines du site, puis renvoie son origine dans Access-Control-Allow-Origin.

  • Dans le <head>, avec defer : elle ne retarde pas l’affichage.
  • Une fois par page. Un second chargement est ignoré.
  • Derrière un gestionnaire de balises : une balise HTML personnalisée qui contient la même ligne convient. document.currentScript doit pointer vers elle : pas de chargement par eval.

eodia analytics est un logiciel libre d’Eodia.