Quando habilitar. Sem trigger, o recorder começa em t=0 e grava
100% das sessões amostradas (
sampleRate). Com trigger, o recorder buffera
em memória até o gatilho disparar — só então o conteúdo dos últimos 60s
começa a subir para R2. Resultado: 60-90% menos storage e custo.Três modos
Apenas um disparo por replay_id. Após disparar, recorder fica em modo
streaming contínuo. Trigger seguintes são ignorados.
Ring buffer (60s pré-trigger)
- Buffer é flushed → chunk enviado para R2 com
chunk_seq=0 - Recorder muda para modo streaming (eventos vão direto para sender)
- Próximos chunks têm
chunk_seq=1, 2, ...
Modo URL trigger
Caso clássico: gravar SÓ sessões que chegam em /deposito ou /saque.- Jogador entra em
/cassino/slots→ recorder buffera mas nada sobe pro R2 - Jogador navega
/cassino/slots→/deposito(SPA:history.pushState) - SDK detecta route change (via
PageViewCollector.onRouteChange) triggers.checkUrl()rodaurlMatchRegex.test('/deposito')→ ✅ true- Buffer flush → chunk_seq=0 contém os 60s anteriores (
/cassino/slots+ navegação) - A partir daqui, streaming contínuo
new RegExp(...) no SDK):
Modo Event trigger
Caso clássico: gravar SÓ sessões com bet.placed acima de R$ 5k.- Operador chama
iGamingSDK.capture('bet.placed.high_value', {...}) - Core SDK envia o evento Tipo 1 para
/v1/sdk-events(canal normal) - Core SDK ALSO emite via
sdkEventListenersfanout para listeners externos ReplayTriggerManager.handleSdkEvent('bet.placed.high_value')→ match → fire- Buffer flush + streaming
page.viewed, error.occurred,
etc).
Combinando URL + Event
Não há suporte nativo para múltiplos triggers em paralelo (briefing v4 §5.6 mantém intencionalmente simples). Workaround: usareventMatch + capturar
o evento custom em qualquer URL que importe.
Custo comparado
Operador 150k DAU, 12min sessão média:Inspecionar trigger no Dashboard
trigger_source é um dos 3 valores: init, url, event. Propagado pelo
SDK no envelope de cada chunk e replicado no row Gold.
Próximos passos
Masking & PII
Sempre revise masking antes de subir sample rate.
Network & Console
O que mais é capturado durante o replay.