Configure testes A/B em Edge
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 sua edge application e esta já estará pronta para executar a nova function.
Não encontrou o que procurava? Abra um ticket.