# Paramètres de stockage

## Configuration des paramètres de Storage

Pour créer un nouveau storage, il suffit de remplir tous les champs requis du formulaire

* **Nommez votre storage :** donnez un nom clair à votre storage
* **Choisissez la ou les Source(s) et l’environnement**
* **Sélectionnez la catégorie de Consent :** Assurez la conformité avec les réglementations sur la protection des données.

<figure><img src="https://3282103337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6XpTQ2LaRLcr2tA-d%2Fuploads%2Fgit-blob-6a056ef34a7f19f64a9d14139abce510c4a9ce41%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

* **Sélectionnez l’événement :** Choisissez à partir de quel événement vous souhaitez stocker les propriétés

<figure><img src="https://3282103337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6XpTQ2LaRLcr2tA-d%2Fuploads%2Fgit-blob-8c80397a67694f682c9fb3205c65597a441d9ebb%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

* **Sélectionnez les propriétés :** Choisissez les propriétés dont vous avez besoin pour votre enrichment. Cliquez sur "Add/Edit Properties"

<figure><img src="https://3282103337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6XpTQ2LaRLcr2tA-d%2Fuploads%2Fgit-blob-2ade645f894bfec15a28c100cd54aa5ab0992d75%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Un panneau latéral apparaîtra afin de permettre la sélection des propriétés.\
Dans certains cas, vous devrez peut-être stocker toutes les propriétés. Il suffit d’activer le bouton du haut.\
Pour enregistrer votre sélection, cliquez simplement sur la croix de fermeture

{% hint style="success" %}
Le format imbriqué est autorisé, voir [Vérifier le format des Properties](#check-properties-format) section
{% endhint %}

<figure><img src="https://3282103337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6XpTQ2LaRLcr2tA-d%2Fuploads%2Fgit-blob-e1193d03d0a37515a07ed95ec65b0a6bee0b3c7a%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

* **Définissez une Matching Key :** Cette clé unique doit être présente et identique à la fois sur l’événement à enrichir et sur l’événement à stocker.

<figure><img src="https://3282103337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6XpTQ2LaRLcr2tA-d%2Fuploads%2Fgit-blob-b7f9ab3e717816cb71dbcfda94be7981b4372168%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

* **Ajouter des filtres (optionnel) :** si nécessaire, vous pouvez définir certains filtres pour stocker des événements selon des conditions spécifiques\\

  <figure><img src="https://3282103337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6XpTQ2LaRLcr2tA-d%2Fuploads%2Fgit-blob-48904193b8822ae43e882ca6de324f5ab118f9ec%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>
* **Définissez la période de conservation :** La durée de stockage est la période pendant laquelle les événements stockés sont conservés dans notre base de données (maximum 730 jours autorisés).

{% hint style="success" %}
Afin d’éviter un impact inattendu sur la consommation de votre crédit, vous devriez choisir une durée correspondant à votre cas d’usage.
{% endhint %}

<figure><img src="https://3282103337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6XpTQ2LaRLcr2tA-d%2Fuploads%2Fgit-blob-2d47a65c41388fd7a6b5fab4f6507b19e3537578%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Félicitations ! Vos Storage Settings sont configurés ! **N’oubliez pas de Save !**

## **Astuces et conseils**

### Vérifiez si la propriété existe déjà

Par défaut, un Storage Settings n’enrichira pas une propriété si elle existe déjà dans l’événement à enrichir.\
\
Si la propriété existe déjà, mais que vous avez réellement besoin d’en changer la valeur avec votre enrichment, n’oubliez pas de cocher l’option "override" dans votre [configuration d’enrichment](https://app.commandersact.com/en/4452/sources/privacy-banners/?p=/en/4452/containers/privacy/settings/1/demo-iab-ii).

Cette fonctionnalité d’override peut également s’appliquer aux valeurs de tableaux.

### Vérifier le format des Properties

Il n’est pas possible d’enrichir une propriété avec un type différent de celui attendu par défaut dans votre enrichment.\
Exemple de base :\
Envoyer une valeur Number pour enrichir une propriété de type String\
`storage > "items.product.quantity": 2 >> enrich >> "items.product.color": N/A`\
Cela ne fonctionnera pas, vous obtiendrez une [erreur d’avertissement](#errors) au lieu d’une propriété enrichie. Vous pouvez l’identifier facilement grâce au message suivant dans "details" : `'type error, number cannot replace a string'`

### **Propriétés de Consent**

Évitez tout enrichment de la `user.consent_categories` property.\
Cela concerne le choix juridique de l’utilisateur concernant la collecte/le suivi des données personnelles.\
Enrichir cette propriété peut créer un risque de non-conformité.

### Warnings Errors

S’il y a une anomalie dans votre storage, vous pourrez voir une propriété "warnings" dans le Live Event Inspector.

Située dans l’événement qui aurait dû être enrichi, si l’enrichment ne s’applique pas comme prévu, vous verrez cette propriété "warnings", avec des détails pour une meilleure compréhension

```json
            warnings: [
                {
                    type: 'enrichment',
                    step: 'saveHit',
                    path: 'event.items',
                    detail: {
                        message: 'type error, object cannot replace array',
                    },
                },
            ],
```

### **Cas spécifiques - Objects**

Vous pouvez stocker un Object entier (exemple : `items.product`) mais vous pouvez aussi stocker uniquement une ou plusieurs clé(s) extraites d’un Object (exemple : `items.product.price`).\
Si vous enregistrez des clés uniques, assurez-vous que l’événement de destination a déjà l’Object défini.\
Sinon, la clé unique n’enrichira rien.\
Le message d’avertissement contiendra le détail suivant :\
`message :` '`should merge object properties that do not exist in target'`

#### **Réconciliation de Multiple Objects**

Si vous stockez une propriété présente dans plusieurs objects, soyez prudent !\
Notre mécanisme d’appariement est basé sur les ID.\
Par exemple, vous avez de nombreux `items.product` objects et vous devez stocker la propriété `items.product.brand` .\
Nous utiliserons le `items.product.id` comme Matching Key pour remplir les différents `items.product` objects.\
S’il n’y a pas de propriété "ID" dans votre object, nous alimenterons simplement dans le même ordre que celui dans lequel il a été stocké.\
Dans ce cas, les détails "warnings" suivants seront ajoutés à votre enrichment\
`message: 'No ID field found, falling back to index-based merge',`

#### Utilisation de l’override

Soyez prudent lorsque vous utilisez l’option Override !\
Remplacer un Object entier bloquera le "non-override" d’une seule clé\
Exemple de mauvaise pratique :

`items.product.color` << *override: false* >> `items.product.defaultColor`\
`items` << *override: true* >> `items`

Les données de la `items.product.color` value sont remplacées car la deuxième ligne est prioritaire.

### Bonne pratique : utilisation des filtres

Bien sûr, les filtres définis dans vos destinations seront appliqués.\
Alors pourquoi devriez-vous utiliser les filtres des Storage Settings ?\
Nous fournissons les filtres à ce niveau simplement pour vous faire économiser des frais de Storage (consommation de crédit), et pour simplifier le traitement dans vos destinations.

La même qualité d’enrichment, pour moins de frais !
