Nouveau Vos traductions parlent-elles aussi bien aux IA que l'original ? · Découvrir
Livada.io
Documentation

Livada Cookies

v1.10.7 GPL v2+

Bandeau de consentement cookies CNIL/RGPD pour WordPress. 11 Ko gzippé. Google Consent Mode v2 intégré. Logs de preuve. Zéro dark pattern.

1 Installation

Prérequis

WordPress
6.0+
PHP
7.4+
MySQL
5.7+ / MariaDB 10.3+

Bonne pratique avant installation

Comme pour toute extension WordPress, nous recommandons de sauvegarder votre site avant l'installation (base de données + fichiers). Plugins de sauvegarde gratuits fiables : UpdraftPlus, All-in-One WP Migration, Duplicator.

Installation manuelle (ZIP)

  1. 1 Téléchargez livada-cookies.zip depuis votre espace client Lemon Squeezy.
  2. 2 Dans WordPress : Extensions → Ajouter une extension → Téléverser une extension.
  3. 3 Sélectionnez le ZIP → cliquez Installer maintenant → Activer l'extension.
  4. 4 Lors de l'activation, le plugin crée automatiquement la table wp_livada_consent_logs en BDD.
  5. 5 Rendez-vous dans Réglages → Livada Cookies → Licence et entrez votre clé de licence.
⚠️

Important — injection avant GA4 / Site Kit

Livada Cookies s'injecte automatiquement sur wp_head avec priorité 1 (avant tous les autres plugins). Aucune configuration manuelle nécessaire pour que Google Consent Mode v2 précède GA4.

2 Configuration

Tous les réglages sont dans Réglages → Livada Cookies. 4 onglets :

Général

Texte du bandeau, texte du bouton Accepter/Refuser, lien vers la Politique de confidentialité. Position du bandeau (bas, haut, modale).

Catégories

Activer/désactiver les 4 catégories (Nécessaires, Statistiques, Marketing, Préférences). Labels et descriptions personnalisables.

Apparence

Color pickers pour fond, texte, couleur d'accent. Coins arrondis. Mode clair/sombre auto (respecte prefers-color-scheme).

Avancé

Durée de rétention des logs (défaut 13 mois). Export CSV des consentements. Purge manuelle. Désactivation du bandeau sur certaines pages.

3 4 catégories de consentement

Nécessaires

necessary Obligatoire

Toujours actifs. Session WordPress, panier WooCommerce, cookie CSRF. Non soumis au consentement (légalement exemptés).

Statistiques

statistics Opt-in

Google Analytics 4, Matomo, Microsoft Clarity, Hotjar. Bloqués par défaut tant que l'utilisateur n'a pas consenti.

Marketing

marketing Opt-in

Meta Pixel, Google Ads, cookies de retargeting tiers. Strictement bloqués sans consentement explicite.

Préférences

preferences Opt-in

Cookies de personnalisation (langue, région, préférences UI). Facultatifs selon votre stack.

4 Google Consent Mode v2

Livada Cookies injecte automatiquement le Consent Mode v2 avec les paramètres par défaut denied avant tout autre script (priorité 1 sur wp_head). Quand l'utilisateur consent, les signaux sont mis à jour via gtag('consent', 'update', ...).

Mapping catégories → signaux GCM

ad_storage → catégorie marketing
ad_user_data → catégorie marketing
ad_personalization → catégorie marketing
analytics_storage → catégorie statistics
functionality_storage → catégorie preferences
security_storage → catégorie necessary (toujours granted)
Injection automatique sur wp_head (priorité 1)
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments)}
gtag("consent", "default", {
ad_storage: "denied",
ad_user_data: "denied",
ad_personalization: "denied",
analytics_storage: "denied",
functionality_storage: "denied",
security_storage: "granted",
wait_for_update: 500
});
</script>

5 Logs de preuve & conformité CNIL

Structure de la table wp_livada_consent_logs

id BIGINT AUTO_INCREMENT Identifiant unique du log.
consent_uid VARCHAR(36) UUID v4 généré côté client, persisté en localStorage.
action VARCHAR(20) 'accept_all', 'reject_all', 'custom', 'withdraw'
choices JSON { necessary: true, statistics: false, marketing: false, preferences: false }
ip_hash VARCHAR(64) SHA-256 de l'IP (IP non stockée en clair — conformité RGPD).
user_agent_hash VARCHAR(64) SHA-256 du user-agent (non stocké en clair).
banner_version VARCHAR(10) Hash du texte du bandeau actif. Déclenche un re-consentement si modifié.
created_at DATETIME Horodatage UTC de l'action.

Conformité CNIL — points clés

✓ Boutons "Tout accepter" et "Tout refuser" strictement de même taille visuelle.
✓ Aucune case pré-cochée (sauf catégories Nécessaires exemptées légalement).
✓ Scripts non-essentiels bloqués par défaut avant tout consentement.
✓ IP anonymisée par hachage SHA-256 (la CNIL considère l'IP comme donnée personnelle).
✓ Purge automatique des logs au-delà de 13 mois (recommandation CNIL).
✓ Re-consentement automatique si le texte du bandeau change (hash de version).
✓ Retrait du consentement aussi simple que l'octroi (bouton dans footer).

6 Hooks PHP

Actions

Déclenché à chaque action de consentement
// $action : "accept_all" | "reject_all" | "custom" | "withdraw"
// $choices : array{ necessary:bool, statistics:bool, marketing:bool, preferences:bool }
add_action(
'livada_cookies_consent_given',
function( $action, $choices ) {
// Ex : trigger un événement GA4 personnalisé
if ( $choices["statistics"] ) { /* ... */ }
}, 10, 2
);

Filtres

// Modifier les textes du bandeau par code
add_filter( "livada_cookies_default_texts", function( $texts ) {
$texts['accept_btn'] = 'OK pour moi';
return $texts;
});
// Modifier les catégories (ajouter / renommer)
add_filter( "livada_cookies_categories", function( $categories ) {
$categories['analytics']['label'] = 'Mesure d\'audience';
return $categories;
});

7 Events JavaScript

Le plugin dispatch un événement DOM à chaque action de consentement.

// Écouter les changements de consentement
document.addEventListener("lvc:consent", function(e) {
const { action, choices } = e.detail;
// action : "accept_all" | "reject_all" | "custom" | "withdraw"
// choices: { necessary: true, statistics: true, marketing: false, preferences: false }
if (choices.statistics) {
// Analytics activées — charger votre script custom si besoin
}
});
// Lire le consentement courant sans attendre un événement
const consent = window.LivadaCookies?.getConsent();
// → { necessary: true, statistics: false, marketing: false, preferences: false }
// Vérifier une catégorie spécifique
const hasStats = window.LivadaCookies?.hasConsent("statistics"); // true | false
// Rouvrir la modale de personnalisation (ex : lien dans footer)
window.LivadaCookies?.openPreferences();

8 Compatibilité

CMS

  • ✓ WordPress 6.0+ (testé jusqu'à 6.7)
  • ✓ Multisite ✓

PHP

  • ✓ PHP 7.4, 8.0, 8.1, 8.2, 8.3

Analytics & Ads

  • ✓ Google Analytics 4 (Site Kit ou gtag direct)
  • ✓ Google Ads / Floodlight
  • ✓ Meta Pixel
  • ✓ Microsoft Clarity
  • ✓ Hotjar
  • ✓ Matomo

Tag Managers

  • ✓ Google Tag Manager (mode Consent Mode v2)
  • ✓ Matomo Tag Manager

Multilingue

  • ✓ Polylang
  • ✓ WPML
  • ✓ TranslatePress
  • ✓ Texts traduits via fichier .po standard

Page builders & thèmes

  • ✓ Tous thèmes (injection sur wp_head)
  • ✓ Elementor, Divi, Beaver Builder
  • ✓ Gutenberg natif

Performance

  • ✓ 11 Ko gzippé (JS + CSS)
  • ✓ Aucun JS bloquant sur rendu
  • ✓ Compatible WP Rocket, LiteSpeed Cache
  • ✓ 0 impact LCP / FID

Accessibilité

  • ✓ Focus trap WCAG 2.1 AA
  • ✓ Rôles ARIA (dialog, radiogroup)
  • ✓ Navigation clavier complète
  • ✓ prefers-reduced-motion respecté
  • ✓ Lecteurs d'écran (NVDA, VoiceOver)

9 FAQ

Compatible avec Google Site Kit ? +

Oui. Consent Mode v2 est injecté en priorité 1, avant Site Kit. Site Kit détecte automatiquement les signaux de consentement et adapte GA4 en conséquence. Aucune configuration manuelle.

Que se passe-t-il si je modifie le texte du bandeau ? +

Le hash de version change. Tous les visiteurs ayant déjà consenti verront le bandeau réapparaître à leur prochaine visite. La CNIL exige un re-consentement quand l'information change.

Comment intégrer avec mon CMP existant (Axeptio, Didomi…) ? +

Livada Cookies est conçu pour remplacer votre CMP existant, pas cohabiter avec lui. Désactivez votre CMP actuel avant d'activer Livada Cookies.

Puis-je personnaliser les couleurs ? +

Oui. Réglages → Livada Cookies → Apparence. Color pickers pour fond, texte, couleur d'accent. Ou via CSS custom en ciblant les classes .lvc-banner et .lvc-modal.

Les logs sont-ils conformes RGPD ? +

Oui. IP et user-agent sont stockés hachés (SHA-256), jamais en clair. Purge automatique à 13 mois. La table peut être supprimée à la désinstallation du plugin (option dans Avancé).

Le plugin bloque-t-il Google Tag Manager ? +

Non. GTM lui-même n'est pas bloqué. Ce sont les tags à l'intérieur de GTM qui sont régulés via les signaux Consent Mode v2. Vos tags GA4 / Ads dans GTM doivent être configurés en mode "Consentement requis".

Fonctionne avec WordPress Multisite ? +

Oui. Chaque sous-site consomme 1 slot de licence. Les réglages sont indépendants par site.

Besoin d'aide ?

Installation, configuration, journaux et compatibilité : tout est détaillé dans cette documentation.