Aller au contenu

Suivi

API du tracker

Tous les attributs data et toutes les commandes JavaScript du tracker, et ce qu’il collecte automatiquement.

Le tracker se configure avec des attributs data-* sur sa balise script et se pilote avec une seule fonction, window.globatics(command, …args). Les appels faits avant le chargement du script sont mis en file d’attente par le stub du snippet d’installation, puis rejoués dans l’ordre. Pour savoir quoi envoyer et pourquoi, voir les événements personnalisés et revenus et l’identification et la persistance.

Attributs du script

AttributPar défautEffet
data-siteobligatoireIdentifiant du site. Sans lui, le script ne fait rien.
data-api<script origin>/api/collectEndpoint de collecte. À utiliser avec un proxy first-party.
data-persistdésactivéEnregistre un identifiant de visiteur aléatoire dans le localStorage (globatics_vid) pour que les visiteurs récurrents et la rétention fonctionnent d’un jour à l’autre. Désactivé par Global Privacy Control.
data-hashdésactivéRoutage par hash : les changements de /#/page comptent comme des pages vues et le hash est conservé dans les URL.
data-exclude—Motifs de chemin, séparés par des virgules, jamais suivis : /admin/*,/preview/**. * vaut un segment, ** vaut n’importe quoi. Insensible à la casse.
data-include—Seuls ces motifs de chemin sont suivis (même syntaxe). En sortir par une navigation côté client envoie leave.
data-auto="false"autoPas de pages vues automatiques : appelez vous-même globatics('pageview').
data-respect-dntdésactivéDésactive le suivi quand le navigateur envoie Do Not Track.
data-clicks="false"activéDésactive $click, $rage_click et $dead_click. Le suivi des liens reste actif.
data-errors="false"activéDésactive $error.
data-vitals="false"activéNe charge pas /vitals.js.
Exemple
<script defer
  data-site="SITE_ID"
  data-persist
  data-exclude="/admin/**,/preview/*"
  src="https://globatics.live/script.js"></script>

Commandes JavaScript

globatics(command, …)
// événement personnalisé, props facultatives (à plat, 30 max) et revenu
globatics('event', 'purchase', { plan: 'pro', seats: 3 }, { revenue: 49.9, currency: 'EUR' });
globatics.track('signup', { plan: 'free' });               // identique à 'event'

// identifier le visiteur (nécessite "Allow identify" dans les réglages du site ; ignoré sous GPC)
globatics('identify', 'user_123', { name: 'Ada', plan: 'pro' });
globatics.identify('user_123');
globatics('reset');                                        // à la déconnexion

// pages vues manuelles (data-auto="false", ou pages virtuelles)
globatics('pageview');                                     // URL courante
globatics('pageview', '/checkout/step-2');                 // URL relative ou absolue
globatics.pageview('/virtual');

// exclusion du propriétaire pour ce navigateur (localStorage "globatics_ignore")
globatics('optout');
globatics('optin');

Collecté automatiquement

SignalQuandDonnées
Page vueChargement initial, pushState / replaceState / popstate (même URL dédoublonnée), changements de hash avec data-hash, restaurations depuis le cache précédent/suivant.URL, référent (première vue), titre, taille d’écran, langue, fuseau horaire
HeartbeatToutes les 15 s tant que l’onglet est visible, et aussitôt qu’il redevient visible.Temps d’engagement, profondeur de défilement
LeavePage masquée ou pagehide (jamais unload).Temps d’engagement et profondeur de défilement finaux
$outboundClic sur un lien vers un autre site.URL
$downloadClic sur un lien de fichier (pdf, zip, dmg…).URL, extension
$mailto / $telClic sur un lien e-mail ou téléphone.URL sans la query
$clickClics sur les liens, boutons et champs submit ; 50 au plus par page.Sélecteur, libellé (32 caractères, chiffres et e-mails masqués), x/y en % de la fenêtre
$rage_click3 clics ou plus, chacun à moins de 30 px et 1 s du précédent.Sélecteur, libellé, x/y, nombre de clics
$dead_clickUn clic sur un élément de type bouton sans changement du DOM, défilement, déplacement du focus ni navigation dans les 2,5 s.Sélecteur, libellé, x/y
$errorErreurs non interceptées, ressources en échec, rejets non gérés ; 5 au plus par page.Message (300 caractères), source, ligne, colonne, 3 frames de pile, ms depuis le dernier clic
$form_submitToute soumission de formulaire (jamais les valeurs).id, name ou action du formulaire
$searchUne page vue avec ?q=, ?s= ou ?search=.Requête, 64 caractères, masquée
$vitalsUne fois, quand la page est masquée pour la première fois (depuis /vitals.js).LCP, FCP, INP, CLS, TTFB

Jamais collecté

Le script ne lit jamais ce que les gens tapent : les valeurs des champs et le contenu contenteditable ne sont jamais lus, et les fragments de hash sont supprimés sauf si vous utilisez data-hash.

Limites

ÉlémentLimite
Noms d’événement1 à 100 caractères ; ne doivent pas commencer par $ (réservé)
PropsValeurs à plat : chaîne (≤ 256 caractères), nombre, booléen ou null. Clés ≤ 64 caractères, 30 props au plus.
RevenuEn unités principales (49.9). Valeurs négatives (remboursements) acceptées ; au-delà de ±1 000 000 000, ignoré.
DeviseCode ISO 4217 ; la devise du site si absente.
Corps de la requête8 Ko d’UTF-8 ; au-delà, les props sont supprimées.
URL2 048 caractères

Content Security Policy

Autorisez votre hôte Globatics dans script-src et connect-src. Avec une CSP à base de nonce, utilisez 'strict-dynamic' pour que vitals.js puisse se charger, ou mettez data-vitals="false". Si tout passe par un proxy sur votre propre domaine, 'self' suffit.