O teste A/B é uma maneira comum para desenvolvedores e equipes de produto entenderem como os usuários se envolvem de maneira diferente com suas ferramentas.

Por exemplo, se um equipe está lançando um novo recurso, ela gostaria de saber se esse recurso faz o que deve fazer-aumentar o engajamento, inscrições, compras e assim por diante. Ao testar o novo recurso em um experimento, eles serão capazes de determinar a maneira precisa como o novo recurso afeta a experiência do usuário em comparação com um grupo de controle.

Em meu site, Solitaired, testamos A/B em em uma base contínua. Testamos novos recursos (usando portas pintadas), novos jogos e novos layouts. Começamos nossos testes A/B em 10 por cento e, em seguida, dimensionamos nossos testes conforme vemos o engajamento positivo.

Um grande problema para nós foi configurar o teste A/B em primeiro lugar. Claro, existem ferramentas que pretendem facilitar os testes A/B-ferramentas como Optimizely e Google Optimize.

No entanto, o foco principal dessas ferramentas é o lado do cliente-ou seja, o A/B as mudanças de teste acontecem depois que uma página é carregada. Embora a facilidade de uso seja um dos benefícios do teste do lado do cliente, existem algumas desvantagens importantes para o teste do lado do cliente:

A página oscila conforme o teste A/B começa Limitada principalmente a mudanças visuais como texto, cores, etc. O teste de várias páginas é quase impossível.

É por isso que a maioria dos aplicativos ou equipes de teste A/B sérias usam o teste do lado do servidor. O teste do lado do servidor é um pouco mais complicado de configurar (mas não tão complicado), mas tem alguns benefícios adicionais:

Velocidade aprimorada e sem oscilações na página Teste de várias páginas/várias etapas Capacidade de sincronizar com bancos de dados de back-end

Ficamos felizes o suficiente com nosso software de teste A/B que o lançamos em código aberto. Aqui, veremos como usar nosso middleware para teste A/B para aplicativos Node.js.

Instale o middleware de teste A/B

Requisitos

Nó e Express express-session para gerenciamento de sessão

Você pode começar instalando a biblioteca npm, easy-abtest :

npm install easy-abtest

Em seguida, adicione o pacote ao arquivo app.js:

const abtest=require (‘easy-abtest’);

Mais abaixo em seu arquivo, adicione o middleware com o argumento de opções (veremos isso a seguir):

let options={enabled: true, name:’experiment-ID-here’, buckets: [{variante: 0, peso: 0,40}, {variante: 1, peso: 0,60}]} app.use (abtest (opções));

Nota: se você usar express.static, adicione o código de middleware depois dele. Caso contrário, ele será executado em cada chamada de ativo estático.

O objeto de opções pode ser descrito da seguinte maneira:

ativado (booleano): para que você possa facilmente ligar ou desligar seu A/Nome do código de teste B: nome do experimento. Este é um slug que você pode adicionar, ou se você estiver usando o Google Analytics ou Mixpanel, você precisará adicionar o slug nos baldes de campo: Isso é bom. Esta é uma matriz onde você descreve suas variantes. Cada variante é um objeto com as seguintes chaves: variante: 0 para controle, 1 para a primeira célula, 2 para a segunda e assim por diante. Apenas o intervalo 0 é realmente necessário, mas você também deve ter uma célula de experiência com peso: esta é a porcentagem de tráfego que essa célula deve receber. Um valor de 0,1 é igual a 10 por cento, por exemplo. Todos os seus pesos devem somar 100 por cento.

Agora, quando um novo usuário chega ao seu aplicativo, o middleware será executado e atribuirá um bucket para a sessão do usuário. Ele também atribui o intervalo às variáveis ​​locais que podem ser usadas em seus modelos de visualização.

Em seus roteadores: req.session.test Em suas visualizações: abTest

Por estar disponível em seus roteadores e em suas visualizações, o intervalo pode ser usado para segmentar seus usuários da maneira que você quiser, por exemplo:

Se você quiser enviar um modelo de visualização para seus usuários de controle e um diferente para sua célula de experimento, você pode chamar renderização diferente ( ) funções: if (req.session.test.bucket==0) {return res.render (‘index’); } else if (req.session.test.bucket==1) {return res.render (‘index-new’); } Se você quiser mostrar diferentes manchetes para seus usuários diretamente na visualização, você também pode fazer isso: in homepage.pug if abTest.bucket==0 h1 A melhor coisa desde o pão fatiado. else if abTest.bucket==1 h1 A melhor coisa desde a torta de maçã.

Isso é tudo para o lado da configuração. Com acesso ao back-end, aos modelos de visualização e ao lado do cliente, você pode instrumentar seus testes da maneira que desejar. (Por exemplo, a equipe em Mojomox usa o easy-abtest para descobrir a ordem das etapas a serem fornecidas aos usuários em uma experiência de várias páginas).

Conectando o sistema de teste ao sistema de relatório

Embora agora você possa executar testes A/B em seu aplicativo, você ainda precisa saber quais testes venceram. Isso significa que você precisa conectar seus experimentos a algum back-end de relatórios. Fiz algumas sugestões abaixo:

Conecte-se ao Google Analytics

Digamos que você queira acompanhar se uma experiência resulta em mais cliques em um botão do que em outra.

Você pode fazer isso facilmente adicionando os dados do intervalo de teste A/B à exibição como um objeto JSON e, em seguida, enviar os eventos apropriados:

script. deixe abTest=! {JSON.stringify (abTest)}; if abTest.bucket==0 botão # cta Clique aqui agora else if abTest.bucket==1 botão # cta Comece hoje! roteiro. $ (‘# cta’). on (‘click’, function () {gtag (‘event’, abTest.bucket, {‘event_category’: abTest.name,’event_label’:’start today’});}) ;

Se quiser usar o Google Optimize para seu produto de teste A/B, você só precisa seguir o tutorial aqui e use Optimize Experiment ID como o slug do experimento nas opções de middleware.

Crie seu próprio banco de dados

Da mesma forma, você pode rastrear eventos em uma tabela de banco de dados que você mesmo escreve. Lembre-se do alto volume de transações que podem ocorrer. Independentemente disso, você deve incluir os seguintes campos em sua tabela:

Nome do experimento Variante do intervalo Valor (por exemplo, 1 para “um clique de botão”) Data/hora

Conclusão

Servidor A O teste/B é claramente vantajoso para o lado do cliente , mas no passado exigiu pensar em como configurá-lo. Com o middleware mais fácil de usar, você pode facilmente integrar o teste A/B ao seu aplicativo.

O que você testará a seguir? Um aumento no preço do produto ou talvez um novo logotipo? Com o teste A/B, você pode experimentar continuamente para ver o que torna o melhor produto para seus usuários e sua empresa.