Pular para o conteúdo

Session replay (SDK)

Para os defaults de privacidade, amostragem e como o replay funciona de ponta a ponta, leia o guia de session replay. Esta página é a superfície do SDK.

A gravação é remote-first: habilitar o session replay nas configurações do projeto no painel é suficiente. /decide retorna {"sessionRecording": {"enabled": bool, "sampleRate": float}}, e quando enabled é true o SDK carrega o código de replay de forma lazy e começa a gravar (sujeito à amostragem) — sem mudança de código nem deploy. Desligá-lo nas configurações do projeto interrompe novas gravações em segundos, do mesmo jeito.

A opção de init sessionRecording ajusta esse comportamento localmente:

kilden.init('YOUR_WRITE_KEY', {
sessionRecording: true, // ou um objeto SessionRecordingOptions
});
Valor Comportamento
não definido (default) A config remota decide: o chunk de replay carrega e grava automaticamente quando o projeto tem a gravação habilitada. Um startSessionRecording() manual também o carrega
true ou objeto de opções Carrega o chunk de replay de forma antecipada (sem esperar o /decide) e grava, sujeito à amostragem e ao kill switch remoto do projeto
false Opt-out duro. Nunca grava, o código de replay nem sequer é baixado, e a config remota não consegue ligá-lo — um false local sempre vence

Veja SessionRecordingOptions para sampleRate, minimumDurationMs, mascaramento e opções de canvas.

kilden.startSessionRecording(); // força o início (também carrega o chunk se necessário)
kilden.stopSessionRecording();
kilden.getReplayId(); // string enquanto grava, null caso contrário

Enquanto o pacote de replay não carregou, os três são no-ops seguros (getReplayId retorna null) que registram um aviso com debug: true.

Se uma sessão será gravada é decidido uma vez por sessão e persistido: reloads dentro da sessão mantêm a mesma decisão, e o sorteio se repete quando a sessão rotaciona (30 minutos de inatividade). Uma gravação nunca abrange duas sessões — a rotação a corta.

As gravações compartilham o session id com os eventos: o replay de uma sessão é sempre correlacionável 1:1 com sua linha do tempo de eventos. Quando uma gravação começa, o SDK emite um evento $session_recording_started para que você possa consultar ou filtrar as sessões que têm replay.