Configuration
Takt se configure de deux façons équivalentes : par attributs data-* sur la balise du snippet (CDN), ou par options de init() (npm). Les deux pilotent les mêmes réglages.
Options data-* (snippet)
| Attribut | Effet | Défaut |
|---|---|---|
data-domain | Identifiant du site dans ton tableau de bord | location.hostname |
data-script-origin | Origine first-party dont dériver l’endpoint ({origin}/api/event) | https://taktlytics.com |
data-endpoint | Endpoint d’ingestion des events (l’emporte sur data-script-origin) | https://taktlytics.com/api/event |
data-exclude-localhost="false" | Mesure aussi localhost / IP privées | exclu |
data-enabled="false" | Coupe-circuit : le tracker ne fait rien | activé |
data-respect-dnt="false" | Désactive le garde-fou Do Not Track côté client (les en-têtes DNT et GPC restent rejetés à l’ingestion) | respectés |
data-sample-rate="0.5" | N’envoie que cette fraction (0 à 1) des events | 1 (tout) |
data-track-query | Conserve toute la query string et le hash | strippé |
data-query-params="utm_source,utm_medium" | Ne garde que ces paramètres de query | aucun |
Détail des réglages
data-domain: toujours le renseigner explicitement. Sans lui, Takt déduit le domaine delocation.hostname, ce qui casse l’agrégation si ton site répond sur plusieurs hôtes (www, préprod, domaine de test).data-script-origin/data-endpoint: par défaut, les events partent vershttps://taktlytics.com/api/event.data-script-originremplace l’origine dont l’endpoint est dérivé ({origin}/api/event) quand tu sers Takt depuis ton propre domaine ;data-endpointfixe l’URL complète et l’emporte surdata-script-origin. Pour un proxy first-party servi sur la même origine que ta page, passe explicitementdata-endpoint="/api/event". Voir Proxy first-party.- Captures automatiques (clics sortants, téléchargements, événements déclarés en HTML et 404) ne font pas partie du snippet minimal : ils vivent dans le bundle
takt.auto.jset s’activent viadata-auto(voir plus bas). data-exclude-localhost: activé par défaut. Passe"false"pour mesurer aussi localhost et les IP privées.data-enabled="false"est un coupe-circuit total : aucun écouteur n’est attaché et rien n’est jamais envoyé.- Vie privée & échantillonnage : le snippet respecte Do Not Track et Global Privacy Control (en-tête
Sec-GPC/navigator.globalPrivacyControl) et strippe la query string par défaut. Ajuste-les sur la balise :data-respect-dnt="false"(désactive le garde-fou DNT côté client ; les en-têtes DNT et GPC restent rejetés à l’ingestion),data-sample-rate="0.5"(n’envoie qu’une fraction des events),data-track-query(garde toute la query + le hash),data-query-params="utm_source,utm_medium"(ne garde qu’une allowlist). Mêmes sémantiques que les options npm ci-dessous.
<script
defer
src="https://cdn.jsdelivr.net/npm/@vskstudio/takt-core/dist/takt.js"
data-domain="exemple.fr"
data-query-params="utm_source,utm_medium"
></script> data-exclude-localhost protège la vie privée de tes visiteurs, et le snippet respecte toujours Do Not Track. Ne désactive ces garde-fous que si tu sais exactement pourquoi.Captures automatiques (data-auto)
Le snippet minimal takt.js ne mesure que les pages vues. Les captures automatiques (clics sortants, téléchargements, événements déclarés en HTML et 404) vivent dans le bundle takt.auto.js et sont toutes opt-in via l’attribut data-auto, qui prend une liste séparée par des virgules.
| Attribut | Effet | Défaut |
|---|---|---|
data-auto="outbound" | Émet Outbound Link: Click sur les clics vers un autre domaine | off |
data-auto="downloads" | Émet File Download sur les liens pointant vers un fichier | off |
data-auto="tagged" | Émet les événements déclarés sur les éléments [data-takt-event] | off |
data-auto="404" | Émet un événement 404 sur les pages d’erreur | off |
data-downloads-ext="pdf,csv,epub" | Restreint les extensions comptées comme téléchargement | liste par défaut |
data-redact-routes="/verify/[token],/reset/[code]" | Envoie le motif à la place du chemin réel des routes listées : pageview, navigation SPA, chemin du 404 et destination des clics sortants et des téléchargements (voir Masquage de routes) | aucun |
data-redact-undecodable-paths="false" | Compare les chemins illisibles aux routes au lieu de /[redacted] (voir Chemins illisibles) | masqué |
<script
defer
src="https://cdn.jsdelivr.net/npm/@vskstudio/takt-core/dist/takt.auto.js"
data-domain="exemple.fr"
data-auto="outbound,downloads,tagged,404"
></script> data-auto, takt.auto.js se comporte exactement comme takt.js : un pageview, rien de plus. Tous les attributs du tableau précédent restent valables sur ce bundle. Détail de chaque capture dans Extensions automatiques.Options init() (npm)
En version npm, ces mêmes réglages se passent en objet à init() (en camelCase pour les booléens) :
import { init } from '@vskstudio/takt-core'
init({
domain: 'exemple.fr', // requis en pratique
outbound: true, // suit les liens sortants
files: true, // suit les téléchargements
excludeLocalhost: true, // défaut
respectDnt: true // défaut
}) init() crée une instance partagée, déclenche un pageview automatique et câble la navigation SPA. Appelle-le une seule fois, au démarrage de l’application.
Sans endpoint ni scriptOrigin, les events partent vers https://taktlytics.com/api/event. Passe endpoint: '/api/event' si tu proxifies Takt sur la même origine que ta page, ou scriptOrigin: 'https://exemple.fr/_takt' pour dériver l’endpoint d’une autre origine.
Options avancées
Elles ajustent la vie privée, l’échantillonnage et l’autocapture. enabled, sampleRate, trackQuery et queryParams ont aussi une forme snippet data-* (ci-dessus), et tagged / notFound une forme data-auto ; redactRoutes a une forme data-redact-routes sur takt.auto.js ; debug, scrubUrl, exclude, routeTemplates et routeTemplate sont réservés à npm (le snippet minimal ≤ 1 kB ne les embarque pas).
| Option | Type | Défaut | Rôle |
|---|---|---|---|
enabled | boolean | true | Coupe tout envoi quand false (utile en préprod) |
debug | boolean | false | Trace chaque event dans la console (réservé npm) |
sampleRate | number | 1 | Échantillonne les events envoyés (0 à 1) |
trackQuery | boolean | false | Conserve la query string telle quelle |
queryParams | string[] | aucun | Allowlist de paramètres de query à garder |
scrubUrl | (url) => url | aucun | Nettoyage d’URL sur mesure, appliqué à la page, au referrer et au url des events Outbound Link: Click et File Download, et au path des events 404 (réservé npm) |
exclude | string[] | aucun | Préfixes de chemin jamais suivis, ex. ['/app', '/account'] (borné au segment, vérifié à l’envoi ; réservé npm) |
redactRoutes | string[] | aucun | Motifs de routes sensibles envoyés à la place du chemin réel, ex. ['/verify/[token]'] envoie /verify/[token] au lieu de /verify/abc123 (data-redact-routes sur takt.auto.js, depuis 0.10.0) |
redactUndecodablePaths | boolean | true | Chemin illisible (échappement % mal formé, UTF-8 invalide) : /[redacted] dès qu’une route est configurée ; false le compare aux routes comme les autres, voir Chemins illisibles (depuis 0.12.0) |
routeTemplates | boolean | false | Envoie chaque page sous la forme de son gabarit de route (/blog/[slug]) ; exige routeTemplate (réservé npm, depuis 0.10.0) |
routeTemplate | () => string \| null | aucun | Renvoie le gabarit de la route courante, lu quand routeTemplates est actif ; les wrappers de framework le fournissent (réservé npm, depuis 0.10.0) |
tagged | boolean | false | Events custom depuis les éléments [data-takt-event] (snippet : data-auto="tagged") |
notFound | boolean | false | Émet un event 404 sur les pages d’erreur (snippet : data-auto="404") |
Par défaut, la query string et le hash sont strippés de toutes les URLs avant l’envoi. trackQuery/queryParams/scrubUrl (npm) ou data-track-query/data-query-params (snippet) permettent de l’ajuster. Voir Vie privée.
Le chemin, lui, part en clair : /verify/abc123 transmet le jeton. redactRoutes remplace le chemin des routes listées par leur motif, et routeTemplates envoie toutes les pages sous forme de gabarit, au prix des statistiques par page d’un site public. Le snippet minimal takt.js ne les gère pas, et takt.auto.js ne propose que redactRoutes, via data-redact-routes. Voir Masquage de routes.
data-exclude-localhost → excludeLocalhost, data-script-origin → scriptOrigin, data-downloads-ext → fileExtensions. La sémantique est identique entre snippet et npm pour les réglages communs.