“Posso parar o teste agora?” é a pergunta mais perigosa de CRO. Veja como o ABsmartly responde com group sequential testing e como implementar o SDK sem contaminar o experimento.
Índice do artigo
- O que é o ABsmartly?
- Fixed horizon x group sequential: quando parar um teste
- Como configurar um experimento sequencial
- Os alertas que protegem o experimento
- O SDK: context, treatment, track
- peek e override: usar com cuidado
- Integração com Segment e analytics
- Os erros que mais aparecem
- Perguntas frequentes sobre ABsmartly
Todo time de CRO já viveu a cena: o teste tem três dias, a variante está 12% acima e alguém quer declarar vitória. Parar um teste de horizonte fixo antes do tempo inflaciona o falso positivo. O group sequential testing existe para permitir decisões antecipadas com a matemática a favor.
O que é o ABsmartly?
O ABsmartly é uma plataforma de experimentação e feature flags orientada a código, com SDKs para várias linguagens, APIs, integração com ferramentas de dados e um motor estatístico que suporta testes de horizonte fixo e sequenciais.
Em uma frase: o ABsmartly é uma plataforma de experimentação server-side feita para quem precisa decidir rápido sem sacrificar rigor estatístico.
Fixed horizon x group sequential: quando parar um teste
No teste de horizonte fixo, você define o tamanho de amostra antes e só olha o resultado no final. No group sequential, há análises intermediárias planejadas com dois tipos de fronteira: eficácia (a variante já provou superioridade) e futilidade (não há chance razoável de a variante superar o controle até o fim). Cruzar a fronteira de futilidade é o sinal de encerrar e redirecionar tráfego.
Os ganhos: uso mais eficiente do tráfego, menos exposição a variantes ruins e conclusões potencialmente mais rápidas.
Um detalhe técnico que confunde: o sequencial do ABsmartly usa análise unilateral (busca só superioridade), enquanto o horizonte fixo é bilateral. Para manter consistência, a plataforma pede a confiança como se fosse bilateral e ajusta. Se você define 90% num teste sequencial, ele roda com 95% de confiança unilateral, ou seja, 5% de falso positivo.
Como configurar um experimento sequencial
Três regras da documentação que valem para qualquer ferramenta:
- A divisão não muda depois do início. Alterar a porcentagem de cada variante introduz viés. Para ampliar exposição, use a alocação de tráfego.
- Multivariante exige divisão igual. Para ser elegível ao sequencial, as variantes (exceto o controle) precisam ter a mesma fatia.
- Menos variantes, resposta mais rápida. O arranjo ótimo é A/B com 50/50.
Na escolha da métrica, a plataforma sugere três testes: é sensível à mudança, gera decisão clara e é medida de forma confiável? Quando a métrica já tem histórico, dá para ver sua variância nas últimas semanas antes de começar.
Sobre o número de análises intermediárias: poucas desperdiçam a vantagem do sequencial; muitas demais também têm custo. Planeje de acordo com o tráfego.
Os alertas que protegem o experimento
- Sample Ratio Mismatch (SRM): a divisão real entre variantes não bate com a planejada. Quase sempre é bug de implementação (redirect que perde usuários, bot, cache), e invalida a leitura.
- Audience Mismatch: usuários fora da audiência definida foram expostos. Acontece quando o modo estrito está desligado e o código não faz a checagem.
- Code Cleanup Needed: a decisão já foi tomada há tempo, mas o SDK ainda recebe chamadas de exposição daquele experimento. É dívida técnica visível.
O SDK: context, treatment, track
O modelo mental do SDK é simples. Você cria um context com as unidades do usuário (session_id, user_id) e atributos (como user agent). Quando o context está pronto, pede o treatment de um experimento; é nesse momento que a exposição é registrada. Depois, registra metas com track. O publish envia os dados ao coletor.
const context = sdk.createContext({ units: { session_id: sessionId } });
context.attribute('user_agent', navigator.userAgent);
context.ready().then(() => {
const variante = context.treatment('exp_checkout_uma_etapa');
if (variante === 1) {
// renderiza a variante
}
});
context.track('compra', { valor: 249.9 });
Variáveis de variante permitem que o experimento sobrescreva valores de configuração no código (como a cor de um botão), com um valor padrão para o controle. A recomendação é não alterar variáveis do controle.
peek e override: usar com cuidado
- peek retorna a variante sem registrar exposição. Útil em casos específicos, mas desaconselhado como padrão, porque quebra a relação entre quem viu e quem foi contado.
- override força uma variante durante o desenvolvimento e QA. Garanta que nenhum override chegue em produção.
Integração com Segment e analytics
O ABsmartly permite publicar exposições por um publisher customizado. Com o Segment, por exemplo, a exposição vira um evento Experiment Viewed com os dados do experimento, que pode seguir para o GA4 e o data warehouse. O cuidado recomendado: enviar apenas exposições com o flag assigned verdadeiro, ignorando chamadas de treatment de experimentos que já não estão rodando.
Os erros que mais aparecem
- Mudar a divisão de tráfego no meio do teste.
- Ignorar o alerta de SRM e ler o resultado mesmo assim.
- Audiência sem modo estrito e sem checagem no código.
- Usar peek como padrão e perder a contagem de exposição.
- Esquecer de remover o código do experimento depois da decisão.
Perguntas frequentes sobre ABsmartly e testes sequenciais
O que é group sequential testing?
Um desenho de experimento com análises intermediárias planejadas e fronteiras de eficácia e futilidade, que permite encerrar o teste antes com controle de erro.
Posso parar um teste A/B antes do tempo?
Em teste de horizonte fixo, não sem inflar o falso positivo. Em teste sequencial, sim, quando uma fronteira planejada é cruzada.
O que é Sample Ratio Mismatch?
É quando a proporção real de usuários entre variantes difere da planejada, sinal de problema na implementação que compromete o resultado.
O que é exposição em teste A/B?
É o registro de que o usuário efetivamente recebeu uma variante. No ABsmartly, acontece na chamada de treatment.
Qual a diferença entre treatment e peek no ABsmartly?
O treatment retorna a variante e registra a exposição; o peek só retorna a variante, sem registrar.
Posso mudar a porcentagem das variantes durante o teste?
Não. Isso introduz viés. Para ampliar, use a alocação de tráfego.
