Aller au contenu

Événements et propriétés

Un événement fige ses propriétés au moment de la capture. Rien ne le réécrit ensuite — ni les fusions d’identité, ni les mises à jour de traits, ni les décisions d’enforcement. Si le plan d’une personne change, c’est sa personne qui change ; les événements envoyés sous l’ancien plan continuent d’indiquer l’ancien plan. C’est la séparation : les événements sont l’histoire, les personnes sont l’état.

Chaque événement porte :

Champ Ce que c’est
uuid UUID v7 généré par le client. La clé d’idempotence : le pipeline déduplique dessus, ce qui rend les réessais sûrs à chaque couche
event Le nom. Vos noms sont libres ; les noms préfixés par $ appartiennent au système
distinct_id Qui a agi, tel que connu au moment de la capture
properties JSON arbitraire. Kilden ne le valide ni ne le type jamais — l’enveloppe est typée, le payload est à vous, par conception
timestamp Quand c’est arrivé (fourni par le client, corrigé de la dérive d’horloge grâce au sent_at du batch)

Les noms commençant par $ — événements comme propriétés — sont réservés au système. Le SDK avertit en mode debug si vous en envoyez un via track(), mais le livre quand même : le namespace est une convention, jamais une raison de jeter vos données.

Les événements système que vous verrez dans votre flux :

Événement Émis par
$pageview, $pageleave Le SDK, automatiquement (y compris les changements de route en SPA)
$autocapture L’autocapture : clics, soumissions, changements, décrits par $event_type et $elements
$identify identify() — porte $anon_distinct_id pour lier les identités
$set, $set_once Mises à jour des traits de personne
$feature_flag_called Première lecture d’un flag par session — $flag_key, $flag_value (expositions)
$session_recording_started Démarrage d’un enregistrement de replay
$email_sent, $email_delivered, $email_opened, $email_clicked, $email_bounced, $email_complained Les campagnes et les webhooks du fournisseur d’email

Propriétés de contexte apposées sur chaque événement du SDK : $current_url, $referrer, $session_id, $device_type, $screen_width, $screen_height, $lib, $lib_version, $utm_source, $utm_medium, $utm_campaign, $utm_term, $utm_content.

Chaque événement — navigateur, backend, webhook email, même les événements internes de Kilden — entre par le même endpoint capture et le même pipeline. Il n’y a pas de portes dérobées, et c’est ce qui fait que les garanties (déduplication, résolution d’identité, niveaux de confiance) tiennent uniformément pour tout.

Le SDK maintient un $session_id (UUID v7) sur chaque événement, en le faisant tourner après 30 minutes d’inactivité. Les sessions relient entre eux les événements, la déduplication des expositions de feature flags et le session replay — un enregistrement est toujours joignable en 1:1 avec les événements de sa session.