> For the complete documentation index, see [llms.txt](https://doc.commandersact.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.commandersact.com/fr/configurer/administration/domain-management/cookie-caid.md).

# Cookie CAID

## Introduction

Le cookie CAID : votre pass VIP pour un suivi de premier ordre des visiteurs sur votre site web !\
\
🌐 Propulsé par Commanders Act, le cookie CAID est votre solution de référence pour identifier et tracer le Journey d'un visiteur à travers différentes sessions de navigation.

Sa construction est essentielle, notamment dans le contexte des restrictions imposées par les politiques de confidentialité et de sécurité telles que l'ITP (Intelligent Tracking Prevention).

{% hint style="info" %}
Le CAID est automatiquement créé/géré par les serveurs Commanders Act si vous choisissez la méthode proxy (WAF ou proxy on-premise)
{% endhint %}

**Vous devez le créer vous-même, sur votre propre serveur, uniquement dans le cas du suivi "First Party" via CNAME ou A-Record**mais ce n'est pas nécessaire si vous utilisez la méthode proxy (CloudFlare, etc.). Dans cette documentation, vous trouverez toutes les informations nécessaires pour le créer.

Prêt à faire passer votre suivi au niveau supérieur et à relever les défis ?\
Plongez-y, et faisons de votre cookie CAID On-Premise le super-héros de votre site web ! 🚀\\

## Comment configurer votre cookie CAID ?

Lorsque vous créez votre cookie CAID, respectez les exigences suivantes :

### Nom du cookie

"**CAID**" (en majuscules)

### Recommandation de structure du cookie

:heavy\_check\_mark: Contient 20 caractères aléatoires

:heavy\_check\_mark: Précédé de l'année de création du cookie

<figure><img src="/files/4cc6dc95c87d09a14b6d7d348036e6d293c88d7b" alt=""><figcaption></figcaption></figure>

:tada: Disponible sur l'ensemble du domaine et de ses sous-domaines.\\

### Durée de vie

:heavy\_check\_mark:Date d'expiration du cookie : **12 mois** après la date de création.

### Création et dépôt

:heavy\_check\_mark:Créé par le serveur de l'entreprise (On-Premise).\
:heavy\_check\_mark:Déposé sur le domaine principal et tous les sous-domaines associés. (.mydomain.com)

## Extraits de code

Voici quelques exemples de code pour créer votre cookie CAID On-Premise

{% tabs %}
{% tab title="PHP" %}

```php
<?php
$cookie_name = "CAID";
$year = date("Y");
$random_numbers = substr(str_shuffle(str_repeat('0123456789', 20)), 0, 20);
$cookie_value = $year . $random_numbers;
$expiration = time() + (12 * 30 * 24 * 60 * 60); // 12 mois
$path = "/"; // Disponible sur l'ensemble du domaine
setcookie($cookie_name, $cookie_value, [
    'expires' => $expiration,
    'path' => $path,
    'httponly' => true // Sécurité renforcée
]);
?>
```

{% endtab %}

{% tab title="Node.js" %}

```javascript
// Node.js avec le package "express"
const express = require('express');
const app = express();

function generateRandomNumbers() {
    return Array.from({ length: 20 }, () => Math.floor(Math.random() * 10)).join('');
}

app.get('/', (req, res) => {
    const year = new Date().getFullYear();
    const randomNumbers = generateRandomNumbers();

    res.cookie('CAID', year + randomNumbers, {
        maxAge: 12 * 30 * 24 * 60 * 60 * 1000, // 12 mois en millisecondes
        path: '/',
        httpOnly: true // Sécurité renforcée
    });

    res.send('Cookie défini');
});

app.listen(3000, () => {
    console.log('Le serveur fonctionne sur le port 3000');
});
```

{% endtab %}

{% tab title="Python" %}

```python
// Python avec "Flask"
from flask import Flask, make_response
from datetime import datetime, timedelta
import random

app = Flask(__name__)

def generate_random_numbers():
    return ''.join([str(random.randint(0, 9)) for _ in range(20)])

@app.route('/')
def set_cookie():
    resp = make_response("Définition du cookie")
    expire_date = datetime.now() + timedelta(days=12*30)
    year = datetime.now().year
    random_numbers = generate_random_numbers()
    resp.set_cookie('CAID', f'{year}{random_numbers}', expires=expire_date, httponly=True) # Sécurité renforcée
    return resp

if __name__ == "__main__":
    app.run(port=5000)
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require 'sinatra'
require 'securerandom'

get '/' do
    random_numbers = SecureRandom.random_number(10**20).to_s.rjust(20, '0')
    year = Time.now.year
    response.set_cookie('CAID', {
        value: "#{year}#{random_numbers}",
        expires: Time.now + (12 * 30 * 24 * 60 * 60),
        path: '/',
        httponly: true # Sécurité renforcée
    })
    "Cookie défini"
end
```

{% endtab %}
{% endtabs %}


---

# 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://doc.commandersact.com/fr/configurer/administration/domain-management/cookie-caid.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.
