---
name: azion-instale-a-integracao-a-b-testing
description: >-
  Instale o A/B Testing pelo Azion Marketplace e execute-o em uma aplicação para dividir o tráfego entre duas variações com um cookie.
---

# Instale a integração A/B Testing

O A/B Testing envia cada usuário para uma de duas variações de um endereço, de uma interface ou de um fluxo de trabalho, e registra a escolha em um cookie. Use-o para comparar como os usuários respondem a cada variação. Ele é uma das [integrações do Marketplace](/pt-br/documentacao/plataforma/marketplace/integracoes/) que são executadas em uma aplicação.

Quatro objetos precisam existir antes de uma requisição alcançar uma variação: a função instalada, uma aplicação com o módulo **Functions** ligado, uma instância de função que guarda os argumentos e uma regra do Rules Engine com o comportamento **Run Function**. Cada seção abaixo cria um deles.

---

## Pré-requisitos

- Uma conta Azion. Para entrar, consulte [Como acessar o Azion Console](/pt-br/documentacao/guias/plataforma/conta-e-billing/como-acessar-o-azion-console/).
- Uma [aplicação](/pt-br/documentacao/plataforma/applications/) servida por um [workload](/pt-br/documentacao/plataforma/workloads/). Para criar uma, consulte [Primeiros passos com Applications](/pt-br/documentacao/plataforma/applications/primeiros-passos/).
- Duas origens, uma para cada variação entre as quais o teste divide o tráfego. As origens foram redesenhadas como [Connectors](/pt-br/documentacao/plataforma/connectors/) no Azion Console. Cada variação lê o ID da sua própria origem no argumento `originid`.
- Ligar um produto ou um módulo pode gerar custos de uso. Para mais informações, consulte [Preços](/pt-br/documentacao/fundamentos/precos/).

---

## Instale a integração

A instalação adiciona a função A/B Testing à sua conta. Para instalá-la pelo Azion Console:

1. **Abra o Marketplace**

   Acesse [Azion Console](https://console.azion.com/) > **Marketplace**.

2. **Encontre a integração**

   Informe `A/B Testing` no campo **Search on Marketplace** e selecione o card da integração. Navegar pelos cards e pelas categorias alcança a mesma página.

3. **Selecione Install**

O card mostra `Successfully installed!` e `Latest version installed!`. A função passa então a aparecer como *A/B Testing \[Global]* na lista **Function** do drawer **Create Instance**.

---

## Ligue o módulo Functions

Uma aplicação executa uma função instalada somente quando o seu módulo **Functions** está ligado. A regra que executa o A/B Testing usa os comportamentos **Bypass Cache** e **Forward Cookies**, que exigem o módulo **Application Accelerator**. Para ligar os dois módulos:

1. **Abra a sua aplicação**

   Acesse [Azion Console](https://console.azion.com/) > **Applications** > **sua aplicação**.

2. **Abra a seção Modules**

   Na aba **Main Settings**, vá até a seção **Modules**.

3. **Ligue o switch Functions**

4. **Ligue o switch Application Accelerator**

5. **Selecione Save**

O Azion Console confirma que a aplicação foi atualizada.

---

## Crie a instância de função

Uma instância de função guarda os argumentos que a função A/B Testing lê para uma aplicação. Para criar a instância na sua aplicação:

1. **Abra a aba Functions Instances**

   Em **Applications**, selecione a sua aplicação e depois selecione a aba **Functions Instances**.

2. **Selecione + Function**

   Uma aplicação que ainda não tem instância oferece a mesma ação como **Function Instance**. O drawer **Create Instance** é aberto.

3. **Nomeie a instância**

   Em **Name**, informe um nome único que identifique a instância. Por exemplo: `ab-testing-home`.

4. **Selecione a função**

   Em **Function**, selecione *A/B Testing \[Global]*. O editor **Arguments** é preenchido com os argumentos padrão da integração.

5. **Edite os argumentos**

   Em **Arguments**, substitua os valores padrão pelos valores do seu teste. Cada chave é descrita nas tabelas abaixo.

6. **Selecione Save**

A instância aparece na aba **Functions Instances** com o nome que você informou.

### Argumentos

Os argumentos são um objeto JSON com uma chave `param`. Dentro de `param`, a seção `cookie` configura o cookie que registra a variação, e as seções `a` e `b` configuram uma variação cada. O editor carrega estes padrões:

```json
{
	"param": {
		"cookie": {
			"name": "azion_abtest",
			"expiration": "Wed, 04 May 2011 10:16:00 GMT",
			"max_age": 600,
			"domain": "localhost",
			"path": "/"
		},
		"a": {
			"cookie_value": "A_TEST",
			"prob": 0.5,
			"addresses_list": "localhost:2006",
			"originid": "uuid1",
			"live_ingest": false,
			"protocol_policy": "http",
			"path": "",
			"cache_key": "test_a",
			"host": "localhost"
		},
		"b": {
			"cookie_value": "B_TEST",
			"prob": 0.5,
			"addresses_list": "localhost:2010",
			"originid": "uuid2",
			"live_ingest": false,
			"protocol_policy": "preserve",
			"path": "",
			"cache_key": "test_b",
			"host": "localhost"
		}
	}
}
```

A seção `cookie` aceita estas chaves:

| Chave        | Descrição                                                                    |
| ------------ | ---------------------------------------------------------------------------- |
| `name`       | O nome do cookie. Use um nome único que identifique o teste                  |
| `expiration` | A data de expiração do cookie                                                |
| `max_age`    | O tempo de vida do cookie, em segundos                                       |
| `domain`     | O domínio em que o teste é executado                                         |
| `path`       | O subdomínio do cookie. Use `/` para definir o cookie para todos os domínios |

A seção `a` configura a primeira variação, e a seção `b` aceita as mesmas chaves para a segunda:

| Chave             | Descrição                                                                                                                    |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `cookie_value`    | O valor que identifica esta variação no cookie                                                                               |
| `prob`            | A probabilidade de enviar um usuário para esta variação, de `0` a `1`. `0` é uma chance de `0%` e `1` é uma chance de `100%` |
| `addresses_list`  | O endereço da variação. Por exemplo: `www.mytest_ab_of_my_site.com:443`                                                      |
| `originid`        | O ID da origem desta variação. O Azion Console o gera quando você registra a origem                                          |
| `live_ingest`     | Se a origem é uma transmissão ao vivo. Aceita `true` ou `false`                                                              |
| `protocol_policy` | O protocolo usado para alcançar a origem: force `HTTP` ou `HTTPS`, ou passe `preserve` para manter o protocolo da requisição |
| `path`            | O subdomínio do cookie para esta variação. Deixe-o vazio, `""`, para torná-lo válido para todos os domínios                  |
| `cache_key`       | Um nome que identifica o cache desta variação. Use um valor único que nenhuma outra variação repita                          |
| `host`            | O nome de host que a requisição envia                                                                                        |

---

## Crie a regra

A instância é executada somente quando uma regra do Rules Engine a chama. A regra abaixo corresponde a toda requisição e também acrescenta os comportamentos **Bypass Cache** e **Forward Cookies**, que exigem o módulo **Application Accelerator**. Para criar a regra:

1. **Abra a aba Rules Engine**

   Em **Applications**, selecione a sua aplicação e depois selecione a aba **Rules Engine**.

2. **Selecione + Rule**

3. **Nomeie a regra**

   Em **Name**, informe um nome para a regra. Por exemplo: `Run A/B Testing on every request`.

4. **Selecione a fase**

   Na seção **Phase**, selecione *Request Phase*.

5. **Defina o critério**

   Na seção **Criteria**, mantenha a variável `${uri}` e o operador *starts with* e informe `/` como argumento.

6. **Acrescente o comportamento Run Function**

   Na seção **Behaviors**, selecione *Run Function* e depois selecione pelo nome a instância que você criou.

7. **Acrescente o comportamento Bypass Cache**

   Selecione **Add Behavior** e depois selecione *Bypass Cache*.

8. **Acrescente o comportamento Forward Cookies**

   Selecione **Add Behavior** e depois selecione *Forward Cookies*.

9. **Selecione Save**

A regra aparece na aba **Rules Engine**, na fase de requisição, e executa a instância do A/B Testing em toda requisição. A mudança leva alguns minutos para se propagar pela infraestrutura distribuída da Azion, então espere antes de testar uma variação.

Para cada critério e comportamento que uma regra aceita, consulte [Rules Engine](/pt-br/documentacao/plataforma/applications/rules-engine/).

---

## Próximos passos

- [Integrações do Marketplace](/pt-br/documentacao/plataforma/marketplace/integracoes.md): As integrações que o Marketplace oferece, e a aplicação ou o firewall em que cada uma é executada.
- [Rules Engine](/pt-br/documentacao/plataforma/applications/rules-engine.md): Os critérios e os comportamentos que uma regra aceita, incluindo Run Function, Bypass Cache e Forward Cookies.
- [Connectors](/pt-br/documentacao/plataforma/connectors.md): Como criar as origens para as quais cada variação do teste envia tráfego.
- [Atualize uma integração](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/integracoes/atualizar-uma-integracao.md): Como obter a versão mais recente de uma integração instalada, e o que uma atualização cria.
