Ir al contenido

Session replay (SDK)

Para los defaults de privacidad, el sampling y cómo funciona el replay de punta a punta, lee la guía de session replay. Esta página es la superficie del SDK.

La grabación es remote-first: habilitar el session replay en la configuración del proyecto en el panel basta. /decide devuelve {"sessionRecording": {"enabled": bool, "sampleRate": float}}, y cuando enabled es true el SDK carga el código de replay de forma lazy y empieza a grabar (sujeto al sampling) — sin cambios de código ni deploy. Apagarlo en la configuración del proyecto detiene las grabaciones nuevas en segundos, por el mismo camino.

La opción sessionRecording de init ajusta ese comportamiento localmente:

kilden.init('YOUR_WRITE_KEY', {
sessionRecording: true, // o un objeto SessionRecordingOptions
});
Valor Comportamiento
sin setear (default) La config remota decide: el chunk de replay se carga y graba automáticamente cuando el proyecto tiene la grabación habilitada. Un startSessionRecording() manual también lo carga
true u objeto de opciones Carga el chunk de replay de inmediato (sin esperar a /decide) y graba sujeto al sampling y al kill switch remoto del proyecto
false Opt-out duro. Nunca graba, el código de replay ni siquiera se descarga, y la config remota no puede encenderlo — un false local siempre gana

Ver SessionRecordingOptions para sampleRate, minimumDurationMs y las opciones de enmascarado y canvas.

kilden.startSessionRecording(); // fuerza el arranque (también carga el chunk si hace falta)
kilden.stopSessionRecording();
kilden.getReplayId(); // string mientras graba, null en caso contrario

Mientras el paquete de replay no haya cargado, los tres son no-ops seguros (getReplayId devuelve null) que loguean un warning con debug: true.

Si una sesión se graba o no se decide una vez por sesión y se persiste: las recargas dentro de la sesión mantienen la misma decisión, y los dados se vuelven a tirar cuando la sesión rota (30 minutos de inactividad). Una grabación nunca abarca dos sesiones — la rotación la corta.

Las grabaciones comparten el session id con los eventos: el replay de una sesión siempre es unible 1:1 con su línea de tiempo de eventos. Cuando arranca una grabación, el SDK emite un evento $session_recording_started para que puedas consultar o filtrar las sesiones que tienen replay.