# DataFirefly Cookie Consent: guia completo

> Apresentação O DataFirefly Cookie Consent é um plugin WordPress e WooCommerce de gestão do consentimento de cookies. Combina três blocos: um banner de consentimento conforme ao RGPD e às recomendações…

- Página: <https://www.datafirefly.com/pt/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/>
- Idioma: pt
- Atualizado em: 2026-09-02
- Outros idiomas: [fr](https://www.datafirefly.com/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [en](https://www.datafirefly.com/en/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [es](https://www.datafirefly.com/es/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [de](https://www.datafirefly.com/de/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [it](https://www.datafirefly.com/it/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [pl](https://www.datafirefly.com/pl/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md), [nl](https://www.datafirefly.com/nl/documentation/datafirefly-cookie-consent-rgpd-consent-mode-v2/index.md)
- Índice: <https://www.datafirefly.com/pt/documentation/llms.txt>

## Apresentação

O DataFirefly Cookie Consent é um plugin WordPress e WooCommerce de gestão do consentimento de cookies. Combina três blocos: um banner de consentimento conforme ao RGPD e às recomendações das autoridades europeias de proteção de dados, a emissão nativa dos sinais do Google Consent Mode v2 antes de qualquer tag da Google, e uma auditoria que deteta os trackers realmente carregados no seu site, com registo de prova exportável.

## Requisitos

- WordPress 6.2 ou superior
- PHP 8.0 ou superior
- WooCommerce 8.0+ (opcional, o plugin também funciona só com WordPress, com compatibilidade HPOS declarada)
- GTM ou GA4 já instalado, se quiser tirar partido do Consent Mode v2 (o plugin não instala as tags da Google por si)

## Instalação

1. Descarregue o ficheiro `df-cookie-consent.zip` a partir da sua conta DataFirefly.
2. Na administração do WordPress, vá a **Plugins → Adicionar → Carregar plugin**, selecione o ZIP e clique em **Instalar agora**.
3. Clique em **Ativar**. Na ativação, o plugin cria a tabela de registo `wp_dfcc_consent_log`, gera um salt aleatório para o hash dos IP e agenda duas tarefas cron (limpeza diária do registo e análise dos trackers).
4. Aparece um novo menu **Cookie Consent** na barra lateral da administração, com quatro páginas: Painel, Definições, Auditoria e Registo.

O banner aparece de imediato no front-end com as definições predefinidas (esquema de barra no fundo da página, tema claro, modo opt-in, as 4 categorias ativas).

## Configuração do banner

Todas as definições estão em **Cookie Consent → Definições**.

### Comportamento geral

- **Ativar o banner**: interruptor global do plugin.
- **Modo**: opt-in (obrigatório na UE, sem qualquer cookie não essencial antes do consentimento) ou opt-out.
- **Botão Recusar tudo no primeiro nível**: ativo por predefinição, em linha com as recomendações das autoridades europeias. Não o desative se o seu público for europeu.
- **Duração do cookie de consentimento**: 180 dias por predefinição. A escolha do utilizador é guardada no cookie `dfcc_consent` (codificado, first-party).
- **Versão da política**: incremente este número quando a sua política de cookies mudar de forma substancial. O banner é automaticamente reapresentado a todos os visitantes e o registo guarda a nova versão.

### Aparência

- **Esquema**: barra em largura total, cartão de canto ou modal centrada.
- **Posição**: topo ou fundo da página (nos esquemas de barra e de cartão).
- **Tema**: claro, escuro ou automático (segue a preferência de sistema do visitante através do prefers-color-scheme).
- **Cor de destaque**: personaliza a cor do botão principal.

Em telemóvel (menos de 640 px), o banner passa automaticamente a ecrã inteiro para se manter legível. As animações respeitam o prefers-reduced-motion.

### Categorias de cookies

Estão pré-configuradas quatro categorias, cada uma com uma designação e uma descrição alteráveis:

- **Necessários** (necessary): sempre ativos, não desativáveis pelo visitante: carrinho, sessão, segurança.
- **Funcionais** (functional): preferências, idioma, chat.
- **Medição de audiência** (analytics): Google Analytics, Matomo, etc.
- **Publicidade dirigida** (marketing): Google Ads, Meta Pixel, remarketing.

### Textos e ligações

O título do banner, o texto de introdução e as designações dos quatro botões (Aceitar tudo, Recusar tudo, Personalizar, Guardar as minhas escolhas) são alteráveis nas definições. Indique também os URL da sua política de privacidade e da sua política de cookies, que aparecem como ligações discretas por baixo dos botões. Todos os textos passam pelas funções de tradução do WordPress: o plugin é entregue com 5 catálogos (FR, EN, ES, DE, IT) e pode ser substituído através do Loco Translate.

## Google Consent Mode v2

É o núcleo técnico do plugin. Desde março de 2024, a Google exige que os sites europeus emitam os 7 sinais do Consent Mode v2 para continuarem a medir as conversões do Google Ads e a construir as audiências do GA4.

### Funcionamento

O plugin imprime um bloco `gtag('consent', 'default', ...)` no head do HTML com a prioridade 1 do wp_head, ou seja, antes de qualquer contentor GTM ou tag GA4 carregado de forma padrão. Os 7 sinais emitidos:

- `ad_storage`, `ad_user_data`, `ad_personalization`: comandados pela categoria Publicidade dirigida
- `analytics_storage`: comandado pela categoria Medição de audiência
- `functionality_storage`, `personalization_storage`: comandados pela categoria Funcionais
- `security_storage`: sempre granted (recomendação da Google)

O mapeamento entre categorias e sinais é automático: não é necessária qualquer parametrização manual. Quando o visitante faz a sua escolha, é emitido de imediato um `gtag('consent', 'update', ...)`, e a escolha é reaplicada como estado predefinido em cada página seguinte.

### Definições do Consent Mode

- **Região EEE**: por predefinição, o deny estrito só se aplica aos 31 países do Espaço Económico Europeu (mais Reino Unido e Suíça), através do parâmetro region do gtag; o resto do mundo fica em granted. Deteção nativa da Cloudflare através do cabeçalho CF-IPCountry.
- **url_passthrough**: ativo por predefinição. Conserva os identificadores de clique gclid e dclid nos URL mesmo em caso de recusa, o que permite a medição de conversões sem cookies.
- **ads_data_redaction**: ativo por predefinição. Censura os dados de utilizador enviados à Google quando o ad_storage está denied.
- **wait_for_update**: 500 ms por predefinição. Prazo dado às tags da Google para esperarem pela atualização do consentimento.

### Verificar que tudo funciona

1. Abra o seu site em navegação privada, abra a consola do navegador e escreva `dataLayer`: deve ver a entrada consent default antes da entrada gtm.js.
2. No Google Tag Assistant ou no modo Preview do GTM, o separador Consent deve mostrar os 7 sinais com o respetivo estado.
3. Aceite o banner e volte a escrever `dataLayer`: deve aparecer uma entrada consent update com os novos estados.

## Auditoria de conformidade

A página **Cookie Consent → Auditoria** lança uma análise que vai buscar a sua página inicial e examina o HTML realmente servido.

### O que a análise deteta

- **23 trackers conhecidos**: Google Analytics 4, GTM, Meta Pixel, TikTok, LinkedIn, Pinterest, Snapchat, Twitter/X, Bing UET, Matomo, Microsoft Clarity, Hotjar, Mixpanel, Plausible, HubSpot, Intercom, Crisp, Tawk, YouTube, Vimeo, Stripe e outros, cada um classificado na sua categoria de consentimento esperada.
- **11 plugins WordPress de risco**: MonsterInsights, Site Kit, PixelYourSite, Facebook/Pinterest/TikTok for WooCommerce, HubSpot, MC4WP e outros plugins que injetam trackers por sua conta.
- **Cookies colocados no servidor**: snapshot com identificação automática do fornecedor (_ga, _fbp, _gcl, etc.).

### Pontuação e recomendações

A análise produz uma pontuação de conformidade de 0 a 100 baseada na diferença entre as categorias que declarou e os trackers realmente detetados. Os problemas são classificados em três níveis, critical, warning e info, cada um com uma recomendação acionável (por exemplo: foi detetado um tracker de marketing quando a categoria está desativada no banner). Corre também uma análise automática em segundo plano através do cron `dfcc_cron_scan_trackers`.

## Registo de consentimento

A página **Cookie Consent → Registo** lista cada evento de consentimento guardado na tabela dedicada `wp_dfcc_consent_log`.

### Dados guardados

- Data e hora em UTC, UID anónimo persistente (rastreabilidade de vários eventos do mesmo visitante)
- Tipo de evento: accept_all, reject_all, custom, withdraw
- Estado completo por categoria, versão da política e do banner
- IP com dupla proteção: hash SHA-256 com o salt aleatório gerado na ativação (irreversível), mais IP truncada a /24 (IPv4) ou /64 (IPv6) para análise anónima
- User agent, URL da página, referer, região, idioma e user_id do WordPress se houver sessão iniciada

### Filtros e exportação

Filtre por período, tipo de evento ou UID, e depois exporte em CSV (BOM UTF-8, separador ponto e vírgula, abre diretamente no Excel) ou em JSON formatado. Estas exportações constituem a sua prova de consentimento em caso de fiscalização pela autoridade de proteção de dados.

### Retenção

Por predefinição, o registo é conservado 1825 dias (5 anos, duração recomendada para a prova de consentimento). A limpeza automática corre todas as noites através do cron `dfcc_cron_purge_logs`. A retenção é ajustável nas definições. Note que a desativação do plugin conserva os registos (prova de consentimento); só a desinstalação completa através de Plugins → Eliminar limpa a tabela, as opções e os crons.

## Ligação «Gerir os meus cookies» no rodapé

A regulamentação impõe que o visitante possa alterar a sua escolha a qualquer momento. Duas opções:

- **Shortcode**: coloque `` num widget ou num menu de rodapé, e gera uma ligação que reabre a modal de personalização.
- **API JavaScript**: chame `window.dfcc.open()` a partir de qualquer elemento do seu tema.

## API para programadores

### API JavaScript

O objeto global `window.dfcc` expõe:

- `dfcc.open()`: abre a modal de personalização
- `dfcc.accept()`: aceita todas as categorias
- `dfcc.reject()`: recusa todas as categorias opcionais
- `dfcc.withdraw()`: retira o consentimento (evento withdraw registado)
- `dfcc.getConsent()`: devolve o estado completo do consentimento
- `dfcc.hasConsent('analytics')`: verifica uma categoria em concreto (útil para condicionar os seus próprios scripts)

### Endpoint REST

Está disponível um endpoint POST em `wp-json/dfcc/v1/consent` para registar um evento de consentimento a partir do seu próprio código (protegido por nonce).

### Hooks do WordPress

- `dfcc_before_banner_render`: ação acionada antes da apresentação do banner (para o ocultar em determinadas páginas, por exemplo)
- `dfcc_after_consent_logged`: ação acionada após cada escrita no registo (para sincronizar um CRM, por exemplo)
- `dfcc_consent_mode_defaults`: filtro sobre os estados predefinidos dos 7 sinais do Consent Mode
- `dfcc_scan_trackers_patterns`: filtro para acrescentar os seus próprios padrões de deteção ao scanner

## Resolução de problemas

- **Os sinais do Consent Mode não aparecem antes do GTM**: verifique que nenhum plugin de desempenho desloca ou difere os scripts do head. O bloco dfcc-consent-mode-default tem de continuar inline e não diferido.
- **O banner reaparece a cada visita**: verifique que um sistema de cache não está a servir uma página fixa com um cookie antigo, e que a duração do cookie não está a 0.
- **A análise de auditoria falha**: o servidor tem de conseguir fazer um pedido HTTP para a sua própria página inicial. Em alguns alojamentos com o loopback bloqueado, autorize os pedidos locais ou verifique a firewall.
- **Os IP registados são os da Cloudflare**: o plugin lê o CF-Connecting-IP com prioridade. Se o problema persistir, verifique que a configuração do seu servidor transmite mesmo os cabeçalhos da Cloudflare.
