O que B faz?
Regras
- Atribuição baseada em hash: seleção determinística de variante usando
hash(userId + experimentId) % 100— sem desvio aleatório entre sessões - Configuração de variantes: armazene experimentos em um objeto de configuração
{ id, name, variants: [{ id, weight }], status }— nunca codifique variantes diretamente - Divida o tráfego no servidor: atribua no middleware ou rota da API, defina um cookie para consistência — divisões no lado do cliente causam oscilações
- Significância estatística: exija 95% de confiança (p < 0.05) antes de declarar um vencedor — use teste z para proporções
- Tamanho da amostra: calcule a amostra mínima antes de iniciar —
n = (Z^2 * p * (1-p)) / E^2onde E é o efeito mínimo detectável - Uma métrica por experimento: defina uma métrica primária antecipadamente (taxa de conversão, clique, receita) — métricas secundárias são apenas exploratórias
- Exclusão mútua: os usuários em um experimento não devem se sobrepor a experimentos conflitantes — use camadas de experimentos
- Feature flags: envolva o código do experimento em verificações de feature flags — limpe as variantes perdedoras após o término do experimento
- Duração: execute por pelo menos 1-2 ciclos comerciais completos (7-14 dias no mínimo) para considerar efeitos de dia da semana
- Registro: rastreie
experiment_id,variant_id,user_id,timestamppara cada evento de impressão e conversão
Evite
- Espiar os resultados antes que o tamanho da amostra seja atingido — infla a taxa de falsos positivos
- Alterar parâmetros do experimento durante a execução — invalida a análise estatística
- Testar muitas variantes de uma só vez — aumenta exponencialmente o tamanho da amostra necessário
- Atribuição de variante no lado do cliente sem cookies — causa oscilação e experiências inconsistentes