> 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/brand-pages/brand-page-retailer-integration-guide/tracking-attribution.md).

# Suivi et attribution

## Comment composer une URL de suivi

La réponse fournit trois sources à combiner :

* Au niveau de la page `trackers.impression`: par exemple, une impression de page utilise `type: "impression"` et `params` y compris `ts` et `iabConsentString`.
* Partagé `trackingTemplates`: un ensemble de modèles d'URL `client`(relatifs) et `server` (absolus), contenant déjà les paramètres de requête de session et d'emplacement.
* Par nœud `trackers.click` et/ou `trackers.addToCart` sur un module, une ligne ou un élément de galerie : `type`+ `params` pour cet événement spécifique (par exemple, `modId`, `rurl`, `productCode`).

### Quel modèle ?

Utilisez le nœud `tracking.type` pour rechercher `trackingTypes.<type>`. Cela définit les clés `client.*` et `server.*` valides pour cette interaction (par exemple, pour link : `client.clickRedirect`, `client.clickEvent`, `server.clickEvent)`.

### Client vs Serveur

* Client (`trackingTemplates.client.*`) : Les valeurs sont des chemins relatifs (y compris les chaînes de requête). Préfixez l'URL de base de votre reverse-proxy (`BASEURL`).
* Serveur (`trackingTemplates.server.`) : Les valeurs sont des modèles d'URL absolus sur l'hôte de suivi Epsilon . Composez l'URL finale de la même manière que pour C2S : modèle + `"&"` + `queryString(trackers.<slot>params)`.

{% hint style="info" %}
Ne modifiez pas l'hôte ou le chemin du modèle, et n'envoyez pas d'appels S2S via votre reverse-proxy.
{% endhint %}

### Exemples conccrets (pseudocode)

#### Clic C2S pour un CTA HERO

```
url = BASEURL + trackingTemplates.client.clickRedirect + "&" + queryString(trackers.click.params)
```

#### Impression de page S2S

```
url = trackingTemplates.server.impressionEvent + "&" + queryString(trackers.impression.params)
```

#### Ajout au panier S2S pour une ligne de produits

```
url = trackingTemplates.server.addToCartEvent + "&" + queryString(trackers.addToCart.params)
```

Substitution de macros

* Remplacez {TS} par le horodatage actuel en millisecondes, {RURL} par la destination encodée en URL, et `{TCF}` par la chaîne TCF v2 actuelle de votre CMP avant le déclenchement.
* Pour les ajouts au panier, substituez également {QTY} par la quantité absolue de ce SKU dans le panier au moment du déclenchement (et non un delta), et {CONVERSION\_VALUE} par la valeur monétaire absolue de ces articles (quantité × prix unitaire, moins les remises appliquées).

{% hint style="info" %}

* Seuls `trackingTemplates.client.impressionPixelUrls` sont de vrais pixels (GIF 1×1).
  * `clickRedirect` est un point de terminaison de redirection 302.
  * `clickEvent` et `addToCartEvent` sont des balises d'événement qui renvoient 204 No Content.
    {% endhint %}

{% hint style="danger" %}
Ne déclenchez pas à la fois C2S et S2S pour le même événement logique (par exemple, n'envoyez pas à la fois un événement de clic C2S et une notification de clic S2S pour le même clic).
{% endhint %}

## Suivi – Client-to-Server (C2S)

Le suivi C2S est implémenté dans le navigateur à l'aide d'URLs composées. Préfixez `BASEURL` aux chemins dans `trackingTemplates.client` et ajoutez le `trackers.<slot>params` approprié (voir [Comment composer une URL de suivi](#how-to-compose-a-tracking-url)).

Seuls `client.impressionPixelUrls` sont des pixels (GIF 1×1). Les autres modèles clients ne sont pas des pixels :

* `client.clickRedirect`: point de terminaison de redirection 302. Epsilon enregistre le clic et redirige le navigateur vers le rurl décodé. Utilisez ceci comme cible de navigation du navigateur.
* `client.clickEvent`: la **balise d'événement** renvoie 204 No Content. Déclenchez en utilisant `navigator.sendBeacon` or `fetch({ keepalive: true })`. Ne pas afficher sous forme de `<img>`.
* `client.addToCartEvent`: **Balise d'événement** (renvoie 204). Utilise le même schéma de déclenchement que `clickEvent`.

### Étapes d'implémentation

1. Affichez le contenu de la page de marque renvoyé par l'API.
2. Après l'affichage, déclenchez les pixels d'impression dans le navigateur (toutes les entrées dans `trackingTemplates.client.impressionPixelUrls`, sous forme d'images 1×1).
3. Lorsqu'un utilisateur clique sur un nœud traçable, soit :\
   (a) redirigez via l'URL `client.clickRedirect` composée, soit\
   (b) déclenchez l'URL `client.clickEvent` composée en tant que balise d'événement et naviguez vous-même vers la destination.\
   Utilisez l'une ou l'autre option par clic, mais pas les deux.

### Pixel d'impression

Après l'affichage de la page de marque, déclenchez chaque chemin dans `trackingTemplates.client.impressionPixelUrls` sous forme d'image 1×1, (voir[ Comment composer une URL de suivi](#how-to-compose-a-tracking-url)).

```html
<img src="https://www.retailer.com/epsilon/tracking/v3/impression/pixel/brandpage_djog...?...&ts=1737485823910"
     width="1" height="1" style="display:none" />
```

Étapes :

1. Pour chaque chaîne dans `trackingTemplates.client.impressionPixelUrls`, préfixez votre `BASEURL` (par exemple, `https://www.retailer.com/epsilon`).
2. Ajoutez `&` + `queryString(trackers.impression.params)`, en remplaçant `{TS}` par le horodatage actuel en millisecondes et `{TCF}` par la chaîne de consentement actuelle de votre CMP.
3. Déclenchez sous forme de 1×1 `< img src="...">` dans le navigateur (ou équivalent).

### Suivi des clics

#### Option A : Redirection de clic (`client.clickRedirect`)

Redirigez l'utilisateur via l'URL composée. Epsilon enregistre le clic et répond avec un **HTTP 302** vers le champ décodé `rurl`. Cet endpoint est **GET uniquement**, et `rurl` est requis ;

#### Option B : Balise d'événement de clic (`client.clickEvent`)

Déclenchez comme une balise et effectuez la navigation vous-même. Accepte GET ou POST, renvoie 204 No Content. Ce n'est pas une image ; ne l'affichez pas comme`<img>`.

### Ajout au panier (C2S)

Déclenchez `trackingTemplates.client.addToCartEvent` comme une balise d'événement (et non un pixel) lorsque l'utilisateur ajoute un produit au panier. Accepte GET ou POST, renvoie 204 No Content.

{% hint style="info" %}
Ne combinez pas les ajouts au panier C2S et S2S pour une même action de panier.
{% endhint %}

## Suivi – Serveur à serveur (S2S)

Le suivi S2S est implémenté sur votre backend. Composez les URL de la même manière que le C2S : commencez à partir de la chaîne `trackingTemplates.server` appropriée, puis ajoutez `trackers.<slot>params`. Les modèles serveur sont déjà absolus — il n'y a pas de `BASEURL`à préfixer. (voir [Comment composer une URL de suivi](#how-to-compose-a-tracking-url)).

{% hint style="info" %}
Ne modifiez pas l'hôte ou le chemin du modèle serveur, et n'envoyez pas de requêtes S2S via votre reverse proxy.
{% endhint %}

### Quand utiliser le suivi S2S

* Votre architecture nécessite le déclenchement d'événements côté serveur.
* Vous avez besoin du suivi dans des environnements où les pixels côté client ne sont pas fiables.
* Vous souhaitez mélanger les stratégies - par ex. impressions C2S + ajout au panier S2S. Cela est pris en charge, mais ne déclenchez jamais à la fois le C2S et le S2S pour le même événement.

### Notification d'impression S2S

Une fois la page de marque affichée, votre serveur émet un **GET** ou **POST** vers l'URL d'impression composée : `trackingTemplates.server.impressionEvent` + `trackers.impression.params` (remplacez `{TS}` et `{TCF}` avant l'envoi).

### Notification de clic S2S

Composez : `trackingTemplates.server.clickEvent` + `trackers.click.params` (remplacez `{TS}`, {RURL}, et `{TCF}`), puis émettez un GET ou POST.

### Notification d'ajout au panier S2S

Composez : `trackingTemplates.server.addToCartEvent` + `trackers.addToCart.params` (remplacez `{TS}`, {QTY}, {CONVERSION\_VALUE}, et `{TCF}`), puis émettez un GET ou POST.

### Paramètres S2S

| Paramètre                                                                           | Source                                 | Notes                                                                                                                                                               |
| ----------------------------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `catalogId`, `sessionId`, `customerId`, `dtmId`, `placementId`, `lsid`, `utcOffset` | `trackingTemplates` chaînes de requête | Conservez ces valeurs telles quelles lors du déclenchement de la requête. Ne les supprimez pas et ne les modifiez pas.                                              |
| `modId`                                                                             | `trackers.<slot>.params`               | Identifiant du module de contenu ou de la ligne.                                                                                                                    |
| `ts`                                                                                | `trackers.<slot>.params`               | Remplacer `{TS}` par le horodatage actuel en millisecondes avant de déclencher la requête.                                                                          |
| `iabConsentString`                                                                  | `trackers.<slot>.params`               | Remplacer `{TCF}` par la chaîne de consentement TCF v2 actuelle de la CMP avant de déclencher la requête. Si une valeur est déjà fournie, utilisez-la telle quelle. |
| `rurl`                                                                              | `trackers.<slot>.params`               | Destination de redirection encodée en URL. Remplacer `{RURL}` si présent.                                                                                           |
| `productCode`, `sellerId`                                                           | `trackers.<slot>.params`               | Valeurs dérivées des nœuds de produit.                                                                                                                              |
| `qty`                                                                               | `trackers.addToCart.params`            | Remplacer `{QTY}` par la quantité absolue du SKU dans le panier au moment où la requête est déclenchée. N'utilisez pas la variation de quantité.                    |
| `conVal`                                                                            | `trackers.addToCart.params`            | Remplacer `{CONVERSION_VALUE}` par la valeur monétaire totale des articles (quantité × prix unitaire, moins les réductions applicables).                            |

## Référence des macros

| Symbole                   | Description                                                                                                                                                         | Trouvé dans                               | Remplacer par                                                                                  |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------------------- |
| `BASEURL` (votre préfixe) | L'URL de base de votre site avec le protocole et le chemin du proxy - à prépendre à chaque `trackingTemplates.client.*` chemin.                                     | Suivi C2S                                 | `https://www.retailer.com/epsilon`                                                             |
| `{TS}`                    | Horodatage d'invalidation du cache (mensecondes)                                                                                                                    | `trackers.<slot>.params`                  | `1737485823910`                                                                                |
| `{RURL}`                  | Destination de redirection encodée dans l'URL                                                                                                                       | `trackers.<slot>.params.rurl`             | `https%3A%2F%2Fwww.retailer.com%2Fprodukt%2F9221200653341`                                     |
| `{TCF}`                   | Espace réservé pour la chaîne de consentement IAB TCF v2. Présent lorsque `regs.consent` a été omis dans la requête.                                                | `trackers.<slot>.params.iabConsentString` | Chaîne TC actuelle provenant de votre CMP, par exemple via `__tcfapi` `getTCData` → `tcString` |
| `{QTY}`                   | Quantité absolue de cette UGS dans le panier au moment du déclenchement (pas un delta ; par exemple, si l'acheteur en avait 1 et en ajoute une autre, envoyez `2`). | `trackers.addToCart.params.qty`           | `2`                                                                                            |
| `{CONVERSION_VALUE}`      | Valeur monétaire absolue de ces articles : quantité × prix unitaire, moins les réductions appliquées.                                                               | `trackers.addToCart.params.conVal`        | `49.99`                                                                                        |
| `{RURL_KID}`              | ID de la clé de signature de redirection. Présent dans `trackers.click.redirectParams` lorsque la signature de redirection de la plateforme est activée.            | `trackers.click.redirectParams.rurlKid`   | ID de la clé de signature retourné par le point de terminaison de signature par lot            |
| `{RURL_SIG}`              | Signature de redirection. Présente dans `trackers.click.redirectParams` lorsque la signature de redirection de la plateforme est activée.                           | `trackers.click.redirectParams.rurlSig`   | Signature Ed25519 (base64url) retournée par le point de terminaison de signature par lot       |

### Référence sur l'encodage URL

Lors de l'encodage de `{RURL}`, utilisez l'encodage en pourcentage standard :

| Caractère | Encoder sous forme de |
| --------- | --------------------- |
| `:`       | `%3A`                 |
| `/`       | `%2F`                 |
| `?`       | `%3F`                 |
| `=`       | `%3D`                 |
| `&`       | `%26`                 |

### redirectParams et signature de redirection

Lorsque la signature de redirection de la plateforme est activée, `trackers.click` peut inclure un objet `redirectParams`aux côtés de `params`. Les clés dans `7`sont fusionnées uniquement dans les URL `client.clickRedirect` — pas dans `clickEvent`ni dans aucune URL de serveur.

Deux cas :

**Destinations de liens intégrées** (URL intégrée dans `params.rurl`) : la plateforme signe la redirection au moment de la diffusion et émet des valeurs littérales `rurlKid`et `rurlSig`dans `redirectParams`. Ajoutez-les telles quelles à l'URL `clickRedirect` .

**Redirections contrôlées par le détaillant** (`params.rurl` est {RURL}) : `redirectParams` contient les macros {RURL\_KID} et {RURL\_SIG}. Appelez le point de terminaison de signature par lot (`redirectSigning.url` depuis la réponse) pour obtenir l'ID de la clé et la signature pour votre URL de destination, puis substituez-les avant de les ajouter.

L'objet de niveau supérieur `redirectSigning`, lorsqu'il est présent, fournit l'URL du point de terminaison de `POST /ads/v3/redirect/sign` par lot et la limite du lot `maxUrls`. Contactez Epsilon pour confirmer si la signature de redirection est activée pour votre intégration.

### Composition de clickRedirect avec redirectParams :

```
BASEURL + trackingTemplates.client.clickRedirect + "&" + queryString(trackers.click.params) + "&" + queryString(trackers.click.redirectParams)
```

<br>

## Guide de style

Avant d'activer les pages de marque sur votre site, nous devons capturer l'identité visuelle de votre site. Remplissez le tableau ci-dessous avec vos valeurs de conception. Notre équipe l'utilisera pour configurer l'expérience d'aperçu de la page de marque.

#### Logo

| Champ       | Description                            | Votre valeur |
| ----------- | -------------------------------------- | ------------ |
| URL du logo | URL du logo de votre site (SVG ou PNG) |              |

#### Couleurs

| Champ                           | Description                                                         | Votre valeur |
| ------------------------------- | ------------------------------------------------------------------- | ------------ |
| Couleur principale              | Couleur principale de la marque (hex)                               |              |
| Couleur de fond                 | Couleur de fond de la page (hex)                                    |              |
| Couleur de surface              | Couleur de fond des cartes/sections (hex)                           |              |
| Couleur du texte principal      | Couleur du texte principal (hex)                                    |              |
| Couleur du texte secondaire     | Couleur du texte atténué (hex)                                      |              |
| Texte sur la couleur principale | Couleur du texte utilisée sur les fonds de couleur principale (hex) |              |
| Couleur de la bordure           | Couleur de bordure par défaut (hex)                                 |              |

#### Typographie

| Champ                                     | Description                                                         | Votre valeur |
| ----------------------------------------- | ------------------------------------------------------------------- | ------------ |
| Famille de polices pour les titres        | Police utilisée pour les titres (ex. « Google Sans, sans-serif »)   |              |
| Famille de polices pour le corps de texte | Police utilisée pour le corps de texte (ex. « Roboto, sans-serif ») |              |
| Taille de police de base                  | Taille de police par défaut du corps de texte (ex. 16px)            |              |

#### Boutons

| Champ                                | Description                                                           | Votre valeur |
| ------------------------------------ | --------------------------------------------------------------------- | ------------ |
| Arrière-plan du bouton principal     | Couleur d'arrière-plan des boutons principaux                         |              |
| Couleur du texte du bouton principal | Couleur du texte des boutons principaux                               |              |
| Rayon de bordure du bouton principal | Arrondi des coins (ex. 8px)                                           |              |
| Style du bouton secondaire           | Décrivez l'apparence des boutons secondaires (contour, fantôme, etc.) |              |

## Exigences du contenu du module

Les pages de marque sont composées de modules de contenu. Pour chaque type de module, fournissez les contraintes de contenu requises par votre site. Notre équipe les utilisera pour configurer les règles de validation des modèles.

### Modules IMAGE

| Exigence                               | Description                                                             | Votre valeur |
| -------------------------------------- | ----------------------------------------------------------------------- | ------------ |
| Largeur min.                           | Largeur minimale de l'image en pixels (ex. 1920)                        |              |
| Hauteur min.                           | Hauteur minimale de l'image en pixels (ex. 500)                         |              |
| Taille max. du fichier                 | Taille maximale du fichier en Mo (ex. 10). Doit être inférieure à 4 Mo. |              |
| Formats acceptés                       | Formats d'image acceptés (ex. jpg, png, gif, svg)                       |              |
| Caractères max. de la légende          | Nombre max. de caractères pour la légende de l'image, le cas échéant    |              |
| `alt`Caractère facultatif de la balise | Si `alt` est requis sur les images.                                     |              |

### Modules TEXT

| Exigence                              | Description                                                                                                                                                                                                                                                                                      | Votre valeur |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------ |
| Variante                              | « headline », « tagline », « body » ou « lines ». Détermine le style dans lequel le texte est affiché.                                                                                                                                                                                           |              |
| Alignement                            | « left », « center » ou « right ». Détermine l'alignement horizontal du texte.                                                                                                                                                                                                                   |              |
| Configuration des « Lines »           | <p>Configuration pour la configuration du texte multiligne (lorsque variant = lines). Pour chaque ligne de texte, fournissez les éléments suivants :<br><br>- nom du champ de texte<br>- « required » ou « allowed » ?<br>- si ceci est destiné à être un lien hypertexte vers une autre URL</p> |              |
| Caractères max. du titre              | Nombre max. de caractères pour le texte du titre                                                                                                                                                                                                                                                 |              |
| Caractères max. de la description     | Nombre max. de caractères pour le texte de description                                                                                                                                                                                                                                           |              |
| Caractères max. du corps/pied de page | Nombre max. de caractères pour le texte du corps ou du pied de page                                                                                                                                                                                                                              |              |
| Bouton CTA                            | Obligatoire, facultatif ou non nécessaire ?                                                                                                                                                                                                                                                      |              |
| Caractères max. du texte CTA          | Nombre max. de caractères pour le libellé du bouton CTA                                                                                                                                                                                                                                          |              |

### Modules PRODUCT\_GRID

| Exigence                                                    | Description                                                    | Votre valeur |
| ----------------------------------------------------------- | -------------------------------------------------------------- | ------------ |
| Produits min.                                               | Nombre minimum de produits à afficher (ex. 4)                  |              |
| Produits max.                                               | Nombre maximum de produits à afficher (ex. 12)                 |              |
| Titre de la section                                         | Obligatoire ou facultatif ?                                    |              |
| Caractères max. du titre de la section                      | Nombre max. de caractères pour le titre de la section          |              |
| Description de section                                      | Obligatoire ou facultatif ?                                    |              |
| Nombre maximal de caractères pour la description de section | Nombre maximal de caractères pour la description de la section |              |
| Bouton CTA                                                  | Obligatoire, facultatif ou non nécessaire ?                    |              |

### Modules IMAGE\_GALLERY

Le module Galerie d'images hérite des mêmes propriétés de configuration que le module IMAGE. De plus, il accepte également les propriétés spécifiques à la galerie suivantes :

| Exigence                                   | Description                                                                                                                                                                                                                                                           | Votre valeur |
| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ |
| Nombre minimal d'images                    | Nombre minimal d'images dans la galerie (ex. 2)                                                                                                                                                                                                                       |              |
| Nombre maximal d'images                    | Nombre maximal d'images dans la galerie (ex. 4)                                                                                                                                                                                                                       |              |
| Titre de la section                        | Indique si le texte du titre de la section est obligatoire ou facultatif.                                                                                                                                                                                             |              |
| Description de section                     | Indique si le texte de la description de la section est obligatoire ou facultatif.                                                                                                                                                                                    |              |
| `alt` Caractère facultatif de la balise    | Si `alt` est requis sur les images.                                                                                                                                                                                                                                   |              |
| Caractère facultatif de l'appel à l'action | Indique si le bouton ou le lien d'appel à l'action est obligatoire, autorisé ou désactivé.                                                                                                                                                                            |              |
| Lignes de texte supplémentaires            | <p>Pour chaque texte supplémentaire devant être associé à chaque image de la galerie d'images, fournissez ce qui suit :<br><br>- nom du champ de texte<br>- « required » ou « allowed » ?<br>- si le texte doit fonctionner comme un hyperlien vers une autre URL</p> |              |

### Modules SPLIT\_LAYOUT

Le module Split Layout permet d'afficher deux modules côte à côte. Actuellement, seuls les modules Texte et Image sont pris en charge. En plus des paramètres de configuration individuels pour les modules Texte et Image (décrits dans les sections ci-dessus), les propriétés supplémentaires suivantes sont requises :

| Exigence                      | Description                              | Votre valeur |
| ----------------------------- | ---------------------------------------- | ------------ |
| Proportion de la mise en page | Ratio de colonne (50:50, 33:67 ou 67:33) |              |

## Identité et confidentialité

### Identifiants acceptables

* Session ID - identifiant de session anonyme (non PII)
* Customer ID - identifiant client du détaillant (non PII, ex. hachage d'identifiant de fidélité)

{% hint style="danger" %}
Ne transmettez pas d'adresses e-mail hachées, de numéros de téléphone ou toute PII dans un paramètre ou une URL.
{% endhint %}

### Exigences de confidentialité

Les détaillants doivent :

* Divulguer le suivi de mesure dans leur politique de confidentialité
* Fournir des liens de désinscription :
  * NAI : <https://optout.networkadvertising.org/>
  * DAA : <https://optout.aboutads.info/>

### RGPD / Consentement

Transmettez l'objet `regs`sur `POST /ads/v3/brand-pages`:

* `regs.gdpr`: `1` lorsque la demande est soumise au RGPD (traitement UE/EEE/Royaume-Uni selon votre politique) ; `0`sinon.
* `regs.consent`: Lorsque `gdpr` is `1`, transmettez la chaîne de consentement TCF v2 actuelle de votre CMP (la même valeur que vous présenteriez à d'autres partenaires publicitaires). N'inventez pas et ne codez pas en dur une chaîne — utilisez ce à quoi le navigateur / l'application de l'utilisateur a consenti.
* `iabConsentString`: Ceci apparaît dans les paramètres de chaque emplacement de tracker, pas dans `trackingTemplates`. Lorsque `regs.consent` a été fourni, la valeur est la chaîne TC littérale et aucune autre action n'est requise.
* Lorsque `regs.consent` a été omis, la valeur est la macro `{TCF}`— substituez la chaîne TCF v2 actuelle de votre CMP au moment du déclenchement avant d'envoyer toute demande de suivi.


---

# 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/brand-pages/brand-page-retailer-integration-guide/tracking-attribution.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.
