

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exemple 1 : Enrichissement des données
<a name="monetization-functions-examples-enrichment"></a>

## Scénario
<a name="monetization-functions-examples-enrichment-scenario"></a>

Un service de streaming souhaite récupérer les données d'identité de l'audience auprès d'un service externe (dans ce cas, LiveRamp) au début de la session et les stocker dans les paramètres du lecteur pour le ciblage publicitaire plus tard dans la session. Une enveloppe d'identité est un identifiant crypté fourni par un service de résolution d'identité qui permet aux systèmes publicitaires de reconnaître un internaute sur tous les appareils et plateformes sans révéler d'informations personnelles.

## Configuration
<a name="monetization-functions-examples-enrichment-config"></a>

**Récupérez LiveRamp l'enveloppe (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%}"
        }
    }
}
```

**Note**  
`Bearer ramp-token-789`Remplacez-les par vos propres identifiants d'API. Ne stockez pas les jetons sensibles directement dans les configurations fonctionnelles en production. Envisagez d'utiliser une stratégie de rotation des jetons.

Définissez `RequestTimeoutMilliseconds` en fonction du temps de réponse attendu de votre service externe. Une valeur inférieure réduit la latence mais augmente le risque d'erreurs de temporisation.

## Cartographie des fonctions
<a name="monetization-functions-examples-enrichment-mapping"></a>

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

## Que se passe-t-il lorsque la fonction s'exécute
<a name="monetization-functions-examples-enrichment-runtime"></a>

1. Un spectateur démarre une session de lecture.

1. MediaTailor exécute le hook `PRE_SESSION_INITIALIZATION` du cycle de vie et s'exécute`fetchLiveRamp`.

1. La fonction crée l'URL de demande à l'aide de l' LiveRampAPI `player_params.hashedId` et l'appelle. Dans l'URL, `pid` il y a l'ID du partenaire et `iv` l'identifiant haché du spectateur.

1. L'expression de sortie extrait la valeur de la première enveloppe du tableau de réponses (`response.body.envelopes[0].value`) et l'écrit dans`player_params.envelope_id`.

**Astuce**  
Pour gérer les erreurs de manière explicite, vérifiez `response.statusCode` avant d'accéder aux données de réponse : `{%response.statusCode = 200 ? response.body.envelopes[0].value : ''%}`

Pour plus d'informations, consultez [REQUÊTE\_HTTP](monetization-functions-types-http-request.md), [INITIALISATION AVANT LA SESSION](monetization-functions-hooks-pre-session.md), [Résolution des problèmes et surveillance](monetization-functions-troubleshooting.md) et [Restrictions](monetization-functions-limits.md).