Contourner ITP de Safari
Option 2 : Cookie Restore

Option 2 : Cookie Restore

Fonctionnement

La solution Cookie Restore d’Addingwell passe par la mise en place d’un “Master Cookie”, défini par le serveur de votre domaine de navigation, et unique pour chaque utilisateur. (Plus de détails sur ce "Master Cookie" dans le paragraphe Mise en place détaillée).

Durant les 7 premiers jours

Lors d’une visite sur votre domaine de navigation lors des 7 premiers jours, les cookies Marketing sont bien présents sur le navigateur de votre utilisateur. Il n’y a donc pas de nécessité de restaurer ces cookies, qui sont bien définis. Le "Master Cookie" est lui déposé par le serveur de votre domaine de navigation, et donc bien présent pour une durée de 13 mois. Côté Addingwell, le Master Cookie défini pour cet utilisateur par votre serveur va être associé aux cookies Marketing et stocké dans une base de données. Cette association “Master Cookie + cookies Marketing” est conservée pour une utilisation ultérieure.

Cookies Marketing avant 7 jours

Au-delà de 7 jours

Au-delà de 7 jours, votre utilisateur se rend à nouveau sur votre site. Les cookies Marketing ne sont plus présents sur son navigateur. Le Master Cookie est en revanche lui toujours présent, puisque défini par votre serveur de navigation, et donc présent sur une durée de 13 mois. La base de données Addingwell est alors interrogée, et l’association “Master Cookie + cookies Marketing” retrouvée. La solution Cookie Restore se charge alors de repousser les cookies Marketing liés au "Master Cookie" de l’utilisateur sur son navigateur !

Cookies Marketing après 7 jours

Pour cette option, il est nécessaire de disposer d'un cookie first-party "nouvelle génération" unique par utilisateur. Ce cookie doit être déposé côté serveur par le même serveur qui héberge l'ensemble du site pour être considéré comme valide.

Mise en place du "Master Cookie"

Spécifications techniques

Pour être conforme, ce cookie doit respecter les spécifications suivantes :

  • Durée de vie : La durée de vie du cookie doit être suffisamment importante. Elle doit, de préférence, être plus longue que la durée de vie des cookies marketing. Cependant, elle ne doit pas éxcéder 13 mois pour être conforme avec le règlement Général sur la protection des données (RGPD).
  • Accessibilité : Le cookie doit être accessible sur tout le domaine du site et tous ses sous-domaines. Exemple: le cookie doit être déposé sur .mysite.com plutôt que mysite.com
  • Origine: Le cookie doit être défini par le serveur du site. Il ne doit pas être défini par du code Javascript executé côté client.
  • Persistance: Le cookie doit être disponible sur toutes les pages du site.
  • Stabilité: La valeur du cookie doit être stable et ne doit pas changer dans le temps.
  • Unicité: La valeur du cookie doit être unique par visiteur.

Exemple de "Master Cookie"

Ci-dessous, un exemple de cookie déposé par le serveur mysite.com pour une durée de vie de 13 mois. Ce dernier est accessible sur toutes les pages du site et sur tous ces sous-domaine. Le nom de ce cookie est _aw_master_id et a pour valeur un identifiant unique de visiteur 646035e9-503e-412e-8b99-5ee47560f882.

NameValueDomainPathExpires / Max-AgeHttpOnlySecureSameSite
_aw_master_id646035e9-503e-412e-8b99-5ee47560f882.mysite.com/2025-09-02T13:33:00.341ZtruetrueLax

Aide à l'implémentation

Pour simplifier l'installation de ce cookie, vous pouvez utilisez les exemples suivants en fonction du language serveur ou du CMS (Shopify, Wordpress, ...).

Si votre site n'est pas compatible avec le liste d'exemples ci-dessous, veuillez contacter le support Addingwell.

Voici un exemple de code pour créer ou mettre à jour un cookie qui respecte les spécifications techniques sur un serveur en PHP

Cookie Restore code
function setMasterCookie() {
    $cookieName = '_aw_master_id';
    $cookieLifetime = time() + (60 * 60 * 24 * 30 * 13);
    $cookieDomain = getMainDomain($_SERVER['HTTP_HOST']);
 
    if (!isset($_COOKIE[$cookieName])) {
        $cookieValue = $this->generateUUID();
    } else {
        $cookieValue = $_COOKIE[$cookieName];
    }
    setcookie(
        $cookieName,
        $cookieValue,
        $cookieLifetime,
        '/',
        $cookieDomain,
        true,
        true
    );
}
 
function generateUUID() {
    return sprintf(
        '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
        mt_rand(0, 0xFFFF), mt_rand(0, 0xFFFF),
        mt_rand(0, 0xFFFF),
        mt_rand(0, 0x0FFF) | 0x4000,
        mt_rand(0, 0x3FFF) | 0x8000,
        mt_rand(0, 0xFFFF), mt_rand(0, 0xFFFF), mt_rand(0, 0xFFFF)
    );
}
 
function getMainDomain($url) {
    $composedTlds = [
        'co.uk', 'gov.uk', 'ac.uk', 'org.uk', 'net.uk', 'sch.uk', 'nhs.uk', 'police.uk',
        'com.au', 'net.au', 'org.au', 'edu.au', 'gov.au', 'asn.au', 'id.au',
        'co.jp', 'ac.jp', 'ne.jp', 'or.jp', 'go.jp', 'ed.jp', 'ad.jp', 'gr.jp',
        'com.cn', 'net.cn', 'gov.cn', 'org.cn', 'edu.cn', 'mil.cn', 'ac.cn',
        'com.br', 'net.br', 'org.br', 'gov.br', 'edu.br', 'mil.br', 'art.br', 'coop.br',
        'co.in', 'net.in', 'org.in', 'gov.in', 'ac.in', 'res.in', 'edu.in', 'mil.in', 'nic.in',
        'gc.ca', 'gov.ca',
        'com.de', 'net.de', 'org.de',
        'gov.it', 'edu.it',
        'asso.fr', 'nom.fr', 'prd.fr', 'presse.fr', 'tm.fr', 'com.fr', 'gouv.fr',
        'com.es', 'nom.es', 'org.es', 'gob.es', 'edu.es',
        'co.za', 'net.za', 'gov.za', 'org.za', 'edu.za',
        'com.mx', 'net.mx', 'org.mx', 'edu.mx', 'gob.mx',
        'com.ru', 'net.ru', 'org.ru', 'edu.ru', 'gov.ru',
        'co.kr', 'ne.kr', 'or.kr', 're.kr', 'pe.kr', 'go.kr', 'mil.kr',
        'com.sg', 'net.sg', 'org.sg', 'edu.sg', 'gov.sg', 'per.sg',
        'com.my', 'net.my', 'org.my', 'gov.my', 'edu.my', 'mil.my',
        'com.hk', 'net.hk', 'org.hk', 'gov.hk', 'edu.hk', 'idv.hk',
        'com.ar', 'net.ar', 'org.ar', 'gov.ar', 'edu.ar', 'int.ar',
        'com.tr', 'net.tr', 'org.tr', 'gov.tr', 'edu.tr', 'mil.tr',
    ];
 
    // Remove protocol if present
    $domain = preg_replace('/^https?:\/\//', '', $url);
    // Remove www. if present
    $domain = preg_replace('/^www\./', '', $domain);
    // Split the domain into parts
    $parts = explode('.', $domain);
 
    // Check against composed TLDs
    for ($i = 0; $i < count($parts) - 1; $i++) {
        $possibleTld = implode('.', array_slice($parts, $i));
        if (in_array($possibleTld, $composedTlds)) {
            $main_domain = implode('.', array_slice($parts, $i - 1));
            return $main_domain;
        }
    }
 
    // Default to last two parts if no composed TLD matches
    return implode('.', array_slice($parts, -2));
}
 
setMasterCookie();

Un cookie _aw_master_id devrait apparaître au premier chargement de la page sans aucune autre action sur la page. La durée de vie de ce cookie est de 13 mois (390 jours).

Pour la prochaine étape, veuillez spécifier _aw_master_id comme nom de cookie.

Activation de Cookie Restore

Depuis votre espace de travail Addingwell, cliquez sur Cookie monitoring dans le menu de gauche, puis sur Cookie Restore.

Lien vers Cookie Restore dans Addingwell

Renseignez les champs du formulaire

Formulaire rempli de Cookie Restore

Domaine cible

Sélectionnez votre domaine de tracking sur lequel la restoration de cookie se fera

Domaine à tester

Renseignez le sous-domaine ou domaine du site sur lequel vous voulez tester le cookie.

Nom du cookie

Renseignez le nom du "Master Cookie"

Activer le cookie restore

Une fois que tout est renseigné vous pouvez cliquez sur Verify

La vérification de votre "Master Cookie" se fait de manière automatique et peut prendre quelques minutes.

Sélectionnez la zone si ce n'est pas déjà fait, puis cliquez sur "Activer".

Activer Cookie Restore

Vous avez désormais terminé l'implémentation de la fonctionnalité "Cookie Restore". Vous pouvez passer à l'étape suivante : Vérifier les résultats.