Modo Cosmético (cookieConsentCosmeticOnly)
Algumas brands operam em modo cosmético — o banner LGPD aparece pro usuário, mas qualquer clique já autoriza tudo (accept_all). Esta página explica quando isso vale, como ativa, e o que acontece tecnicamente.
O que é
Feature flag featuresConfig.cookieConsentCosmeticOnly: true muda a semântica do banner:
| Cenário | Comportamento default | Comportamento cosmético |
|---|---|---|
| User clica "Aceitar todos" | { all categories: true } | { all categories: true } (igual) |
| User clica "Recusar" | { necessary: true, others: false } | { all categories: true } |
| User clica "Salvar Personalização" | preferências granulares | { all categories: true } |
| User fecha o banner sem clicar (bot, ESC) | banner permanece | { all categories: true } após primeiro mount |
| Banner reaparece em 12 meses | sim | banner não volta a aparecer |
Tradução: banner é puramente visual. Qualquer interação ou tempo decorrido vira accept_all.
Quando usar
Apenas com autorização conjunta:
- Marketing — confirma que tracking é prioridade comercial e perda de attribution por consent denial é inaceitável
- Compliance / DPO — confirma que a brand opera em jurisdição/contrato onde isso é aceitável (ex: brand internacional sem requisito LGPD-strict, ou brand com TOS específico)
Documentar a aprovação no canal interno antes de ativar.
Brands ativas
| Brand | cookieConsentCosmeticOnly |
|---|---|
| Vera | true |
| Demais | false (default) |
Implicação técnica em GCM v2
Quando ativo, GCM defaults sobem direto como granted:
// Sem cookieConsentCosmeticOnly (default)
gtag('consent', 'default', {
analytics_storage: 'denied',
ad_storage: 'denied',
// etc
});
// Com cookieConsentCosmeticOnly
gtag('consent', 'default', {
analytics_storage: 'granted',
ad_storage: 'granted',
ad_user_data: 'granted',
ad_personalization: 'granted',
functionality_storage: 'granted',
personalization_storage: 'granted',
security_storage: 'granted',
});
Resultado: pixels disparam em modo full desde a primeira pageview, sem janela cega esperando consent.
Por que NÃO é simplesmente "desativar o banner"
Brands ainda renderizam o banner pra:
- Documentar para auditoria que o user recebeu aviso de cookies
- Manter UX consistente (user vê visual familiar)
- Cumprir requisitos contratuais com plataformas de pagamento, parceiros, etc
A diferença é: interação não muda preferência — preferência já é "aceitar tudo" desde o primeiro render.
Migração de cookie legado
Mesmo em modo cosmético, o parser de cookies_consent ainda detecta cookies em formato legado e migra. User existente que tinha ["necessary"] (recusou no modo default) vê suas preferências sobrescritas pra { all granted } no próximo mount cosmético.
Este é o comportamento desejado — mudança de modo (default → cosmetic) requer re-aceite explícito.
Anti-patterns
- Ativar
cookieConsentCosmeticOnly: truesem aprovação documentada de marketing + compliance. Risco regulatório alto. - Confundir com "esconder banner". Banner ainda renderiza em cosmetic — apenas a semântica de interação muda.
- Esperar dashboard de "users que recusaram cookies" funcionar em modo cosmético. Métrica vira 0% recusa, sempre.
- Mudar de
trueprafalseem prod sem aviso a marketing. Da noite pro dia, pixels passam a operar em modo limitado pra novos users até consent — drop drástico em attribution.