1 of 20
2 of 20
3 of 20
4 of 20
5 of 20
6 of 20
7 of 20
8 of 20
9 of 20
10 of 20
11 of 20
12 of 20
13 of 20
14 of 20
15 of 20
16 of 20
17 of 20
18 of 20
19 of 20
20 of 20

Configure testes A/B em Edge

Edite no GitHub

A/B Testing é uma função serverless da plataforma de Edge Computing da Azion para construção de testes A/B.

Com a A/B Testing é possível criar testes totalmente gerenciados no Edge, por meio de lógicas de Edge Computing que permitem 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.

Algumas outras vantagens da Edge Function A/B Testing:

  • possibilidade de configuração de múltiplas variantes (A, B, C, …);
  • fluxo de tráfego variável;
  • combinar regras de teste com regras de negócio (WAF, Bot protection, entre outras);
  • melhor experiência para os usuários, pois não impacta o tempo de carregamento das páginas, sendo significativamente mais rápida quando comparada com soluções que utilizam javascript para realizar o teste A/B.

A seguir, vejamos como implementar e configurar testes com Edge Function A/B Testing.

Como funciona o A/B Testing da Azion?

A configuração do teste é definida na function por meio de parâmetros no formato JSON (Args): são informados os atributos referentes a cada versão a ser testada, como probabilidade, valor de cookie, entre outros.

Quando uma requisição chegar a algum dos Edge Nodes da Azion, o algoritmo da função distribui conforme a probabilidade definida, setando um cookie com o tempo de expiração e os valores especificados para cada variante (a partir desse momento, todo o tráfego do cliente que originou a requisição será direcionado para a versão sorteada).

O Edge node, então, encaminha a requisição para a aplicação de origem, que retorna o conteúdo da página de teste solicitada para que o Edge entregue o conteúdo para o usuário.

Quando outro usuário realizar uma nova requisição, a function realiza o sorteio novamente, respeitando a probabilidade definida nos parâmetros, e direciona o usuário para a página sorteada.

Configurando a function A/B Testing

Edge Function A/B Testing está disponível na biblioteca de functions da plataforma de Edge Computing da Azion e pode ser acessada pelo Real-Time Manager (RTM), no menu Libraries.

Para que a function possa ser executada, ela precisa ser instanciada na Edge Application que se deseja trabalhar e ter definidos seus critérios de ativação e comportamentos dentro das Rules Engine.

Criando uma instância

Caminho: Real-Time Manager > Edge Computing > Edge Application > Functions.

A partir do RTM, acesse o Edge Application que irá rodar a sua function e ative o módulo Edge Functions, na aba Main Settings. Em seguida, na aba Functions, adicione uma nova function, desta vez declarando um nome significativo para ela.

Parâmetros: é necessário informar qual o tipo de function de sua instância; nesse caso, escolha A/B Testing. Note que o código da função irá aparecer no campo Code, apenas para leitura e entendimento. Na aba Args, informe os parâmetros de execução do seu teste. Abaixo temos a descrição de cada campo do parâmetro 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 (gerado automaticamente pelo RTM no momento do cadastro da origem dentro do Edge Application)**,
		"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)**,
		"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 (gerado automaticamente pelo RTM no momento do cadastro da origem dentro do Edge Application)**,
		"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)**,
		"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 e 10 por cento (0.1) para a segunda, lembrando que o somatório deve ser sempre 1.

{
"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.

Definindo critérios de execução (Rules Engine)

Caminho: Real-Time Manager > Edge Computing > Edge Application > Rules Engine.

As regras em Rules Engine determinam o conjunto de condições que precisam ser atendidas para a execução dos Behaviors. Você pode utilizar a Default Rule para a execução incondicional de sua função, ou criar uma nova regra a fim de configurar as condições de gatilho para execução de sua function pelo Edge Application.

Definindo critérios de validação (criteria): escolha as variáveis, operadores de comparação e strings para construção de sua regra de negócio, como no exemplo a seguir:

  • If: ${uri} is equal /home (na sequência: operador lógico, variável, operador de comparação, string)

Aqui, a regra é executada se a URL acessada for igual à string “mypagetotest.com/home”.

Definindo comportamentos (behaviors): adicione os comportamentos que deseja executar caso as condições da regra sejam satisfeitas. Exemplo:

  • Then: Run Function MyABTestFunction (na sequência: operador lógico, ação, função)

Neste exemplo, se as condições definidas nas regras forem satisfeitas, então será executada a function MyABTestFunction.

Por fim, salve seu Edge Application, e este já estará pronto para executar a nova function.


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