CRBRASIL
Analytics

ABsmartly: group sequential testing, alertas de qualidade e o SDK na prática

Por CRO Brasil ·

ABsmartly: group sequential testing, alertas de qualidade e o SDK na prática

“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

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:

  1. 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.
  2. Multivariante exige divisão igual. Para ser elegível ao sequencial, as variantes (exceto o controle) precisam ter a mesma fatia.
  3. 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

  1. Mudar a divisão de tráfego no meio do teste.
  2. Ignorar o alerta de SRM e ler o resultado mesmo assim.
  3. Audiência sem modo estrito e sem checagem no código.
  4. Usar peek como padrão e perder a contagem de exposição.
  5. 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.