---
name: azion-instale-a-integracao-content-targeting
description: >-
  Instale Content Targeting a partir de Azion Marketplace e execute-a em uma aplicação para dar a cada usuário um valor ponderado em um cookie e um cabeçalho.
---

# Instale a integração Content Targeting

Content Targeting define um cookie e um cabeçalho em cada requisição, com um valor escolhido de uma lista ponderada. Use-a para segmentar conteúdo por contexto de aplicação, regra de negócio ou um cenário que você define, com suas próprias variantes e porcentagens de distribuição. Ela é uma das [integrações do Marketplace](/pt-br/documentacao/plataforma/marketplace/integracoes/) que executam em uma aplicação.

A função executa na infraestrutura distribuída da Azion, e não na sua origem. Um valor pode selecionar sua própria cache key, e cada evento pode ser registrado por meio de [Data Stream](/pt-br/documentacao/plataforma/data-stream/). Quatro objetos precisam existir antes que uma requisição receba um valor: a função instalada, uma aplicação com o módulo **Functions** ativado, uma instância de função com os argumentos e uma regra do Rules Engine com o behavior **Run Function**.

---

## 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/).
- Ativar 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 Content Targeting à sua conta. Para instalá-la pelo Azion Console:

1. **Abra Marketplace**

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

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

   Digite `Content Targeting` no campo **Search on Marketplace** e selecione o card da integração. Navegar pelos cards e pelas categorias leva à mesma página.

3. **Selecione Install**

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

---

## Ative o módulo Functions

Uma aplicação executa uma função instalada apenas quando o módulo **Functions** dela está ativo. Para ativar o módulo:

1. **Abra 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. **Ative o switch Functions**

4. **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 Content Targeting lê para uma aplicação. Para criar a instância na sua aplicação:

1. **Abra a aba Functions Instances**

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

2. **Selecione + Function**

   Uma aplicação ainda sem instâncias oferece a mesma ação como **Function Instance**. O drawer **Create Instance** é aberto.

3. **Nomeie a instância**

   Em **Name**, insira um nome único que identifique a instância. Por exemplo: `content-targeting-home`.

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

   Em **Function**, selecione *Content Targeting \[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 cenário. Cada chave é descrita na tabela abaixo.

6. **Selecione Save**

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

### Argumentos

Os argumentos são um objeto JSON. Este exemplo define dois valores, `A` e `B`, e dá a `A` sua própria cache key:

```json
{
  "cookie_name": "azion-cookie",
  "header_name": "azion_header",
  "domain": ".azion.com",
  "max_age": 600,
  "expires": "Tue, 19 Jan 2038 03:14:07 GMT",
  "path": "/",
  "values": [
    {
      "value": "A",
      "weight": 7.1,
      "cache_key": "custom_a"
    },
    {
      "value": "B",
      "weight": 14.9
    }
  ]
}
```

| Chave         | Formato de dado | Obrigatório                                     | Descrição                                                                                  |
| ------------- | --------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `cookie_name` | String          | Sim                                             | O cookie que armazena o valor escolhido                                                    |
| `header_name` | String          | Sim                                             | O cabeçalho que armazena o valor escolhido                                                 |
| `domain`      | String          | Sim                                             | O domínio para o qual o cookie é definido                                                  |
| `max_age`     | Integer         | Não                                             | Por quanto tempo o valor do cookie é válido, em segundos                                   |
| `expires`     | String          | Não                                             | A forma legada de definir por quanto tempo o cookie é armazenado. Insira uma data completa |
| `path`        | String          | Sim                                             | O caminho em que o cookie é válido                                                         |
| `values`      | Object          | Sim. A lista precisa ter pelo menos uma entrada | Cada valor que a função pode escolher                                                      |

Nem `max_age` nem `expires` é obrigatório, mas defina pelo menos um deles. Sem os dois, o cookie não é armazenado. As duas chaves não substituem uma à outra: `expires` é um fallback para navegadores mais antigos que não suportam a diretiva `max_age`.

Cada entrada em `values` recebe estas chaves:

- `value`, obrigatória: o valor definido no cookie e no cabeçalho quando esta entrada é escolhida.
- `weight`, obrigatória: a probabilidade de esta entrada ser escolhida.
- `cache_key`, opcional: uma cache key personalizada para a requisição quando esta entrada é escolhida.

---

## Crie a regra

A instância executa apenas quando uma regra do Rules Engine a chama. A regra abaixo corresponde a todas as requisições. Para criar a regra:

1. **Abra a aba Rules Engine**

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

2. **Selecione + Rule**

3. **Nomeie a regra**

   Em **Name**, insira um nome para a regra. Por exemplo: `Run Content Targeting 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, em seguida, insira `/` como argumento.

6. **Adicione o behavior Run Function**

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

7. **Selecione Save**

A regra aparece na aba **Rules Engine**, na fase de requisição, e executa a instância Content Targeting em toda requisição.

Para cada critério e behavior que uma regra aceita, consulte [Rules Engine para Applications](/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 Marketplace oferece e a aplicação ou o firewall em que cada uma executa.
- [Rules Engine](/pt-br/documentacao/plataforma/applications/rules-engine.md): Os critérios e behaviors que uma regra aceita, incluindo Run Function.
- [Data Stream](/pt-br/documentacao/plataforma/data-stream.md): Como enviar os eventos que sua aplicação registra para um endpoint que você escolhe.
- [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.
