Référence API
Surface publique du package @vskstudio/takt-core (intégration npm). Côté snippet, seule la fonction track est exposée — voir la section Global window.takt en bas de page.
init(options)
Crée et stocke l’instance partagée, puis (par défaut) câble la navigation SPA et émet le pageview initial. À appeler une seule fois au démarrage. Retourne l’instance Analytics. init() est idempotent : un nouvel appel dispose proprement les écouteurs de l’instance précédente avant d’en recréer une.
function init(options?: {
domain?: string
endpoint?: string // défaut: https://taktlytics.com/api/event
scriptOrigin?: string // origine dont dériver {origin}/api/event
respectDnt?: boolean // défaut: true
excludeLocalhost?: boolean // défaut: true
exclude?: string[] // préfixes de chemin jamais suivis (borné au segment)
enabled?: boolean // défaut: true
debug?: boolean // défaut: false
sampleRate?: number // défaut: 1
trackQuery?: boolean // défaut: false (query + hash strippés)
queryParams?: string[] // allowlist de paramètres à conserver
scrubUrl?: (url: string) => string // nettoyage d'URL personnalisé
auto?: boolean // défaut: true (pageview auto + SPA)
outbound?: boolean // défaut: false
files?: boolean // défaut: false
fileExtensions?: string[] // extensions suivies si files=true
notFound?: boolean // défaut: false (event 404 sur les pages d'erreur)
tagged?: boolean // défaut: false (events custom depuis data-takt-event)
}): Analytics | Option | Type | Défaut | Rôle |
|---|---|---|---|
domain | string | location.hostname | Identifiant du site |
endpoint | string | https://taktlytics.com/api/event | URL d’ingestion — l’emporte sur scriptOrigin |
scriptOrigin | string | https://taktlytics.com | Origine first-party dont dériver {origin}/api/event |
respectDnt | boolean | true | Respecte Do Not Track et Global Privacy Control |
excludeLocalhost | boolean | true | Ignore localhost / IP privées |
exclude | string[] | — | Préfixes de chemin jamais suivis, ex. ['/app','/account'] (borné au segment) |
enabled | boolean | true | Coupe tout envoi quand false |
debug | boolean | false | Trace chaque event dans la console |
sampleRate | number | 1 | Échantillonnage (0–1) des events envoyés |
trackQuery | boolean | false | Conserve la query string telle quelle |
queryParams | string[] | — | Paramètres de query à garder (allowlist) |
scrubUrl | (url) => url | — | Fonction de nettoyage d’URL sur mesure |
auto | boolean | true | Pageview initial + suivi SPA |
outbound | boolean | false | Suit les liens sortants |
files | boolean | false | Suit les téléchargements |
fileExtensions | string[] | pdf, zip, dmg, xlsx, csv, doc, docx, ppt, pptx, rar, 7z, gz, mp3, mp4, wav, avi, mov | Extensions de fichiers suivies |
notFound | boolean | false | Émet un event 404 sur les pages d’erreur (snippet : data-auto="404") |
tagged | boolean | false | Events custom depuis les éléments [data-takt-event] (snippet : data-auto="tagged") |
?.../#... n'atteint jamais l'analytics. trackQuery conserve la query entière, queryParams n'en garde qu'une allowlist, scrubUrl remplace toute la logique.data-* — dont data-script-origin, data-endpoint, data-enabled, data-respect-dnt, data-sample-rate, data-track-query et data-query-params. Les captures automatiques (outbound, files, tagged, notFound, fileExtensions) demandent le bundle takt.auto.js et passent par data-auto / data-downloads-ext. Seuls auto, debug, scrubUrl et exclude restent réservés à npm.track(name, options)
Émet un événement. Le nom pageview est réservé (utilise pageview()). Le type public de track() n’accepte que props :
function track(name: string, options?: { props?: Record<string, string> }): void
track('Signup', { props: { plan: 'pro' } }) Les valeurs de props sont des chaînes (les non-chaînes sont converties) ; une valeur vide ('', null, undefined) est ignorée. Les props sont plafonnées à 30 clés, clés ≤ 64 caractères, valeurs ≤ 1024 caractères ; au-delà, l’event part quand même et un avertissement console est émis une fois.
Pour attacher du revenue, passe par l’instance retournée par init() (dont la méthode track accepte revenue, avec un montant en chaîne). Le montant doit matcher \d+(\.\d{1,2})? et la devise être un code de 3 lettres, sinon le revenue est abandonné (avec avertissement) :
const takt = init({ domain: 'exemple.fr' })
takt.track('Purchase', {
props: { plan: 'pro' },
revenue: { amount: '29', currency: 'EUR' }
}) Le format exact envoyé sur le réseau est décrit dans Events & payload.
pageview()
Émet manuellement une page vue. Rarement nécessaire : init() suit déjà la navigation côté client — pushState, replaceState, popstate et hashchange déclenchent tous un pageview automatique.
function pageview(): void optOut() / optIn()
Pilotent le consentement par visiteur. Le choix est persisté dans localStorage (takt_ignore).
function optOut(): void // pose takt_ignore='1' — aucun event envoyé
function optIn(): void // retire le drapeau — reprend le tracking Voir Vie privée pour l’ordre exact des garde-fous.
Global window.takt
Côté snippet, seule la fonction track est exposée sur le global. Elle accepte props et revenue (montant en chaîne) :
window.takt('Signup', { props: { plan: 'pro' } })
window.takt('Purchase', { revenue: { amount: '29', currency: 'EUR' } }) optOut/optIn/pageview. Côté snippet, l'opt-out se pilote directement via localStorage (clé takt_ignore) — voir Vie privée. Le pageview, lui, est automatique (initial + navigation SPA).