

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Ejemplo 1: enriquecimiento de datos
<a name="monetization-functions-examples-enrichment"></a>

## Escenario
<a name="monetization-functions-examples-enrichment-scenario"></a>

Un servicio de streaming quiere obtener datos de identidad de la audiencia de un servicio externo (en este caso LiveRamp) al inicio de la sesión y almacenarlos en los parámetros del reproductor para segmentar los anuncios más adelante durante la sesión. Un sobre de identidad es un identificador cifrado proporcionado por un servicio de resolución de identidad que permite a los sistemas de anuncios reconocer a un espectador en todos los dispositivos y plataformas sin exponer su información personal.

## Configuración
<a name="monetization-functions-examples-enrichment-config"></a>

** LiveRamp Sobre de búsqueda (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`Sustitúyalas por tus propias credenciales de API. No almacene los tokens confidenciales directamente en las configuraciones de funciones en producción. Considera usar una estrategia de rotación de fichas.

`RequestTimeoutMilliseconds`Establézcalo en función del tiempo de respuesta esperado de tu servicio externo. Un valor inferior reduce la latencia, pero aumenta la probabilidad de que se produzcan errores de tiempo de espera.

## Mapeo de funciones
<a name="monetization-functions-examples-enrichment-mapping"></a>

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

## ¿Qué ocurre cuando se ejecuta la función
<a name="monetization-functions-examples-enrichment-runtime"></a>

1. Un espectador inicia una sesión de reproducción.

1. MediaTailor ejecuta el enlace `PRE_SESSION_INITIALIZATION` del ciclo de vida y se ejecuta`fetchLiveRamp`.

1. La función crea la URL de la solicitud mediante la LiveRamp API `player_params.hashedId` y la llama. En la URL, `pid` está el ID del socio y `iv` es el identificador del espectador codificado con un hash.

1. La expresión de salida extrae el valor del primer sobre de la matriz de respuesta (`response.body.envelopes[0].value`) y lo escribe en él. `player_params.envelope_id`

**sugerencia**  
Para gestionar los errores de forma explícita, compruebe `response.statusCode` antes de acceder a los datos de respuesta: `{%response.statusCode = 200 ? response.body.envelopes[0].value : ''%}`

Para obtener más información, consulte [HTTP\_REQUEST](monetization-functions-types-http-request.md), [INICIALIZACIÓN PREVIA A LA SESIÓN](monetization-functions-hooks-pre-session.md), [Solución de problemas y supervisión](monetization-functions-troubleshooting.md) y [Límites](monetization-functions-limits.md).