> ## Documentation Index
> Fetch the complete documentation index at: https://docs.taap.it/llms.txt
> Use this file to discover all available pages before exploring further.

# Tracking ID

> Qu'est-ce que le ta_tid, comment est-il généré et comment le récupérer dans votre application

Le **Tracking ID** (`ta_tid`) est l'identifiant central qui relie un clic sur un deeplink Taapit à une conversion future (lead ou vente).

## Prérequis

Pour que le tracking de conversion fonctionne, vous avez uniquement besoin de deux choses :

<Steps>
  <Step title="Créer un deeplink Taapit">
    Dans votre dashboard Taapit, créez un deeplink pointant vers votre site ou landing page (ex. `taap.it/ma-campagne` → `https://votresite.com/landing`).

    Assurez-vous que le **Conversion Tracking** est activé sur le lien.
  </Step>

  <Step title="Installer le SDK Taapit sur votre site">
    Ajoutez soit la **balise script** soit le **package NPM** à votre site web ou application. C'est ce qui lit le `ta_tid` depuis l'URL et le stocke automatiquement dans un cookie.

    **Option A — Balise script** (la plus simple, sans étape de build) :

    ```html theme={null}
    <script src="https://taap.it/api/sdk" data-publishable-key="pk_..."></script>
    ```

    **Option B — Package NPM** (React / Next.js / Vue...) :

    ```bash theme={null}
    npm install taapit-sdk
    ```

    C'est tout. Une fois le SDK en place et l'utilisateur arrivé via un lien Taapit, le `ta_tid` est capturé et persisté automatiquement — aucun code supplémentaire n'est nécessaire pour cette partie.
  </Step>
</Steps>

<Info>
  Le `ta_tid` est **uniquement généré lorsqu'un utilisateur clique sur un deeplink Taapit**. Si un utilisateur navigue directement vers votre site, il n'y a pas de tracking ID et aucune conversion ne sera attribuée.
</Info>

***

## Qu'est-ce que c'est ?

Lorsqu'un utilisateur clique sur un deeplink Taapit (ex. `taap.it/abc`), notre système génère un `ta_tid` unique et l'ajoute à l'URL de destination :

```
https://votresite.com/landing?ta_tid=rLnWe1uz9t282v7g
```

Cet identifiant est ensuite utilisé pour attribuer tout événement lead ou sale ultérieur au clic d'origine — avec toutes ses métadonnées : paramètres UTM, géolocalisation, type d'appareil, identifiant du lien et workspace.

## Comment est-il généré ?

Le tracking ID est une **chaîne hexadécimale de 24 caractères** générée côté serveur via la cryptographie Node.js :

```ts theme={null}
const trackingId = crypto.randomBytes(12).toString("hex");
// Exemple : "rLnWe1uz9t282v7g4a3b1c2d"
```

Il ne contient **aucune donnée personnelle** — il est purement aléatoire et ne peut pas être reconstitué.

## Comment est-il persisté ?

Une fois l'utilisateur arrivé sur votre site, le SDK Taapit effectue automatiquement :

1. La lecture du `ta_tid` depuis le paramètre d'URL
2. Son stockage dans un **cookie first-party** sur votre domaine

```
Nom du cookie :   ta_tid
Durée :           365 jours
Portée :          Domaine racine (ex. .votresite.com)
```

Comme il s'agit d'un cookie first-party défini sur votre propre domaine, il **n'est pas bloqué** par les navigateurs ni par les extensions de confidentialité.

## Comment le récupérer

### Depuis le SDK Taapit (recommandé)

Si vous utilisez le script ou le package NPM Taapit, le SDK gère tout automatiquement. Vous pouvez accéder au tracking ID via :

```js theme={null}
// Vanilla JS / Script tag
const trackingId = window.taapit?.getTrackingId();
```

```ts theme={null}
// Package NPM — browser
import { getTrackingId } from "taapit-sdk/browser";

const trackingId = getTrackingId();
```

### Depuis le cookie manuellement

Si vous n'utilisez pas le SDK, vous pouvez lire le cookie directement :

```js theme={null}
function getTrackingId() {
  const match = document.cookie.match(/(?:^|;\s*)ta_tid=([^;]+)/);
  return match ? match[1] : null;
}
```

### Depuis le paramètre URL (au chargement de la page)

```js theme={null}
const params = new URLSearchParams(window.location.search);
const trackingId = params.get("ta_tid");
```

<Info>
  Si le paramètre URL et le cookie sont tous les deux présents, le paramètre URL
  a priorité et écrase le cookie — garantissant que le clic le plus récent est
  toujours attribué.
</Info>

## Le transmettre à votre backend

Une fois récupéré côté client, transmettez le `ta_tid` à votre backend lors d'une conversion (ex. soumission de formulaire ou paiement) :

```ts theme={null}
// Exemple : envoi du ta_tid avec un formulaire d'inscription
await fetch("/api/signup", {
  method: "POST",
  body: JSON.stringify({
    email: userEmail,
    trackingId: getTrackingId(), // depuis le SDK ou le cookie
  }),
});
```

Votre backend le transmet ensuite à Taapit lors de l'appel à `/api/events/lead` ou `/api/events/sale`.

## Propriétés

| Propriété                             | Valeur                                   |
| ------------------------------------- | ---------------------------------------- |
| **Nom du paramètre**                  | `ta_tid`                                 |
| **Nom du cookie**                     | `ta_tid`                                 |
| **Format**                            | Chaîne hexadécimale, 24 caractères       |
| **Généré par**                        | `crypto.randomBytes(12).toString("hex")` |
| **Durée du cookie**                   | 365 jours                                |
| **Contient des données personnelles** | Non                                      |
| **First-party**                       | Oui — défini sur votre domaine           |

## Étapes suivantes

<CardGroup cols={2}>
  <Card title="Tracker des leads" icon="user-plus" href="/fr/conversions/manual/client-side">
    Utilisez le ta\_tid pour suivre les conversions de type lead.
  </Card>

  <Card title="Tracker des ventes" icon="credit-card" href="/fr/conversions/manual/server-side">
    Utilisez le ta\_tid pour suivre les conversions de type sale côté serveur.
  </Card>
</CardGroup>
