Page cover image

On-Premise CAID

Le Cookie CAID est un élément crucial dans le suivi des visiteurs sur votre site.

Utilisé par Commanders Act, il permet d'identifier et de suivre le parcours d'un visiteur à travers différentes sessions de navigation. Sa construction est essentielle, surtout dans le contexte des restrictions imposées par les politiques de confidentialité et de sécurité telles que l'ITP (Intelligent Tracking Prevention). Sa construction par vos soins est obligatoire dans le cas de tracking dit « First Party » réalisé par CNAME ou A-Record mais n’est pas nécessaire si vous passez par proxy. Vous trouverez dans cette documentation l’ensemble des éléments nécessaire à sa construction.

  1. Nom du Cookie :

  • Nom : "CAID" (en majuscules).

  1. Recommandation en matière de structure du Cookie :

  • Contient 20 caractères numériques aléatoires.

  • Précédés de l'année de création du cookie.

  1. Durée de Vie :

  • Date de péremption : 13 mois après la date de création par défaut (GDPR).

Vous pouvez être amené à ajuster la durée des cookies en fonction des restrictions légales de la région où le site est visité.

  1. Création et Dépôt :

  • Créé par le serveur de l'entreprise.

  • Déposé sur le domaine principal et tous les sous-domaines associés. (.mondomaine.com)

  1. Accessibility :

  • Secure = true

  • httpOnly = true

Ex. CAID = 2024013114175312331154022

Exemple 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() + 13 * 30 * 24 * 60 * 60; // 13 mois
$path = "/"; // Disponible sur tout le domaine
 
// Utilisation d'un tableau pour les options du cookie 
$cookie_options = [
    "expires" => $expiration,
    "path" => $path,
    "secure" => true, // Activation du flag secure
];
 
setcookie($cookie_name, $cookie_value, $cookie_options);

?>

Exemple Node.js (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: 13 * 30 * 24 * 60 * 60 * 1000, // 13 mois en millisecondes
      path: '/’, 
      httpOnly: true // Sécurité renforcée 
   }); 
   res.send('Cookie set'); }); 

app.listen(3000, () => { 
   console.log('Server is running on port 3000’); 
});

Exemple 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("Setting cookie") 
	expire_date = datetime.now() + timedelta(days=13*30) 
	year = datetime.now().year 
	random_numbers = generate_random_numbers() 
	resp.set_cookie('CAID', f'{year}{random_numbers}', expires=expire_date) 
	return resp 
if __name__ == "__main__": 
	app.run(port=5000)

Exemple 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 + (13 * 30 * 24 * 60 * 60), path: '/' }) "Cookie set" 
end

Dernière mise à jour