

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# SAÍDA\_PERSONALIZADA
<a name="monetization-functions-types-custom-output"></a>

## Quando usar
<a name="monetization-functions-types-custom-output-when"></a>

Use `CUSTOM_OUTPUT` quando sua lógica de função for puramente computacional. Os casos de uso comuns incluem a classificação de dispositivos com base nas cadeias de caracteres do agente do usuário, a seleção de URLs do servidor de decisão de anúncios com a lógica de A/B teste e a reformatação dos parâmetros do player antes que eles cheguem ao servidor de decisão do anúncio.

`CUSTOM_OUTPUT`as funções são do tipo mais rápido porque avaliam expressões na memória sem chamadas de rede. Escolha esse tipo sempre que puder atingir sua meta sem entrar em contato com um serviço externo.

## Campos de configuração
<a name="monetization-functions-types-custom-output-fields"></a>

Uma `CUSTOM_OUTPUT` função tem dois campos:
+ **Runtime** — A linguagem de expressão. Defina isso como`JSONATA`.
+ **Saída** — Um mapa de pares de valores-chave. Cada chave é um nome de associação de saída (como`player_params.device_type`) e cada valor é uma expressão que é MediaTailor avaliada em tempo de execução.

**nota**  
Use `{%...%}` para agrupar expressões JSonata em campos de string. Valores sem esses delimitadores são tratados como cadeias de caracteres estáticas. Por exemplo, `"{%session.id%}"` avalia a expressão, enquanto `"session.id"` é o texto literal.

## Comportamento durante a execução
<a name="monetization-functions-types-custom-output-behavior"></a>

Quando MediaTailor executa uma `CUSTOM_OUTPUT` função, ela avalia cada expressão no bloco de saída em relação ao estado atual da sessão. Todas as expressões veem o mesmo instantâneo de entrada. Os resultados avaliados se tornam as saídas da função.

Se alguma expressão falhar na avaliação, MediaTailor descarta toda a saída da função e prossegue como se nenhuma função estivesse anexada. A função não confirma parcialmente os resultados.

## Exemplo: divisão A/B de tráfego
<a name="monetization-functions-types-custom-output-example"></a>

A função a seguir atribui aleatoriamente cada intervalo de anúncio a um dos dois URLs do servidor de decisão de anúncios. Ele foi projetado para o gancho do `PRE_ADS_REQUEST` ciclo de vida.

```
{
    "FunctionId": "abTestAdsUrl",
    "FunctionType": "CUSTOM_OUTPUT",
    "CustomOutputConfiguration": {
        "Runtime": "JSONATA",
        "Output": {
            "adsRequest.url": "{%$random() < 0.5 ? 'https://ads.example.com/v1' : 'https://ads.example.com/v2'%}"
        }
    }
}
```

Para obter uma explicação completa desse exemplo, consulte. [Exemplos de funções](monetization-functions-examples.md)