Aller au contenu

Session replay (SDK)

Pour les défauts de confidentialité, l’échantillonnage et le fonctionnement du replay de bout en bout, lisez le guide du session replay. Cette page décrit la surface du SDK.

L’enregistrement est remote-first : activer le session replay dans les réglages du projet dans le panel suffit. /decide renvoie {"sessionRecording": {"enabled": bool, "sampleRate": float}}, et quand enabled est true le SDK charge le code de replay de façon lazy et démarre l’enregistrement (sous réserve de l’échantillonnage) — sans changement de code ni déploiement. Le désactiver dans les réglages du projet arrête les nouveaux enregistrements en quelques secondes, de la même manière.

L’option d’init sessionRecording ajuste ce comportement localement :

kilden.init('YOUR_WRITE_KEY', {
sessionRecording: true, // ou un objet SessionRecordingOptions
});
Valeur Comportement
non défini (défaut) La config distante décide : le chunk de replay se charge et enregistre automatiquement quand l’enregistrement est activé pour le projet. Un startSessionRecording() manuel le charge aussi
true ou objet d’options Charge le chunk de replay immédiatement (sans attendre /decide) et enregistre sous réserve de l’échantillonnage et de l’interrupteur distant du projet
false Opt-out dur. N’enregistre jamais, le code de replay n’est même pas téléchargé, et la config distante ne peut pas l’activer — un false local gagne toujours

Voir SessionRecordingOptions pour sampleRate, minimumDurationMs, le masquage et les options canvas.

kilden.startSessionRecording(); // démarrage forcé (charge aussi le chunk si nécessaire)
kilden.stopSessionRecording();
kilden.getReplayId(); // string pendant l'enregistrement, null sinon

Tant que le package de replay n’est pas chargé, ces trois méthodes sont des no-ops sûrs (getReplayId renvoie null) qui journalisent un avertissement avec debug: true.

L’enregistrement ou non d’une session est décidé une fois par session et persisté : les rechargements au sein de la session conservent la même décision, et les dés sont relancés quand la session est régénérée (30 minutes d’inactivité). Un enregistrement ne s’étend jamais sur deux sessions — la rotation le coupe.

Les enregistrements partagent l’identifiant de session avec les événements : le replay d’une session est toujours joignable 1:1 avec sa timeline d’événements. Quand un enregistrement démarre, le SDK émet un événement $session_recording_started pour que vous puissiez requêter ou filtrer les sessions qui ont un replay.