Implemente testes A/B utilizando lógicas de Edge Computing

Edite no GitHub

Testes A/B são ferramentas amplamente utilizadas para tomada de decisões sobre diferentes versões de aplicações, interfaces ou localidades de um serviço. A aplicação de lógicas de edge computing na criação desses testes traz uma série de benefícios, como utilizar mais de uma variante de teste para a mesma URL, mantendo assim o ranqueamento de SEO.

Além disso, por meio de funções serverless executadas no edge, é possível controlar de forma mais assertiva a distribuição de acessos aos diferentes cenários ao longo da execução do teste, identificando as variantes que apresentam os melhores resultados e direcionando o público para as versões desejadas, entre outras possibilidades.

Testes A/B com Edge Functions da Azion

A A/B Testing é uma função serverless disponível na plataforma de edge computing da Azion. Com ela você configura de forma rápida e simples seus testes A/B, combinando regras de negócio com regras de teste diretamente no edge, controlando e direcionando o tráfego no seu site de acordo com a evolução do seu teste.

Crie lógicas de processamento no edge, ampliando as possibilidades de aplicação de seus testes e obtendo muitas outras vantagens:

  • facilidade de configuração. Em poucos passos, tenha um teste rodando totalmente gerenciado no edge da Azion;
  • teste uma nova versão ou instalação de sua plataforma/serviço gradativamente, mitigando os impactos nos clientes, direcionando aos poucos o fluxo de acesso;
  • fluxo de tráfego variável. Defina percentuais de ocorrência diferentes em cada versão, de acordo com a necessidade do seu teste, e obtenha uma maior assertividade na distribuição dos acessos com nossos algoritmos de processamento na edge;
  • melhor experiência para os usuários. O teste A/B não impacta o tempo de carregamento das páginas, sendo significativamente mais rápido quando comparado com soluções que utilizam javascript para realizar o A/B Test.

Como funciona o A/B Testing da Azion?

Antes de começar, certifique-se de que o serviço Edge Functions está ativo em sua conta da Azion e que você já conta com a função em sua Libraries de Edge Functions Caso não esteja, entre em contato com nosso time comercial para habilitar o serviço.

Entendendo o processo

Quando uma requisição chegar no edge, o algoritmo distribui conforme a probabilidade definida e então um cookie é setado com o tempo de expiração e os valores especificados para A ou B. A partir desse momento, todo o tráfego do cliente que originou a requisição será direcionado para a versão definida.

Configurando um teste

A fim de demonstrar uma aplicação prática de uma configuração de um teste A/B, iremos utilizar como exemplo a validação de uma nova versão do servidor de aplicação rodando em uma porta diferente dentro da mesma infraestrutura. Queremos, nesse caso, realizar um teste gradual do fluxo de acessos ao site, validando o desempenho da nova configuração da aplicação, e, assim, poder agir rapidamente para corrigir eventuais problemas gerados.

Para configurar seu teste por meio da Edge Function A/B Testing, edite a Edge Application à qual deseja aplicar o teste, verificando se a opção Edge Function está habilitada na aba Main Settings. A seguir, vá até a aba Functions e adicione uma nova function A/B Testing, informando um nome significativo para sua função personalizada (por exemplo, MyABTest), pois é por meio dele que sua Function será identificada posteriormente na configuração da Rule Engine. Note que o código da função irá aparecer no campo Code, apenas para leitura e entendimento; na aba Json Args, informe os parâmetros de execução do seu teste. Abaixo temos a descrição de cada campo do parâmetro Json Args:

{
"param": {
	"cookie": {
		"name": nome do cookie,
		"expiration": data de expiração do cookie,
		"max_age": tempo em segundos para quando um cookie será excluído,
		"domain": domínio,
		"path": subdomínio de validade do cookie (“/” indica que é válido para todo domínio)
		},
	"a": {
		"cookie_value": valor do cookie para o teste A,
		"prob": probabilidade para o sorteio,
		"addresses_list": endereço do teste A,
		"originid": id de identificação da origem,
		"live_ingest": indicador se a origem do teste é uma live para streaming,
		"protocol_policy": política de protocolo (forçar http ou https, ou “preserve” para manter o da requisição),
		"path": subdomínio de validade do cookie (“” indica que é válido para todo domínio)i ,
		"cache_key": chave para cache no Edge, específica para esta variante (não pode repetir),
		"host": nome do host que deve ser enviado na requisição (HTTP HEADER "Host", e que sobrescreverá o que tiver sido informado na origem cadastrada)
		},
	"b": {
		"cookie_value": valor do cookie para o teste B,
		"prob": probabilidade para o sorteio,
		"addresses_list": endereço do teste B,
		"originid": id de identificação da origem,
		"live_ingest": indicador se a origem do teste é uma live para streaming,
		"protocol_policy": política de protocolo (forçar http ou https, ou “preserve” para manter o da requisição),
		"path": subdomínio de validade do cookie (“” indica que é válido para todo domínio)i ,
		"cache_key":  chave para cache no Edge, específica para esta variante (não pode repetir),
		"host": nome do host que deve ser enviado na requisição (HTTP HEADER "Host", e que sobrescreverá o que tiver sido informado na origem cadastrada) 
		}
	}
}

A seguir, um exemplo de uma configuração básica da Function, mantendo probabilidade 90 por cento (0.9) para a primeira variante do teste e 10 por cento (0.1) para a segunda, lembrando que o somatório deve ser sempre 1, que representa a aplicação rodando em uma nova infraestrutura.

{
"param": {
	"cookie": {
		"name": "MYABTEST_NAME__",
		"expiration": "Wed, 04 May 2021 10:16:00 GMT",
		"max_age": 600,
		"domain": "localhost",
		"path": "/"
		},
	"a": {
		"cookie_value": "A_VARIANT",
		"prob": 0.9,
		"addresses_list": "www.mytest_ab_of_my_site.com:443",
		"originid": "uuid1",
		"live_ingest": false,
		"protocol_policy": "https",
		"path": "",
		"cache_key": "test_a",
		"host": "localhost"
		},
	"b": {
		"cookie_value": "B_VARIANT",
		"prob": 0.1,
		"addresses_list": "www.mytest_ab_of_my_site.com:2010",
		"originid": "uuid2",
		"live_ingest": false,
		"protocol_policy": "https",
		"path": "",
		"cache_key": "test_b",
		"host": "localhost"
		}
	}
}

Edite os parâmetros e clique em Save para salvar. Na aba Rules Engine, utilize a Default Rule ou crie uma nova rule com um critério de validação (criteria) para ativar sua function; na seção Behavior, selecione Run Function e escolha a Function MyABTest que você criou, e clique em Save para finalizar.


Não encontrou o que procurava? Abra um ticket.