# Use a integração A/B Testing no Marketplace

Os testes do tipo A/B são usados para validar determinados sistemas, sites, interfaces ou mesmo fluxos de trabalho. Nesse tipo de teste, você pode experimentar versões do seu site ou aplicação e analisar como elas funcionam com seus usuários. Esta integração irá proporcionar ao usuário duas opções para acessar determinado conteúdo. 

---

## Obtenha a integração 

Para utilizar a integração **A/B Testing** fornecida pelo **Marketplace**, acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) e vá para o **Marketplace**.

Na página inicial do Marketplace, selecione o card da integração.

Quando estiver na página da integração, clique no botão **Install**, no canto inferior direito. Uma mensagem aparecerá indicando que a integração foi instalada com sucesso.

:::tip
Você pode procurar qualquer integração navegando pelos cards, usando os filtros ou digitando uma palavra-chave na barra de busca.
:::

---

## Configure a integração

Sendo uma [Applications function](/pt-br/documentacao/produtos/marketplace/integracoes/#edge-application-functions), a **Teste A/B** executa tarefas e serviços no edge, empregando uma application *existente*.

:::tip
Para criar uma nova application, acesse a [seção Build](/pt-br/documentacao/produtos/guias/build/criar-uma-aplicacao/).
:::

Para instanciar a integração, siga estes passos:

1. No canto superior esquerdo da página, selecione **Products menu** > **Applications** na seção **BUILD**.
2. Na lista de aplicações, selecione a application na qual deseja configurar a integração.
3. Na página da aplicação, selecione a aba **Main Settings**.
4. Habilite os switches de **Functions** e **Application Accelerator** para ativar esses módulos.
5. Clique em **Save** no canto inferior direito da página.

Uma mensagem aparecerá indicando que a application foi atualizada com sucesso.

:::caution[Atenção]
Se qualquer produto ou módulo for ativado, pode gerar custos relacionados ao uso. Consulte a [página de preços](/pt-br/documentacao/produtos/precos/) para obter mais informações.
:::

---

## Adicione Origins

No arquivo de configuração `JSON`, você terá que registrar as origens (os sites) para as quais você deseja usar o seu teste. Cada origem receberá uma chave única, chamada de `Origin Key`.

Para isso, ainda na página inicial da application:

1. Vá para a guia **Origins**.
2. Clique no botão **+ Origin**.
3. Dê um nome fácil de lembrar para esta origem.
4. Selecione **Single Origin** para o tipo de origem.
5. Escolha o protocolo que você deseja utilizar: **Enforce HTTP**, **Enforce HTTPS** ou **Preserve HTTP/HTTPS** para preservar o protocolo original.
6. Em **Address**, passe a URL que você deseja registrar para esta origem.
7. Selecione `${host}` para a opção **Host Header**.
8. Você pode passar um **Origin Path**, mas é opcional.
9. Clique no botão **Save**.

Após salvar suas alterações, você poderá ver a `Origin Key` gerada pelo Azion Console para a origem que você registrou. Ela será utilizada para preencher o campo `originid` na caixa de código **Arguments** da sua function.

:::note
Você deve registrar duas origens.
:::

---

## Instancie a integração

Ainda na página da sua aplicação, siga os passos abaixo:

1. Selecione a aba **Functions Instances**.
2. Clique no botão **+ Function Instance**.
3. Escolha um nome para a sua função que seja fácil de lembrar.
4. No menu suspenso, selecione a função **A/B Testing [Global]**.

Isto irá carregar a aba **Arguments**, onde você pode adicionar os parâmetros para executar sua aplicação.

:::note
Os parâmetros têm divisões para pelo menos três seções: `params`, `a` e `b`.
:::

O formulário carregará os parâmetros como abaixo:

```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"
		}
	}
}
```

Onde:

| Variável | Descrição |
|---|---|
| `name` | O nome do cookie. Escolha um nome único e fácil de lembrar |
| `expiration` | A data de expiração do cookie |
| `max_age` | O tempo, em segundos, para a vida útil deste cookie |
| `domain` | O domínio onde você está executando os testes |
| `path` | O subdomínio para o cookie. Você pode usar `/` para definir que o subdomínio engloba todos os domínios |

Na segunda seção, chamada `a`, você irá adicionar os parâmetros do primeiro teste, e logo repetir para o resto dos testes:

| Variável | Descrição |
|---|---|
| `cookie_value` | O valor para identificar o cookie para esta variação de teste |
| `prob` | A probabilidade deste endereço ser enviado ao usuário. Este valor deve estar entre `0` e `1`, sendo `0` para `0%` de chance e `1` para `100%` de chance |
| `adressess_list` | O endereço para um teste. Exemplo: `www.mytest_ab_of_my_site.com:443` |
| `originid` | O *ID* de identificação para a origem. O **Azion Console** gera este valor automaticamente |
| `live_ingest` | Indica se a origem é uma *live streaming*. Adicione um valor booleano: `true` ou `false` |
| `protocol_policy` | Para forçar HTTP ou HTTPS, ou mesmo manter o valor padrão, deixando o valor como `preserve` |
| `path` | Indica o subdomínio do cookie. Você pode deixá-lo em branco `""` para indicar que ele é válido para todos os domínios |
| `cache_key` | O nome para identificar o cache, que deve ser único |
| `host` | O nome do host que será enviado na requisição |

---

## Configure o Rules Engine

No **Rules Engine**, você passará os *criteria* (critério) e *behavior* (comportamento) para executar a integração.

Ainda na página da sua aplicação:

1. Selecione a aba **Rules Engine**.
2. Clique na guia **Default Rule**.
    - Observe que você não pode alterar ou configurar a **Default Rule**.
3. Em *behavior*, escolha **Run Function** e, no menu suspenso, escolha a integração **A/B Testing** de acordo com o nome que você lhe deu anteriormente.
4. Adicione outro *behavior* clicando no botão **+ Add Behavior** logo abaixo do primeiro.
5. Passe o primeiro *behavior* adicional: **Bypass Cache**.
6. Clique novamente no botão **+ Add Behavior** abaixo do segundo behavior.
7. Passe o segundo *behavior* adicional: **Forward Cookies**.
8. Clique no botão **Save**.

Pronto. Agora você terá que esperar uns minutos que a sua application se propague através da rede da Azion.

---