

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á.

# Exemplo 1: enriquecimento de dados
<a name="monetization-functions-examples-enrichment"></a>

## Cenário
<a name="monetization-functions-examples-enrichment-scenario"></a>

Um serviço de streaming quer buscar dados de identidade do público de um serviço externo (nesse caso, LiveRamp) no início da sessão e armazená-los nos parâmetros do player para segmentação de anúncios posteriormente na sessão. Um envelope de identidade é um identificador criptografado fornecido por um serviço de resolução de identidade que permite que os sistemas de anúncios reconheçam um espectador em vários dispositivos e plataformas sem expor informações pessoais.

## Configuração
<a name="monetization-functions-examples-enrichment-config"></a>

**Buscar LiveRamp envelope (HTTP\_REQUEST):**

```
{
    "FunctionId": "fetchLiveRamp",
    "FunctionType": "HTTP_REQUEST",
    "HttpRequestConfiguration": {
        "Runtime": "JSONATA",
        "MethodType": "GET",
        "Url": "{%'https://api.example-identity.com/v2/envelope?pid=12345&iv=' & player_params.hashedId%}",
        "Headers": {
            "Authorization": "{%'Bearer ramp-token-789'%}"
        },
        "RequestTimeoutMilliseconds": 2000,
        "Output": {
            "player_params.envelope_id": "{%response.body.envelopes[0].value%}"
        }
    }
}
```

**nota**  
`Bearer ramp-token-789`Substitua por suas próprias credenciais de API. Não armazene tokens confidenciais diretamente nas configurações de função na produção. Considere usar uma estratégia de rotação de tokens.

Defina `RequestTimeoutMilliseconds` com base no tempo de resposta esperado do seu serviço externo. Um valor menor reduz a latência, mas aumenta a chance de erros de tempo limite.

## Mapeamento de funções
<a name="monetization-functions-examples-enrichment-mapping"></a>

```
{
    "FunctionMapping": {
        "PRE_SESSION_INITIALIZATION": "fetchLiveRamp"
    }
}
```

## O que acontece quando a função é executada
<a name="monetization-functions-examples-enrichment-runtime"></a>

1. Um espectador inicia uma sessão de reprodução.

1. MediaTailor executa o gancho do `PRE_SESSION_INITIALIZATION` ciclo de vida e funciona. `fetchLiveRamp`

1. A função cria o URL da solicitação usando `player_params.hashedId` e chama a LiveRamp API. No URL, `pid` é o ID do parceiro e `iv` é o identificador do visualizador com hash.

1. A expressão de saída extrai o valor do primeiro envelope na matriz de resposta (`response.body.envelopes[0].value`) e o grava em. `player_params.envelope_id`

**dica**  
Para lidar com erros de forma explícita, verifique `response.statusCode` antes de acessar os dados de resposta: `{%response.statusCode = 200 ? response.body.envelopes[0].value : ''%}`

Para ter mais informações, consulte [HTTP\_REQUEST](monetization-functions-types-http-request.md), [INICIALIZAÇÃO DA PRÉ-SESSÃO](monetization-functions-hooks-pre-session.md), [Solução de problemas e monitoramento](monetization-functions-troubleshooting.md) e [Limites](monetization-functions-limits.md).