ArchitectureConsentement cookies

Consentement cookies

La bannière de BoostEcom reprend celle de orbit.easyconnector.app au commit 2e892e9f, y compris les derniers ajustements des icônes et l'enregistrement immédiat des interrupteurs. Item : growth-web/3163.

La bannière de BoostEcom reprend celle de orbit.easyconnector.app au commit 2e892e9f, y compris les derniers ajustements des icônes et l'enregistrement immédiat des interrupteurs. Item : growth-web/3163.

Présentation et interactions

Le panneau noir occupe le coin inférieur gauche : 372 px sur ordinateur, 24 px de marge, 20 px de padding. Sous 640 px, il garde 12 px de marge latérale et 16 px de padding. Ses coins mesurent 10 px. La typographie, les bordures, l'ombre, les icônes de 12 px, les interrupteurs bleus et les deux boutons pilules reprennent les classes et tokens de la référence. Le bouton d'acceptation est blanc ; les deux actions ont la même largeur. Les primitives Button et Switch restent celles de BoostEcom.

Au premier affichage, le panneau ne prend pas le focus, ne bloque pas la page et ne se ferme pas avec Échap. « Personnaliser » déplie les catégories. Chaque interrupteur enregistre immédiatement son choix. Après une réponse, « Cookies » dans le pied de page rouvre la vue détaillée ; la croix et Échap conservent le choix et rendent le focus. Les exclusions existantes /embed/* et /extension/uninstalled restent appliquées, y compris sur les chemins localisés.

Adaptations au dépôt

OrbitBoostEcom
Namespace consentshared.cookieConsent, dans les six locales
Identifiants OrbitClé boostecom-cookie-consent et événements préfixés boostecom:
Politique externe/legal/cookies, dans la langue de la page
Services tiers propres à OrbitDescription des tags de campagnes GTM réellement présents
Attribution liée au modèle OrbitEffacement de User.datafastVisitorId, via la session authentifiée

Une seule réponse, plusieurs consommateurs

src/components/shared/cookie-consent/consent.ts porte les constantes et le parseur. Le format contient version: 1, analytics, marketing et at (date ISO). Les anciennes chaînes accepted / declined, les réponses invalides, futures ou âgées de plus de 180 jours ne donnent aucune autorisation : la bannière redemande un choix au chargement.

useCookieConsent partage cette réponse avec les gates et le bridge GTM, à l'hydratation, au clic et lors d'un événement de stockage d'un autre onglet. Un stockage indisponible conserve le choix en mémoire pour la durée de la page. Un échec d'écriture ne réactive pas un ancien accord.

CatégorieEffet
NécessairesSession, langue et préférence de consentement restent disponibles
Mesure d'audienceDataFast, acquisition bec_acq, grant GTM analytics_storage
Services tiersGrants GTM ad_storage, ad_user_data, ad_personalization

Le conteneur GTM conserve son démarrage existant avec les grants refusés. Les mesures Vercel sans cookies restent indépendantes de ces catégories. La configuration des tags du conteneur reste externe au dépôt.

Retirer une autorisation

La sauvegarde retire les cookies de la catégorie refusée : bec_acq, les quatre cookies DataFast et les préfixes Google Analytics pour la mesure ; les préfixes publicitaires et les anciens cookies de chat pour les services tiers. Les cookies nécessaires ne sont pas supprimés.

L'action serveur forgetAnalyticsAttribution ne reçoit aucun identifiant client. Elle efface seulement l'identifiant DataFast de l'utilisateur de la session, et journalise le retrait si celui-ci appartient à une organisation. Elle ne réécrit pas l'historique d'acquisition ou d'affiliation. Sans session, elle ne fait rien.

Un retrait dans une page où les scripts tournaient provoque un rechargement à la fermeture du panneau. La demande d'effacement serveur est attendue, avec un plafond de deux secondes. Un échec réseau ne bloque pas le choix local ; il ne garantit pas l'effacement serveur.

Vérification

Les tests colocaux couvrent le format, les 180 jours, les catégories, le stockage bloqué, les changements entre onglets, le focus et le retrait. e2e/cookie-consent.spec.ts couvre le rendu dans les six langues, les actions, la persistance et la réouverture sur desktop et mobile. Cette suite vise une application locale ou de test, selon e2e/README.md.

Le script de captures creative/pipeline/live-shot.mjs initialise désormais un refus dans le format daté, pour garder les scènes sans bannière. Il ne transforme pas un refus en acceptation.