Advanced Cookie & Consent Manager
Guia completo de configuração, modelo de consentimento, integração Google, opt-out EUA, relatórios de conformidade e testes operacionais.
1. Visão geral
O plugin local_advancedcookiebanner gere o consentimento de cookies/trackers, bloqueia categorias opcionais antes do consentimento, regista decisões e suporta cenários de privacidade (incluindo opt-out EUA).
2. Instalação
- Coloque o plugin em
/local/advancedcookiebanner. - Execute a atualização a partir de
/admin. - Execute Purge all caches.
3. Definições
Caminho: Site administration -> Plugins -> Local plugins -> Advanced Cookie Banner
| Área | Opções | Descrição |
|---|---|---|
| Core | enabled, consentversion, consentexpirydays, logretentiondays | Ativação, versionamento e ciclo de vida das evidências de consentimento. |
| Regulamentos | jurisdictionprofile, showdonotsellshare, respectdnt, respectgpc | Perfil de jurisdição e sinais de privacidade do navegador. |
| UI | bannerposition, showfloatingbutton, floatingbuttonposition, hidefloatingafteraccept | Posicionamento do banner/botão; hidefloatingafteraccept ativa a ação Close permanently no cabeçalho do modal. |
| Secções do modal | showcategoriessection, showpolicydetailssection, toggles de categorias | Controlo da visibilidade das secções do modal. |
enablega4, enablegtm, gtmconsentmode | Controlo de carregamento do Google e sinalização de consentimento. |
4. Modelo de consentimento
Estados: accepted_all, rejected_all, custom, withdrawn, us_optout.
Categorias: necessary, preferences, analytics, marketing, externalmedia.
Scripts personalizados
<script type="text/plain" data-cookie-category="analytics" data-src="https://example.com/script.js"></script>
Embeds
<iframe data-cookie-category="externalmedia" src="https://www.youtube.com/embed/..."></iframe>
5. GA4 / GTM
- GA4/GTM só iniciam após consentimento
analytics. - Com
gtmconsentmode=1, as atualizações de consentimento são enviadas ao Google. - Sem consentimento analytics = sem pedidos ao Google Analytics/Tag Manager.
6. „Não vender/partilhar”
O clique guarda us_optout e aplica marketing=false.
7. Relatório de conformidade
Relatório: /local/advancedcookiebanner/report.php
- lista de verificação de configuração,
- cartões de estatísticas de evidências de consentimento,
- matriz de prontidão por framework.
- Página de relatório Cookie Scanner:
/local/advancedcookiebanner/scannerreport.php. - As tabelas do scanner suportam pesquisa e filtragem por coluna; URLs longos ajustam-se de forma responsiva.
8. Endpoints e dados
/local/advancedcookiebanner/consent.php- endpoint de escrita de decisões./local/advancedcookiebanner/client_privacy.php- exportar/eliminar paraclientidanónimo com token HMAC.- Tabela:
local_acbanner_consent. - Tabela:
local_acbanner_scan_run(metadados de execução do scanner). - Tabela:
local_acbanner_scan_finding(achados detetados pelo scanner). /local/advancedcookiebanner/scanner.php- endpoint AJAX do scanner manual.
9. Cobertura regulatória
A cobertura indica suporte técnico aos controlos. A conformidade legal final depende do deployment real, configuração e validação legal da sua organização.
10. Testes
- Incógnito: verificar primeira camada e simetria Accept/Reject.
- Teste de categorias: preferences/analytics/marketing/externalmedia.
- Teste de retirada de consentimento e limpeza de cookies.
- Teste de opt-out EUA e estado
us_optout. - Rede: sem pedidos ao Google antes do consentimento analytics.
- Teste de fumo do scanner: executar
Run scanna página de relatório do scanner. - Teste de página alvo: executar
Scan selected pagee verificar retorno + achados.
Teste de reset de estado (QA)
Para testar do zero sem fechar o navegador, limpe o estado local de consentimento:
localStorage.removeItem("local_advancedcookiebanner_consent");
localStorage.removeItem("local_advancedcookiebanner_clientid");
localStorage.removeItem("local_advancedcookiebanner_clienttoken");
document.cookie = "acb_consent_state=; Max-Age=0; path=/";
document.cookie = "acb_consent_version=; Max-Age=0; path=/";
document.cookie = "acb_clientid=; Max-Age=0; path=/";
document.cookie = "acb_consent_payload=; Max-Age=0; path=/";
location.reload();
Nota: no modo incógnito, as decisões são geralmente recordadas na mesma sessão de janela privada. Após fechar todas as janelas privadas, o estado deve ser reposto.
11. Resolução de problemas
- Assets antigos:
Purge all caches+ hard refresh. - Sem acesso ao relatório: verificar capability
local/advancedcookiebanner:managelogs. - O script inicia sem consentimento: verificar
type="text/plain"edata-cookie-category.