Parte da nossa série Compliance & Regulation
Leia o guia completoMais de 400 milhões de euros em multas do GDPR foram emitidos especificamente por violações de consentimento de cookies desde 2020. A CNIL francesa multou o Google em 150 milhões de euros e o Facebook em 60 milhões de euros por tornarem mais fácil aceitar cookies do que recusá-los. O consentimento de cookies não é mais um exercício de caixa de seleção – é uma área da lei de privacidade fortemente aplicada, com requisitos técnicos específicos.
Este guia aborda os requisitos legais, a implementação técnica e o gerenciamento contínuo do consentimento de cookies para sites e aplicativos da web.
Principais conclusões
- De acordo com o GDPR e o ePrivacy, o consentimento deve ser obtido ANTES de definir cookies não essenciais --- e não depois
- O consentimento deve ser tão fácil de retirar quanto de dar (recusar com um clique, não oculto nas configurações)
- As paredes de cookies ("aceitar ou sair") são ilegais na maioria dos estados membros da UE
- O Google Consent Mode v2 é necessário para Google Analytics e Ads no EEE desde março de 2024
Requisitos legais por região
Comparação de requisitos de consentimento de cookies
| Requisito | UE (GDPR + ePrivacy) | Reino Unido (PECR + RGPD do Reino Unido) | EUA (CCPA/leis estaduais) | Brasil (LGPD) | Canadá (PIPEDA) |
|---|---|---|---|---|---|
| Consentimento prévio para cookies não essenciais | Sim (aceitar) | Sim (aceitar) | Não (modelo de opt-out) | Sim (aceitar) | Consentimento implícito permitido |
| Banner de consentimento obrigatório | Sim | Sim | Não obrigatório (mas recomendado) | Sim | Recomendado |
| Opções granulares (por categoria) | Sim | Sim | Não obrigatório | Sim | Recomendado |
| Igual importância para aceitar/recusar | Sim | Sim | N/A | Sim | N/A |
| Parede de biscoitos permitida | Não (na maioria dos estados) | Não | N/A | Não | N/A |
| Registro de consentimento necessário | Sim | Sim | Não | Sim | Sim |
| Período de renovação do consentimento | Máx. 12 meses | Máx. 12 meses | N/A | Não especificado | Não especificado |
| Política de cookies necessária | Sim (detalhado) | Sim (detalhado) | Sim (se estiver rastreando) | Sim | Sim |
O que conta como um cookie
A Diretiva ePrivacy abrange não apenas os cookies HTTP, mas todas as tecnologias que armazenam ou acessam informações no dispositivo do usuário:
- Cookies HTTP (primários e de terceiros)
- LocalStorage e SessionStorage
- IndexadoDB
- Impressão digital do dispositivo
- Pixels de rastreamento / web beacons
- ETags usadas para rastreamento
Categorização de cookies
Categorias padrão
| Categoria | Consentimento necessário? | Exemplos | Estado padrão |
|---|---|---|---|
| Estritamente necessário | Não | Cookies de sessão, tokens CSRF, cookies de balanceador de carga, autenticação | Sempre ligado |
| Funcional/preferências | Sim | Preferência de idioma, preferência de tema, carrinho salvo | Desligado (até consentimento) |
| Análise/desempenho | Sim | Google Analytics, Hotjar, Plausível (com cookies) | Desligado (até consentimento) |
| Marketing/publicidade | Sim | Google Ads, Facebook Pixel, cookies de retargeting | Desligado (até consentimento) |
Auditando seus cookies
Antes de implementar o consentimento, audite todos os cookies que seu site define:
// Browser console: list all cookies
document.cookie.split(';').forEach(c => console.log(c.trim()));
// Or use a scanning tool
// cookiebot.com/en/cookie-checker
// 2gdpr.com
Documente cada cookie:
| Nome do biscoito | Categoria | Finalidade | Duração | Primeiro/Terceiro |
|---|---|---|---|---|
| CÓDIGO0 | Estritamente necessário | Autenticação | Sessão | Primeira parte |
| CÓDIGO0 | Estritamente necessário | Atualização de token | 7 dias | Primeira parte |
| CÓDIGO0 | Estritamente necessário | Preferência de idioma | 1 ano | Primeira parte |
| CÓDIGO0 | Análise | ID de visitante do Google Analytics | 2 anos | Terceiros (Google) |
| CÓDIGO0 | Comercialização | Rastreamento de pixels do Facebook | 90 dias | Terceiros (Facebook) |
Implementação Técnica
Opção 1: Plataforma de gerenciamento de consentimento (CMP)
| CMP | Nível gratuito | Compatível com GDPR | Parceiro CMP do Google | IAB TCF 2.2 |
|---|---|---|---|---|
| Biscoitobot | Até 1 página | Sim | Sim | Sim |
| OneTrust | Não | Sim | Sim | Sim |
| Osano | Até 5 mil visitantes | Sim | Sim | Não |
| Termalmente | Plano básico | Sim | Sim | Não |
| Cookie-Script | Até 1 local | Sim | Sim | Não |
Opção 2: implementação personalizada
Para equipes que desejam controle total:
// lib/cookie-consent.ts
type ConsentCategory = 'necessary' | 'functional' | 'analytics' | 'marketing';
interface ConsentPreferences {
necessary: true; // Always true, cannot be changed
functional: boolean;
analytics: boolean;
marketing: boolean;
timestamp: string;
version: string;
}
const CONSENT_COOKIE = 'ecosire_consent';
const CONSENT_VERSION = '2.0';
const CONSENT_DURATION = 365; // days
export function getConsent(): ConsentPreferences | null {
const cookie = document.cookie
.split(';')
.find(c => c.trim().startsWith(`${CONSENT_COOKIE}=`));
if (!cookie) return null;
try {
const prefs = JSON.parse(decodeURIComponent(cookie.split('=')[1]));
// Invalidate if consent version changed
if (prefs.version !== CONSENT_VERSION) return null;
return prefs;
} catch {
return null;
}
}
export function setConsent(preferences: Omit<ConsentPreferences, 'necessary' | 'timestamp' | 'version'>) {
const consent: ConsentPreferences = {
necessary: true,
...preferences,
timestamp: new Date().toISOString(),
version: CONSENT_VERSION,
};
const expires = new Date(Date.now() + CONSENT_DURATION * 86400000).toUTCString();
document.cookie = `${CONSENT_COOKIE}=${encodeURIComponent(JSON.stringify(consent))}; expires=${expires}; path=/; SameSite=Lax`;
// Apply consent decisions
applyConsent(consent);
return consent;
}
function applyConsent(consent: ConsentPreferences) {
if (consent.analytics) {
// Initialize Google Analytics
loadScript('https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX');
}
if (consent.marketing) {
// Initialize marketing pixels
loadScript('https://connect.facebook.net/en_US/fbevents.js');
}
if (!consent.analytics) {
// Remove analytics cookies
deleteCookie('_ga');
deleteCookie('_gid');
}
if (!consent.marketing) {
// Remove marketing cookies
deleteCookie('_fbp');
deleteCookie('_fbc');
}
}
Modo de consentimento do Google v2
Obrigatório para Google Analytics e Google Ads no EEE desde março de 2024:
<!-- Set default consent state BEFORE loading Google tags -->
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Default: deny all until user consents
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied',
'functionality_storage': 'denied',
'personalization_storage': 'denied',
'security_storage': 'granted', // Always granted (necessary)
'wait_for_update': 500 // Wait for CMP
});
</script>
<!-- Load Google Tag Manager -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
Quando o usuário fornece consentimento:
// Update consent state when user interacts with banner
function updateGoogleConsent(preferences) {
gtag('consent', 'update', {
'ad_storage': preferences.marketing ? 'granted' : 'denied',
'ad_user_data': preferences.marketing ? 'granted' : 'denied',
'ad_personalization': preferences.marketing ? 'granted' : 'denied',
'analytics_storage': preferences.analytics ? 'granted' : 'denied',
'functionality_storage': preferences.functional ? 'granted' : 'denied',
'personalization_storage': preferences.functional ? 'granted' : 'denied',
});
}
Requisitos de design de banner de consentimento
Requisitos legais da UE
- [] O banner aparece ANTES de qualquer cookie não essencial ser definido
- Os botões "Aceitar todos" e "Recusar todos" têm igual destaque visual
- [] Seleção granular de categoria disponível (não apenas tudo ou nada)
- [] Sem caixas pré-marcadas para categorias não essenciais
- [] Explicação clara e em linguagem simples de cada categoria
- Link para a política completa de cookies
- [] Retirada de consentimento acessível a qualquer momento (por exemplo, link de rodapé)
- [] Sem parede de cookies (deve ser capaz de usar o site sem consentimento)
- [] Consentimento registrado com carimbo de data/hora e versão
Requisitos de acessibilidade
- Banner é navegável pelo teclado
- Compatível com leitor de tela (etiquetas ARIA)
- Contraste de cor suficiente
- Não bloqueia conteúdo essencial permanentemente
Alternativa de análise sem cookies
Para sites que desejam evitar totalmente os banners de consentimento de cookies:
| Ferramenta | Biscoitos | É necessário consentimento do GDPR | Localização dos dados | Preço |
|---|---|---|---|---|
| Plausível | Nenhum | Não | UE | US$ 9/mês |
| Compreender | Nenhum | Não | UE/EUA/Canadá | US$ 14/mês |
| Umami | Nenhum | Não | Auto-hospedado | Grátis |
| Análise Simples | Nenhum | Não | UE | US$ 9/mês |
| Matomo (configuração sem cookies) | Opcional | Não (sem cookies) | Auto-hospedado | Grátis |
O uso de análises sem cookies elimina a necessidade de consentimento analítico, simplificando seu banner de consentimento para cobrir apenas cookies de marketing (se usados).
Perguntas frequentes
Precisamos de um banner de cookies se usarmos apenas os cookies necessários?
Não. Se você usar apenas cookies estritamente necessários (autenticação, CSRF, balanceamento de carga), nenhum consentimento será necessário e nenhum banner será necessário. No entanto, você ainda deve divulgar esses cookies na sua política de privacidade. No momento em que você adiciona análises (Google Analytics) ou qualquer rastreamento de terceiros, um banner de consentimento torna-se legalmente obrigatório na UE.
É legal usar um "soft opt-in" (continuar navegando = consentimento)?
Não, não sob o GDPR. O Conselho Europeu para a Proteção de Dados declarou explicitamente que a navegação contínua, a rolagem ou ações passivas semelhantes não constituem consentimento válido. O consentimento deve ser uma ação clara e afirmativa – clicar em um botão que diz “Aceitar” ou algo semelhante. O soft opt-in foi considerado não conforme no Planet49 (TJUE, 2019).
Como lidamos com o consentimento para aplicativos de página única?
Para SPAs, verifique o estado de consentimento no carregamento inicial da página e em cada alteração de rota. Se o consentimento não tiver sido dado, não inicialize scripts de rastreamento. Armazene as preferências de consentimento em um cookie primário (que é estritamente necessário para lembrar o consentimento). Quando o usuário fornecer consentimento, inicialize os scripts de rastreamento sem exigir o recarregamento da página.
Precisamos de consentimento de cookies para nosso site Odoo?
Se o seu site Odoo atende visitantes da UE e usa análises, pixels de marketing ou cookies funcionais além do estritamente necessário, sim. Odoo possui um aviso básico de cookies, mas não atende aos padrões do GDPR. Implemente um CMP adequado como o Cookiebot ou crie uma solução personalizada. ECOSIRE fornece serviços do site Odoo que incluem consentimento de cookies em conformidade com GDPR.
O que vem a seguir
O consentimento de cookies é o aspecto mais visível da conformidade com a privacidade na web. Combine-o com privacidade desde a concepção para a arquitetura da sua aplicação, governança de dados para o seu programa de dados completo e regulamentações de segurança cibernética para uma conformidade mais ampla.
Entre em contato com a ECOSIRE para implementação de consentimento de cookies e consultoria de conformidade de privacidade.
Publicado pela ECOSIRE – ajudando as empresas a implementar conformidades de privacidade nas quais os usuários confiam.
Escrito por
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
ECOSIRE
Expanda o seu negócio com ECOSIRE
Soluções empresariais em ERP, comércio eletrônico, IA, análise e automação.
Artigos Relacionados
BMF Programmablaufplan Lohnsteuer 2026: Implementando o cálculo oficial do imposto sobre salários na Alemanha (XML, API, Odoo)
Guia do desenvolvedor para o BMF Programmablaufplan Lohnsteuer 2026: o que é o PAP, o formato de pseudocódigo XML, serviço de teste oficial e mapeamento para folha de pagamento Odoo.
ERP para marcas de roupas e moda: matriz tamanho-cor, planejamento sazonal e conformidade (guia 2026)
Como as marcas de moda e roupas escolhem um ERP em 2026: variantes de matriz tamanho-cor, planejamento sazonal, conformidade com GoBD e DATEV, comparação de fornecedores e custos.
ERPNext RH e folha de pagamento em 2026: configuração, estruturas salariais e conformidade multipaíses
Configuração passo a passo do ERPNext HR e folha de pagamento para 2026: instalação do aplicativo HRMS, estruturas salariais, lançamentos de folha de pagamento, placas de imposto de renda, conformidade multipaíses.
Mais de Compliance & Regulation
BMF Programmablaufplan Lohnsteuer 2026: Implementando o cálculo oficial do imposto sobre salários na Alemanha (XML, API, Odoo)
Guia do desenvolvedor para o BMF Programmablaufplan Lohnsteuer 2026: o que é o PAP, o formato de pseudocódigo XML, serviço de teste oficial e mapeamento para folha de pagamento Odoo.
ERP para marcas de roupas e moda: matriz tamanho-cor, planejamento sazonal e conformidade (guia 2026)
Como as marcas de moda e roupas escolhem um ERP em 2026: variantes de matriz tamanho-cor, planejamento sazonal, conformidade com GoBD e DATEV, comparação de fornecedores e custos.
ERPNext RH e folha de pagamento em 2026: configuração, estruturas salariais e conformidade multipaíses
Configuração passo a passo do ERPNext HR e folha de pagamento para 2026: instalação do aplicativo HRMS, estruturas salariais, lançamentos de folha de pagamento, placas de imposto de renda, conformidade multipaíses.
Conformidade GoHighLevel A2P 10DLC em 2026: registro, taxas e correção de SMS bloqueados
Guia completo do GoHighLevel A2P 10DLC para 2026: etapas de registro de marca e campanha, taxas da operadora, motivos comuns de rejeição e como corrigir SMS filtrados.
Validação GxP para sistemas ERP: o que sua RFP de validação 2026 deve exigir (CSV, IQ/OQ/PQ, trilhas de auditoria)
O que uma RFP de validação de ERP GxP deve exigir em 2026: escopo CSV e CSA, 21 CFR Parte 11, Anexo 11 da UE, resultados IQ/OQ/PQ, trilhas de auditoria e risco GAMP 5.
Modelo de segurança OpenClaw, residência de dados, SOC 2 e ISO 27001
Arquitetura de segurança OpenClaw: isolamento de locatário, criptografia, gerenciamento de segredos, registros de auditoria, residência de dados, SOC 2, ISO 27001, GDPR, aptidão HIPAA.