> For the complete documentation index, see [llms.txt](https://help.citrusad.com/retail-media-interface/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.citrusad.com/retail-media-interface/integration/fr/feature-integrations/category-cross-sell/integration-requirements.md).

# Exigences d'intégration

## Aperçu général

Dans le cadre de cette intégration, vous devrez effectuer les opérations ci-dessous

1. Mettre en œuvre une demande d'annonce supplémentaire pour l'emplacement de catégorie de vente croisée.
   1. Cela comprend le travail de positionnement et de rendu des annonces sur votre site, ainsi que le signalement des clics et des impressions
   2. Les commandes doivent être fournies à Epsilon Retail Media dans le cadre de votre intégration standard
2. Si vous synchronisez les ID de catégorie avec Epsilon Retail Media, vous devrez utiliser l' [filterMapping](/retail-media-interface/integration/fr/citrus-filter-mapping-api/filtermapping.md) API pour fournir des valeurs lisibles par l'homme pour la sélection de catégorie dans l'interface utilisateur
   1. Cela s'applique uniquement si vous êtes intégré avec des ID de catégorie au lieu de noms. (comme lorsque vous demandez des annonces, vos filtres sont `category:123j-dsef-er` au lieu de `category:Milk`
3. (Conseillé) - synchronisez les correspondances de vente croisée de catégories pour automatiser l'approbation et réduire la charge de gestion des campagnes.

## Demande d'annonce et intégration au site

### Demande d'annonce

Comme la vente croisée de catégories nécessite un emplacement autonome, vous devrez intégrer une demande d'annonce supplémentaire par type d'annonce pour lequel vous intégrez la vente croisée de catégories.

Le format de votre demande doit correspondre à la demande d'annonce de catégorie de vente croisée telle qu'indiquée ci-dessous

* [Annonce produit - demande de publicités de vente croisée par catégorie](/retail-media-interface/integration/fr/generating-ads/product-ads/requesting-product-ads-1.md#cross-sell-category-placements)
* [Annonce bannière - demande de publicités de vente croisée par catégorie](/retail-media-interface/integration/fr/generating-ads/banner-ads-static/requesting-banner-ads.md#cross-sell-category-placements)
* Banner X - demande d'annonces de vente croisée de catégories

### Signalement des impressions et des clics

Une fois votre demande d'annonce intégrée, vous devrez également vous assurer de signaler correctement les clics et les impressions pour chaque annonce affichée. Veillez à lire [Rapport sur les impressions et les clics](/retail-media-interface/integration/fr/data-api/api-overview/reporting-impressions-clicks.md).

### Signalement des commandes

En règle générale, la plupart des intégrations signalent toutes les informations de commande à Epsilon Retail Media conformément à une intégration standard. Vous devez vous assurer de signaler correctement toutes les commandes à Epsilon Retail Media selon [Données de commande](/retail-media-interface/integration/fr/data-api/order-data-1.md).

## Correspondances de filtres

Le point de terminaison de correspondance des filtres peut être utilisé pour associer vos ID de catégorie à des valeurs lisibles par l'homme. Cela est requis si vous synchronisez les ID de catégorie car l'interface utilisateur affiche les valeurs à vos utilisateurs.

{% hint style="info" %}
Si vous synchronisez des catégories lisibles par l'homme dans votre catalogue de produits avec Epsilon Retail Media, cette étape ne sera pas requise.
{% endhint %}

Les utilisateurs ne comprendront pas ce qu'est `category:12345-abcde` . L'API filterMapping peut être utilisée pour associer la valeur au nom de catégorie pertinent sur votre site, tel que `category:Pantry`.

Il n'y a pas de méthode basée sur un fichier pour synchroniser ces informations, cela doit être fait via l' [filterMapping](/retail-media-interface/integration/fr/citrus-filter-mapping-api/filtermapping.md) API.

{% hint style="warning" %}
Au fur et à mesure que vous créez des catégories supplémentaires sur votre site, vous devrez vous assurer que l'API filterMapping est utilisée pour mettre à jour les catégories.
{% endhint %}

## Correspondances de vente croisée de catégories (conseillé)

Lors de l'intégration de ce type d'emplacement, il est fortement conseillé de fournir une correspondance indiquant quelles catégories sont autorisées à se cibler entre elles. Cela peut simplifier vos opérations après le travail d'intégration initial. L'expérience de l'annonceur est simplifiée pour ne permettre de sélectionner que les catégories déjà autorisées.

De plus, il est également possible de configurer l'approbation automatique pour les campagnes de vente croisée de catégories lorsque des correspondances de vente croisée sont fournies.

### Méthodes d'intégration

* Vous pouvez utiliser l' [crossSellCategory](/retail-media-interface/integration/fr/crosssellcategory-api/crosssellcategory.md) API pour créer et gérer des correspondances selon vos besoins.
* Sinon, vous pouvez fournir un fichier TSV dans un bucket GCS hébergé par Epsilon Retail Media avec le format indiqué ci-dessous.

#### Intégration par API

Toutes les informations requises sont visibles dans la [crossSellCategory](/retail-media-interface/integration/fr/crosssellcategory-api/crosssellcategory.md) référence de l'API.

#### Intégration par fichier

En cas d'intégration par fichier, Epsilon Retail Media exige un fichier par catalogue, définissant quelles catégories sont autorisées à se cibler entre elles.

Chaque ligne du fichier représente une correspondance unique d'une catégorie et de la catégorie qu'elle peut cibler. Chaque correspondance est unidirectionnelle (si vous synchronisez chocolat -> lait, les produits chocolat peuvent apparaître sur la catégorie lait. Si les produits lait doivent pouvoir apparaître sur chocolat, une ligne supplémentaire est requise).

Nous avons besoin d'un flux de données au format TSV conforme aux spécifications ci-dessous :

| nom de colonne      | Requis | Type de données | Description                                                                                                                                                    | Exemple            |
| ------------------- | ------ | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
| `category`          | Requis | Texte           | Il s'agit d'un ID de catégorie unique identifiant la catégorie du produit annoncé.                                                                             | `category:cookies` |
| `cross_category_id` | Requis | Texte           | Il s'agit d'un ID de catégorie unique identifiant une catégorie éligible dans laquelle les produits de category\_id peuvent faire l'objet d'une vente croisée. | `category:milk`    |

Les spécifications de fichier supplémentaires sont ci-dessous :

* Les fichiers TSV sont uniquement pris en charge
* Le fichier TSV doit utiliser LF et non CRLF
* Le fichier TSV doit être codé en UTF-8, tout type entraînera l'échec du flux
* Convention de nommage requise : `^cross_sell_category.*.tsv$`

Un exemple d'extrait ressemble à ce qui suit :

| category         | cross\_category\_id |
| ---------------- | ------------------- |
| category:cookies | category:milk       |
| category:cookies | category:chocolate  |
| category:milk    | category:cookies    |

Cet extrait ci-dessus permet à la catégorie **cookies** de faire de la vente croisée dans les catégories **milk** et **chocolate**. La catégorie **milk** peut faire de la vente croisée dans la catégorie **cookies**. La catégorie **chocolate** peut être ciblée, mais ne peut cibler aucune autre catégorie.

{% hint style="danger" %}
️ Chaque ligne est une combinaison de correspondance unique

Vous devez synchroniser des lignes uniques pour chaque correspondance unique de catégorie de vente croisée. En cas de tentative de synchronisation de plusieurs cross\_category\_id sur une seule ligne, l'ingestion du fichier échouera.
{% endhint %}

{% hint style="warning" %}
Ordre des colonnes

Veuillez vous assurer que votre fichier a la `category` colonne comme première colonne. Si vous synchronisez `cross_category_id` comme première colonne, l'ingestion échouera.
{% endhint %}

## Procédure d'activation de la fonctionnalité

Une fois que vous êtes prêt à commencer la synchronisation de votre flux de termes de recherche suggérés, Epsilon Retail Media vous configurera un bucket GCS dans lequel déposer vos fichiers.

Cette fonctionnalité est uniquement prise en charge sur les buckets GCS. Les buckets externes tels qu'AWS/Azure/autres ne sont pas pris en charge.

Votre Account Manager Technique sera en mesure de vous guider tout au long de l'activation de cette fonctionnalité. Comme Epsilon Retail Medial'équipe des opérations de la plateforme doit effectuer une configuration, veuillez noter qu'un délai supplémentaire est nécessaire pour l'activation.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.citrusad.com/retail-media-interface/integration/fr/feature-integrations/category-cross-sell/integration-requirements.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
