Cookie Manager Tarteaucitron: guia completo
Instalação, configuração dos serviços, scanner automático, Consent Mode v2 e registo de consentimento do módulo Cookie Manager Tarteaucitron para PrestaShop 8 e 9.
Apresentação
O Cookie Manager Tarteaucitron é um módulo de gestão do consentimento de cookies para PrestaShop 8.0+ e 9.x. Combina o motor de código aberto tarteaucitron.js, que bloqueia efetivamente os serviços antes do consentimento, com uma interface moderna: cartão flutuante animado, interruptores por categoria e pastilha de reabertura. Inclui o Google Consent Mode v2, um scanner de rastreadores com ativação num clique e um registo de consentimento exportável.
Desde a versão 1.2.0 os ficheiros do tarteaucitron são servidos a partir do seu próprio domínio: nenhum pedido é enviado a um CDN externo antes do consentimento do visitante.
Instalação
- Vá a Módulos → Gestor de módulos → Carregar um módulo.
- Carregue o ficheiro
datafirefly_tarteaucitron.zip. - Clique em Instalar e depois em Configurar.
O ecrã de configuração é acessível de duas formas, ambas mostram a mesma página: o botão Configurar do gestor de módulos, ou a entrada de menu Cookie Manager adicionada na instalação.
Após cada atualização, limpe a cache do PrestaShop em Parâmetros avançados → Desempenho. O script de atualização limpa também o OPcache do PHP quando lhe é permitido.
Atualizar a partir de uma versão anterior
Substitua /modules/datafirefly_tarteaucitron/ ou instale o novo ZIP a partir do back-office. O script de atualização corre sozinho e trata da tabela de registo se estiver em falta, das novas chaves de configuração, das posições de banner renomeadas (bottom passa a bottom-left, middle e popup passam a center) e da entrada de menu se não existir.
Se usava a posição middle ou popup, o banner passa a ser uma modal centrada com fundo escurecido. O comportamento está correto, mas o aspeto muda visivelmente: verifique antes de publicar.
Definições gerais
- Módulo ativado: interruptor principal do banner no front-office.
- Idioma do banner: em automático segue o idioma PrestaShop da página. Também pode forçar um dos 36 idiomas incluídos.
- Posição do banner: em baixo à esquerda ou à direita, em cima à esquerda ou à direita, ou centrada como modal.
- Ficheiros do tarteaucitron: alojamento local, recomendado, ou CDN jsDelivr. Ver a secção dedicada.
- Validade do consentimento: 365 dias por predefinição. Recomenda-se não ultrapassar os 13 meses, ou seja 395 dias.
- Nome do cookie:
tarteaucitronpor predefinição. Alterá-lo repõe os consentimentos já recolhidos, porque o cookie anterior deixa de ser lido. - Domínio do cookie: vazio para o domínio atual, ou precedido de um ponto para partilhar o consentimento entre subdomínios.
- Pastilha de reabertura: mostra uma pequena pastilha Cookies após o consentimento. Ver a secção sobre a retirada.
- Fechar equivale a recusar: acrescenta uma cruz que recusa todos os cookies não essenciais. Desativada, o banner exige uma escolha explícita.
O separador Textos e links personaliza o título, a mensagem e as etiquetas dos botões; um campo vazio usa o texto próprio do módulo no idioma do banner. O separador Design controla as cores e o raio dos cantos, com pré-visualização ao vivo e um controlo de contraste WCAG entre a cor dos botões e a do respetivo texto.
De onde vêm os ficheiros do tarteaucitron
Um banner de cookies que carrega os seus próprios ficheiros de um CDN entrega o endereço IP do visitante a um terceiro antes sequer de este ter escolhido. Por isso o módulo inclui o tarteaucitron.js 1.30.0 e os seus 36 ficheiros de idioma em views/vendor/tarteaucitron/, servidos a partir do seu domínio.
A opção CDN jsDelivr continua disponível no separador Geral. Não é a recomendada: entrega o endereço IP do visitante ao jsDelivr logo no carregamento da página, antes de qualquer consentimento.
Ativar os serviços
O separador Serviços lista as 11 integrações prontas a usar. Para cada uma, ative o interruptor e introduza o identificador pedido:
- Google Analytics 4: Measurement ID, formato G-XXXXXXXX
- Google Tag Manager: Container ID, formato GTM-XXXXXX
- Google Ads: Conversion ID
- Meta Pixel: Pixel ID numérico
- Hotjar: Site ID numérico
- LinkedIn Insight: Partner ID
- TikTok Pixel: Pixel ID
- Microsoft Clarity: Project ID
- Intercom: App ID
- YouTube: sem identificador, ativa o bloqueio dos vídeos incorporados antes do consentimento
- Stripe: sem identificador, ver a secção dedicada
Um serviço ativado sem identificador não é carregado no front-office. O módulo assinala-o a vermelho na tabela e avisa ao gravar, mas verifique os seus identificadores depois de usar a ativação automática do scanner.
O campo do identificador bloqueia quando o serviço está desativado. O valor guardado mantém-se e reaparece ao reativar o serviço.
Scanner e deteção automática
- Clique em Analisar o site agora no separador Deteção automática. O módulo lê os cookies presentes no seu domínio e obtém o HTML do front-office para analisar as etiquetas de script de terceiros.
- Surgem duas tabelas: os cookies detetados com o serviço provável e a categoria, e os scripts de terceiros identificados com o seu estado atual no módulo.
- Clique em Ativar os serviços detetados e grave.
- Passe ao separador Serviços para introduzir os identificadores dos serviços recém-ativados.
O scanner reconhece Google Analytics, Google Tag Manager, Google Ads, Meta Pixel, Hotjar, LinkedIn, TikTok, Microsoft Clarity, Intercom, Brevo, Stripe e YouTube, além dos cookies funcionais do PrestaShop.
Navegue primeiro no seu front-office no mesmo navegador e só depois lance a análise: os cookies colocados pelos seus rastreadores ficarão visíveis e a deteção será mais completa. Se o back-office e o front estiverem em domínios diferentes, só funciona a análise de scripts.
Estatísticas e teste A/B
Desde a versão 1.3.0, o separador Estatísticas e A/B mede o que o banner obtém realmente. O módulo conta as exibições e não apenas as respostas: é isso que torna a taxa de aceitação calculável.
- Indicadores: exibições, taxa de resposta, taxa de «aceitar tudo», taxa de recusa, proporção de escolhas personalizadas, opt-in por categoria, repartição computador / telemóvel e evolução diária, em 7, 30, 90 ou 365 dias, ou sobre todo o histórico.
- Privacidade: os contadores são agregados por dia, variante e tipo de dispositivo na tabela
dftac_banner_stats. Nenhum dado pessoal, nenhum identificador de visitante, nenhum cookie. Uma exibição é contada uma única vez por visita, graças a um marcador local de sessão. - Robots: um filtro de user-agent do lado do servidor afasta os motores de busca e as ferramentas de auditoria, e a exibição só é contabilizada no primeiro gesto do visitante (ponteiro, tecla, deslocamento ou resposta). Sem esse filtro, os robots que executam JavaScript inflacionam o denominador sem nunca responder e puxam a taxa para baixo.
- Exportação e reposição: exportação CSV dos contadores e botão de reposição, ambos independentes do registo RGPD.
Lançar um teste A/B
- Ative o teste e defina a parte do tráfego enviada para a variante B. 50 % dá o resultado legível mais depressa.
- Preencha apenas os campos que quer testar: título, mensagem, etiquetas dos três botões, posição. Os campos deixados vazios herdam a variante A.
- Deixe correr. O sorteio mantém-se estável durante toda a visita.
- Leia o veredicto: o módulo compara as duas taxas com um teste z sobre duas proporções e só anuncia um vencedor acima de 100 exibições por variante e com uma diferença significativa a 95 %.
- Copie o texto vencedor para a variante A e desligue o teste.
A definição que mais mexe na taxa de aceitação é a posição: compare a modal centrada com o cartão ao canto antes de trabalhar as formulações.
Google Consent Mode v2
Obrigatório desde março de 2024 para os anunciantes europeus, o Consent Mode v2 permite à Google modelar as conversões mesmo em caso de recusa. O módulo emite os sete sinais exigidos (ad_storage, ad_user_data, ad_personalization, analytics_storage, functionality_storage, personalization_storage, security_storage) como default no <head>, antes de qualquer tag, e atualiza-os assim que o visitante responde. Cada estado predefinido é configurável, sendo denied recomendado no EEE.
Particularidade: o estado predefinido é deduzido do cookie de consentimento existente quando este existe. Quem já aceitou obtém granted desde o primeiro frame, sem janela denied transitória a cortar as suas conversões do Google Ads a cada recarregamento. Do lado do servidor e do navegador é usada a mesma tabela de correspondência serviço-sinal, para que o estado predefinido e a atualização coincidam sempre.
wait_for_update define quanto tempo a Google espera pelo banner antes de enviar dados. 500 ms é o valor recomendado.
Stripe e os cookies estritamente necessários
Os cookies do Stripe (__stripe_mid, __stripe_sid) são necessários para prevenir a fraude no pagamento e beneficiam da isenção prevista para rastreadores estritamente necessários: bloqueá-los quebraria o processo de compra. Quando o serviço Stripe está ativado, carrega sem pedir consentimento e aparece no painel de preferências em Essenciais e pagamento com a etiqueta Sempre ativo. O visitante fica informado e nenhum pagamento é bloqueado.
Retirar o consentimento
O RGPD exige que retirar o consentimento seja tão simples como dá-lo. Existem três formas, combináveis:
- a pastilha flutuante mostrada após a escolha, ativável no separador Geral;
- um link no rodapé:
<a href="#tarteaucitron">Gerir os meus cookies</a>; - uma chamada JavaScript:
dftacOpenPreferences(), a partir de qualquer elemento do seu tema.
Se desativar a pastilha, implemente uma das outras duas. Sem isso, o visitante deixa de poder voltar atrás na sua escolha.
Serviços personalizados
O separador Serviços personalizados acrescenta qualquer script de terceiros ausente da lista: uma chave única em minúsculas, um nome apresentado, uma categoria (analytic, ads, social, video, support, api ou other), o JS executado apenas após o consentimento, os nomes dos cookies colocados e um URL de política de privacidade. Aparecem no banner numa categoria própria com o seu interruptor, e a categoria determina o sinal Consent Mode associado.
O código introduzido aqui é executado tal como está no front-office. Cole apenas código cuja origem controle.
Registo de consentimento
O artigo 7.º do RGPD obriga a demonstrar que o consentimento foi dado. O separador Registo RGPD mostra os registos página a página, cada um com data e hora, o identificador de visitante anónimo, as categorias aceites e o detalhe serviço a serviço.
- O endereço IP nunca é guardado em claro: apenas uma impressão HMAC-SHA256 salgada com uma chave própria da loja. Um SHA-256 sem sal seria recuperável por força bruta sobre o espaço IPv4.
- O identificador do visitante vem de um cookie técnico dedicado e não contém dados pessoais.
- Uma desduplicação no servidor ignora um segundo envio idêntico do mesmo visitante em menos de 5 segundos, neutralizando os duplos cliques.
- O envio do consentimento usa
keepalive: chega mesmo que o visitante mude de página logo a seguir à escolha. - Uma limpeza automática elimina as entradas para além do período de conservação que definir. Corre ao abrir a página de configuração, no máximo uma vez por dia.
- Exportar para CSV produz um ficheiro com data e hora, em UTF-8 com BOM para abrir corretamente no Excel.
- O registo é conservado se desinstalar o módulo, preservando a sua pista de auditoria.
- O registo pode ser desativado se não quiser conservar esta prova.
Multiloja
Cada loja tem a sua própria configuração: serviços ativados, textos, cores, posição e definições de Consent Mode. O aviso no topo do ecrã de configuração lembra qual a loja que está a editar.
Resolução de problemas
- O banner não aparece: confirme que o módulo está ativado no separador Geral, limpe a cache do PrestaShop e certifique-se de que não há outro módulo de consentimento ativo em paralelo.
- As escolhas não são memorizadas: apague o cookie de consentimento antigo no navegador antes de testar de novo e verifique se o nome do cookie não mudou desde o último consentimento.
- Um serviço não carrega após a aceitação: confirme que o identificador está preenchido. Um identificador vazio num serviço ativado é assinalado a vermelho na tabela.
- A análise não deteta nada: navegue primeiro no front-office no mesmo navegador e volte a lançá-la.
- Nada no registo: confirme que o registo está ativado no separador Registo RGPD e dê novamente consentimento a partir do front numa janela privada.
- Uma alteração ao módulo não produz efeito: limpe a cache do PrestaShop e, se o seu alojamento usar OPcache, recarregue o PHP. O script de atualização limpa o OPcache automaticamente quando pode.
Precisa de ajuda? Contacte o suporte DataFireFly a partir da sua conta de cliente, resposta em 24 h úteis.