WP WordPress Iniciante

DataFirefly Cookie Consent: guia completo

Instalação, configuração do banner, Google Consent Mode v2, auditoria dos trackers e registo de consentimento do plugin WordPress DataFirefly Cookie Consent.

Atualizado Versão do módulo 1.0.0

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.

É 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.

  • 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 Gérer mes cookies 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.
Esta página foi útil?

Ainda com dúvidas? Contacte o suporte