KConsensio: documentazione

🇮🇹 Italiano · 🇬🇧 English

Documentazione di KConsensio

KConsensio mostra il banner dei cookie, blocca script e iframe di terze parti finché il visitatore non dà il consenso e registra ogni scelta in un registro consultabile. Questa guida descrive l'installazione e tutte le schermate di amministrazione. Per la presentazione del prodotto e il download vedi la pagina di KConsensio.

Requisiti

  • Joomla 5.x o 6.x
  • PHP 8.1 o superiore (8.3 o superiore con Joomla 6)
  • MySQL o MariaDB
  • Estensione PHP ZIP, solo per l'esportazione del registro in formato XLSX (il CSV funziona sempre)

Installazione

  1. Scarica kconsensio.zip e installalo da Sistema → Installa → Estensioni → Carica pacchetto. Il pacchetto contiene il componente, il plugin di sistema e il plugin per le attività pianificate.
  2. Vai in Sistema → Gestione → Plugin, cerca "KConsensio" e abilita il plugin "System - KConsensio". Come ogni nuovo plugin Joomla parte disabilitato: finché resta così il banner non compare e non viene bloccato nulla. La Dashboard di KConsensio te lo ricorda con un avviso.
  3. Apri Componenti → KConsensio → Informative e controlla il testo del banner e i link a Privacy Policy e Cookie Policy prima di andare online.
  4. Facoltativo: abilita anche "Task - KConsensio" se vuoi la pulizia del registro tramite attività pianificata (vedi più avanti).

Gli aggiornamenti arrivano come per ogni estensione Joomla, da Sistema → Aggiorna → Estensioni. Aggiornando, configurazione, informative e registro restano intatti.

Come funziona

  • A ogni pagina del sito il plugin di sistema analizza l'HTML generato e neutralizza gli script e gli iframe che corrispondono a un servizio del catalogo, prima che il browser li carichi.
  • Il visitatore vede il banner con Accetta tutto, Rifiuta non essenziali e Gestisci preferenze (scelta per categoria).
  • Dopo il consenso, gli elementi delle categorie accettate vengono riattivati sulla pagina senza ricaricarla. Gli iframe bloccati mostrano un riquadro "Contenuto bloccato" con un pulsante per aprire le preferenze.
  • La scelta è salvata nel browser del visitatore e registrata nel Registro Consensi. Non viene mai memorizzato l'indirizzo IP: il visitatore è identificato da un hash SHA-256 con salt, calcolato su IP troncato e user agent.
  • I servizi della categoria essenziale ("Necessari") non vengono mai bloccati.

Dashboard

La pagina iniziale del componente mostra:

  • Da controllare: plugin di sistema disabilitato, nessuna informativa attiva, lingue del sito senza informativa, categorie senza traduzione, pacchetti di lingua Joomla mancanti, Scansione Cookie rimasta attiva, nessuna attività pianificata di pulizia.
  • Attività recente (consensi degli ultimi 30 giorni, percentuale di "Accetta tutto", ultimo consenso), impostazioni attive, lingue tradotte e versioni installate.
  • Il riquadro Backup configurazione (vedi più avanti).

Categorie

Le categorie sono cinque, fisse: Necessari (essenziale, sempre attiva), Funzionali, Analitici, Marketing e Contenuti Incorporati. Puoi modificarne titolo e descrizione in ogni lingua, cambiarne l'ordine e spubblicare quelle che non ti servono. Una categoria a cui sono ancora assegnati dei servizi non può essere eliminata.

Ogni categoria ha una riga per lingua. La riga con lingua "Tutte" (*) fa da testo generico per le lingue che non hanno una traduzione propria. All'installazione vengono create le traduzioni nelle 8 lingue supportate.

Quando pubblichi o spubblichi una categoria, ai visitatori che avevano già scelto il banner viene riproposto, perché le scelte possibili sono cambiate.

Servizi / Tracciamenti

Il catalogo dei servizi dice a KConsensio cosa bloccare. All'installazione contiene 18 servizi comuni: Google Analytics (GA4 e Universal), Google Tag Manager, Google Ads, Meta/Facebook Pixel, YouTube, Vimeo, Google Maps, Google reCAPTCHA, Hotjar, Microsoft Clarity, LinkedIn Insight Tag, TikTok Pixel, Pinterest Tag, Twitter/X Ads Pixel, Instagram, Disqus e Spotify.

Campi di un servizio:

  • Titolo e Fornitore.
  • Categoria: il servizio viene sbloccato quando il visitatore accetta quella categoria.
  • Tipo di Corrispondenza: Attributo src di script/iframe (l'indirizzo da cui viene caricato), Contenuto script inline (il codice scritto direttamente nella pagina) oppure Entrambi.
  • Pattern (PCRE, senza delimitatori): un'espressione regolare, per esempio googletagmanager\.com/gtag/js. Per più indirizzi dello stesso servizio separali con |; un a capo non funziona come separatore.
  • Flag del Pattern: i (maiuscole/minuscole indifferenti) è consigliato quasi sempre.
  • Nomi dei Cookie e URL Privacy del Fornitore: solo informativi, non compaiono nel banner. Servono come promemoria quando scrivi la tua cookie policy e alla Scansione Cookie.

Per aggiungere un servizio non previsto apri la pagina dove viene caricato, guarda nel codice sorgente l'indirizzo dello script o dell'iframe e usa una parte stabile di quell'indirizzo come pattern. I servizi che aggiungi non vengono mai sovrascritti dagli aggiornamenti.

Informative

Un'informativa è il testo del banner per una lingua. Può esserci una sola informativa attiva per lingua; quella con lingua "Tutte" (*) vale per le lingue che non ne hanno una propria. All'installazione vengono attivate le informative per le lingue pubblicate sul sito.

  • Titolo del Banner e Testo del Banner (il testo è obbligatorio).
  • Testo pulsante Accetta e Testo pulsante Rifiuta: facoltativi; se vuoti si usano le traduzioni del plugin.
  • URL Informativa Privacy e URL Informativa Cookie: indirizzo completo https://… oppure relativo al sito, che inizia con /.
  • Pulsante/Link Privacy Policy e Pulsante/Link Cookie Policy (codice grezzo): per chi usa un servizio esterno che fornisce un pulsante già pronto. Il codice viene inserito così com'è, quindi incolla solo codice di fonti affidabili.
  • In Vigore Dal e Attiva.

Azioni utili nell'elenco:

  • Attiva: rende attiva l'informativa e disattiva l'eventuale altra della stessa lingua. Ai visitatori che avevano già scelto il banner viene riproposto.
  • Duplica: crea una copia inattiva, comoda come base per tradurre l'informativa in un'altra lingua.
  • Anteprima banner (dentro la modifica): mostra il banner con il testo che stai scrivendo, anche se non è ancora salvato, e permette di provare posizioni e temi. Nell'anteprima non viene registrato alcun consenso.
  • Forza nuovo consenso: ripropone il banner a tutti i visitatori. Da usare dopo un cambiamento sostanziale che non passa già dalle categorie (per esempio una nuova finalità).

Per ogni consenso il registro conserva il testo esatto dell'informativa mostrato in quel momento, anche se in seguito la modifichi.

Registro Consensi

Ogni scelta di un visitatore aggiunge una riga che non può essere modificata: data, informativa, azione (Accetta tutto, Rifiuta tutto, Selezione personalizzata, Revocato, Rifiutato (GPC), Rifiutato (DNT)) e la risposta per ogni categoria. Un trattino in una colonna categoria indica che quella categoria non esisteva o non era pubblicata al momento del consenso.

  • Riepilogo consensi e Andamento nel tempo: conteggi, percentuali e grafico giornaliero, calcolati con gli stessi filtri dell'elenco.
  • Filtri per Consent UID, informativa, azione e intervallo di date.
  • Esporta CSV ed Esporta XLSX dei risultati filtrati.
  • Icona per vedere il testo dell'informativa mostrato al visitatore in quel momento.

Un visitatore chiede se ha dato il consenso? Chiedigli di aprire gli strumenti per sviluppatori del browser (F12) → Archiviazione/Applicazione → Cookie del tuo sito e di copiarti il valore del cookie kconsensio_uid. Incollalo in Cerca per Consent UID: vedrai informativa, categorie e data della sua scelta. Nessun risultato significa che non c'è un consenso registrato per quell'identificativo (cookie cancellati, altro dispositivo o riga già eliminata per scadenza).

Conservazione e pulizia del registro

Ogni riga riceve una data di scadenza calcolata con Conservazione Registro (giorni). Le righe scadute vengono eliminate in tre modi indipendenti:

  • automaticamente dal plugin di sistema, durante la normale navigazione del sito;
  • con l'attività pianificata "KConsensio - Svuota Registro Consensi Scaduti": abilita il plugin "Task - KConsensio", poi creala in Sistema → Attività pianificate → Nuovo. È la soluzione consigliata sui siti con poco traffico;
  • a mano con il pulsante Svuota Scaduti nel Registro, con barra di avanzamento.

Applica Conservazione allo Storico assegna una scadenza alle righe che non ne hanno una. Non cancella nulla: le righe che risultano scadute vanno poi eliminate con "Svuota Scaduti".

Scansione Cookie

Strumento diagnostico, spento per impostazione predefinita. Attivalo in Opzioni → Scansione Cookie, naviga il sito per qualche minuto accettando i cookie, poi apri Componenti → KConsensio → Scansione Cookie. Vedrai i nomi dei cookie trovati (mai i valori): in verde quelli già associati a un servizio tramite il campo "Nomi dei Cookie", in arancione quelli sconosciuti, da verificare. Il browser non permette di vedere i cookie impostati dentro iframe di altri domini (YouTube, Maps…); per quelli usa gli strumenti per sviluppatori. A fine verifica spegni la scansione e usa Svuota Elenco prima di una nuova verifica.

Opzioni

In Componenti → KConsensio → Opzioni. Tra parentesi il valore predefinito.

Impostazioni di Base

  • Attiva Blocco Automatico degli Script (Sì): il blocco preventivo di script e iframe.
  • Scadenza Cookie di Consenso (giorni) (180, da 30 a 365): dopo quanto tempo il banner viene riproposto.
  • Conservazione Registro (giorni) (365): dopo quanto tempo le righe del registro scadono. Deve essere maggiore o uguale alla scadenza del consenso, oppure 0 per non eliminare mai automaticamente.

Impostazioni avanzate (tutte spente per impostazione predefinita)

  • Attiva Segnali Google Consent Mode v2: invia a Google i segnali di consenso (stato iniziale "denied", poi aggiornato alla scelta del visitatore). Non carica alcuno script Google prima del consenso: Analytics, Ads e Tag Manager restano bloccati come gli altri servizi.
  • Rispetta il Global Privacy Control: ai visitatori con GPC attivo il banner non viene mostrato e le categorie non essenziali risultano rifiutate (registrate come "Rifiutato (GPC)").
  • Rispetta il Do Not Track: stesso comportamento per il segnale DNT (registrato come "Rifiutato (DNT)").

In entrambi i casi il visitatore può comunque riaprire le preferenze e accettare singole categorie.

Impostazioni banner

  • Posizione del Banner (Barra in basso): barra in basso o in alto, riquadro centrale, riquadro in basso o in alto.
  • Tema del Banner (Chiaro): Chiaro, Scuro o Automatico (segue le preferenze del visitatore).
  • Sfondo Dietro al Banner (Nessuno): Oscura o Sfoca la pagina mentre è visibile il primo banner. La pagina resta sempre cliccabile: non è un "cookie wall".
  • Mostra Credit "Powered by" (Sì): piccolo link in fondo al pannello preferenze, disattivabile.
  • Anteprima banner: mostra il banner con posizione e tema selezionati e il testo dell'informativa attiva.
  • Mostra Link Fisso 'Impostazioni Cookie' (Sì), con Stile (Testuale, Icona, Icona e scritta) e Posizione (Sinistra, Destra): un link sempre visibile per modificare o revocare il consenso.
  • Link 'Impostazioni Cookie' (posizionamento manuale): codice pronto da copiare in un modulo HTML personalizzato o nel template, per esempio nel footer. Il testo del link si adatta da solo alla lingua del visitatore:
    <a href='#' onclick='window.KConsensio.openPreferences(); return false;' data-kconsensio-i18n='cookieSettings'>Impostazioni Cookie</a>

Scansione Cookie: Attiva Scansione Cookie (No), vedi sopra.

Permessi: oltre ai permessi standard di Joomla c'è Esporta Registro Consensi, per decidere quali gruppi possono scaricare il registro.

Siti multilingua

  • Crea un'informativa attiva per ogni lingua del sito (parti da Duplica), più una con lingua "Tutte" (*) come riserva.
  • Le categorie hanno già le traduzioni nelle 8 lingue supportate; per altre lingue aggiungi una traduzione dall'elenco Categorie.
  • I pulsanti fissi del banner usano i file di lingua del plugin: installa il pacchetto di lingua Joomla corrispondente, altrimenti appaiono in inglese.
  • Il consenso vale per tutto il sito: cambiare lingua non ripropone il banner.

Backup della configurazione

Dal riquadro Backup configurazione della Dashboard, Esporta configurazione salva Opzioni, Categorie, Servizi e Informative in un unico file JSON; Importa lo ricarica. Serve prima di una disinstallazione o per copiare la configurazione su un altro sito (dopo l'import controlla URL e testi). Il registro dei consensi e la chiave segreta per gli hash non vengono mai esportati.

Domande frequenti

Il banner non compare. Controlla che il plugin "System - KConsensio" sia abilitato e che esista un'informativa attiva per la lingua del visitatore oppure con lingua "Tutte": la Dashboard segnala entrambi i problemi. Se hai già fatto una scelta, il banner non riappare: prova in una finestra anonima.

Uno script viene caricato anche senza consenso. Probabilmente non corrisponde a nessun servizio del catalogo: aggiungi un servizio con un pattern che corrisponde al suo indirizzo. Verifica anche che la categoria del servizio non sia quella essenziale.

Un contenuto che deve funzionare sempre viene bloccato. Sposta il servizio nella categoria Necessari oppure rendi il pattern più specifico.

Uso un plugin di cache o di ottimizzazione. Il blocco avviene sull'HTML generato da Joomla: se qualcosa sfugge, svuota la cache e controlla che l'ottimizzazione non sposti o unisca gli script di terze parti.

KConsensio mi rende conforme al GDPR? È uno strumento tecnico, non una consulenza legale. La conformità dipende anche dai testi delle informative e da un catalogo dei servizi aggiornato rispetto a ciò che il sito carica davvero.

Disinstallazione

Prima di disinstallare, esporta la configurazione se pensi di reinstallare. Disinstalla il pacchetto "KConsensio" da Sistema → Gestione → Estensioni: vengono rimossi componente, plugin, categorie, servizi e informative. Il Registro Consensi e la chiave segreta per gli hash restano invece nel database, perché il registro è la prova dei consensi raccolti: reinstallando, lo ritrovi intatto. Se non ti serve più, le tabelle #__kconsensio_log e #__kconsensio_salt vanno eliminate a mano (per esempio da phpMyAdmin).

Supporto

Vedi la pagina Supporto.


KConsensio documentation

KConsensio shows the cookie banner, blocks third-party scripts and iframes until the visitor consents, and records every choice in a searchable log. This guide covers installation and every admin screen. For the product overview and download, see the KConsensio page.

Requirements

  • Joomla 5.x or 6.x
  • PHP 8.1 or later (8.3 or later on Joomla 6)
  • MySQL or MariaDB
  • PHP ZIP extension, only for exporting the log as XLSX (CSV always works)

Installation

  1. Download kconsensio.zip and install it from System → Install → Extensions → Upload Package File. The package contains the component, the system plugin and the scheduled-task plugin.
  2. Go to System → Manage → Plugins, search for "KConsensio" and enable the "System - KConsensio" plugin. Like every new Joomla plugin it starts disabled: until you enable it, no banner is shown and nothing is blocked. The KConsensio Dashboard reminds you with a warning.
  3. Open Components → KConsensio → Policies and review the banner text and the Privacy Policy and Cookie Policy links before going live.
  4. Optional: also enable "Task - KConsensio" if you want consent-log cleanup through a scheduled task (see below).

Updates arrive like for any Joomla extension, from System → Update → Extensions. Configuration, policies and log are kept when updating.

How it works

  • On every page, the system plugin parses the generated HTML and neutralises the script and iframe tags that match a service in the catalog, before the browser loads them.
  • The visitor sees the banner with Accept all, Reject non-essential and Manage preferences (per-category choice).
  • After consent, the items of the accepted categories are re-enabled on the page without reloading it. Blocked iframes show a "Content blocked" box with a button that opens the preferences.
  • The choice is stored in the visitor's browser and recorded in the Consent Log. The IP address is never stored: the visitor is identified by a salted SHA-256 hash of a truncated IP and the user agent.
  • Services in the essential category ("Necessary") are never blocked.

Dashboard

The component's start page shows:

  • Needs attention: system plugin disabled, no active policy, site languages without a policy, categories without a translation, missing Joomla language packs, Cookie Scan left on, no scheduled cleanup task.
  • Recent activity (consents in the last 30 days, "Accept all" rate, last consent), active settings, translated languages and installed versions.
  • The Configuration Backup box (see below).

Categories

There are five fixed categories: Necessary (essential, always on), Functional, Analytics, Marketing and Embedded Content. You can edit their title and description in each language, reorder them and unpublish the ones you do not need. A category that still has services assigned cannot be deleted.

Each category has one row per language. The row with language "All" (*) is the generic text for languages without their own translation. Translations for the 8 supported languages are created on install.

When you publish or unpublish a category, visitors who already made a choice are shown the banner again, because the available choices have changed.

Services / Trackers

The service catalog tells KConsensio what to block. On install it contains 18 common services: Google Analytics (GA4 and Universal), Google Tag Manager, Google Ads, Meta/Facebook Pixel, YouTube, Vimeo, Google Maps, Google reCAPTCHA, Hotjar, Microsoft Clarity, LinkedIn Insight Tag, TikTok Pixel, Pinterest Tag, Twitter/X Ads Pixel, Instagram, Disqus and Spotify.

Service fields:

  • Title and Vendor.
  • Category: the service is unblocked when the visitor accepts that category.
  • Match Type: Script/iframe src attribute (the address it loads from), Inline script content (code written directly in the page) or Both.
  • Pattern (PCRE, no delimiters): a regular expression, for example googletagmanager\.com/gtag/js. For several addresses of the same service, separate them with |; a line break does not work as a separator.
  • Pattern Flags: i (case-insensitive) is recommended in almost every case.
  • Cookie Names and Vendor Privacy Policy URL: informational only, not shown in the banner. Useful as a reference when writing your cookie policy, and used by the Cookie Scan.

To add a service that is not in the catalog, open the page where it loads, find the script or iframe address in the page source and use a stable part of that address as the pattern. Services you add are never overwritten by updates.

Policies

A policy is the banner text for one language. Only one policy can be active per language; the one with language "All" (*) applies to languages that have none of their own. On install, the policies for the languages published on the site are activated.

  • Banner Title and Banner Text (the text is required).
  • Accept Button Text and Reject Button Text: optional; when empty, the plugin's translations are used.
  • Privacy Policy URL and Cookie Policy URL: a full https://… address or a site-relative one starting with /.
  • Privacy Policy Button/Link and Cookie Policy Button/Link (raw code): for external services that provide a ready-made button. The code is inserted exactly as pasted, so only paste code from sources you trust.
  • Effective From and Active.

Useful actions in the list:

  • Activate: makes the policy active and deactivates any other one in the same language. Visitors who already made a choice are shown the banner again.
  • Duplicate: creates an inactive copy, handy as a starting point for translating the policy into another language.
  • Preview banner (in the edit screen): shows the banner with the text you are typing, even before saving, and lets you try positions and themes. No consent is recorded in the preview.
  • Force Re-consent: shows the banner again to every visitor. Use it after a substantive change that does not already go through the categories (for example a new processing purpose).

For each consent, the log keeps the exact policy text shown at that moment, even if you edit the policy later.

Consent Log

Each visitor choice adds a row that cannot be edited: date, policy, action (Accept all, Reject all, Custom selection, Withdrawn, Rejected (GPC), Rejected (DNT)) and the answer for each category. A dash in a category column means that category did not exist or was not published when the consent was given.

  • Consent breakdown and Trend over time: counts, percentages and a daily chart, computed with the same filters as the list.
  • Filters by Consent UID, policy, action and date range.
  • Export CSV and Export XLSX of the filtered results.
  • An icon to view the policy text the visitor saw at that moment.

A visitor asks whether they gave consent? Ask them to open their browser's developer tools (F12) → Storage/Application → Cookies for your site and send you the value of the kconsensio_uid cookie. Paste it into Search by Consent UID: you will see the policy, categories and date of their choice. No result means no consent is on record for that identifier (cookies cleared, another device, or the row already removed at expiry).

Log retention and cleanup

Each row gets an expiry date based on Log Retention (days). Expired rows are removed in three independent ways:

  • automatically by the system plugin, during normal site browsing;
  • with the scheduled task "KConsensio - Purge Expired Consent Log": enable the "Task - KConsensio" plugin, then create the task in System → Scheduled Tasks → New. Recommended on low-traffic sites;
  • manually with the Purge Expired button in the log, with a progress bar.

Apply Retention to Historical Rows sets an expiry date on rows that have none. It does not delete anything: rows that turn out to be expired are then removed with "Purge Expired".

Cookie Scan

A diagnostic tool, off by default. Turn it on in Options → Cookie Scan, browse the site for a few minutes accepting cookies, then open Components → KConsensio → Cookie Scan. You will see the names of the cookies found (never their values): green when already matched to a service through its "Cookie Names" field, orange when unknown and worth checking. Browsers do not allow seeing cookies set inside iframes from other domains (YouTube, Maps…); use the developer tools for those. When you are done, turn the scan off and use Clear List before a new pass.

Options

In Components → KConsensio → Options. Default values in brackets.

Basic Settings

  • Enable Automatic Script Blocking (Yes): the preventive blocking of scripts and iframes.
  • Consent Cookie Expiry (days) (180, 30 to 365): after how long the banner is shown again.
  • Log Retention (days) (365): after how long log rows expire. Must be greater than or equal to the consent expiry, or 0 to never purge automatically.

Advanced Settings (all off by default)

  • Enable Google Consent Mode v2 Signals: sends Google the consent signals (initial state "denied", then updated to the visitor's choice). It does not load any Google script before consent: Analytics, Ads and Tag Manager stay blocked like every other service.
  • Honor Global Privacy Control: visitors with GPC enabled do not see the banner and non-essential categories are treated as rejected (logged as "Rejected (GPC)").
  • Honor Do Not Track: same behaviour for the DNT signal (logged as "Rejected (DNT)").

In both cases the visitor can still reopen the preferences and accept individual categories.

Banner Settings

  • Banner Position (Bottom bar): bottom or top bar, center popup, bottom or top card.
  • Banner Theme (Light): Light, Dark or Auto (follows the visitor's system preference).
  • Banner Backdrop (None): Dim or Blur the page while the first banner is showing. The page always stays clickable: it is not a "cookie wall".
  • Show "Powered by" Credit (Yes): a small link at the bottom of the preferences panel, can be switched off.
  • Banner preview: shows the banner with the selected position and theme and the active policy's text.
  • Show Persistent 'Cookie Settings' Link (Yes), with Floating Link Style (Text, Icon, Icon and text) and Floating Link Position (Left, Right): an always-visible link to change or withdraw consent.
  • 'Cookie Settings' Link (manual placement): ready-to-copy code for a Custom HTML module or your template, for example in the footer. The link text adapts to the visitor's language automatically:
    <a href='#' onclick='window.KConsensio.openPreferences(); return false;' data-kconsensio-i18n='cookieSettings'>Cookie Settings</a>

Cookie Scan: Enable Cookie Scan (No), see above.

Permissions: besides the standard Joomla permissions there is Export Consent Log, to choose which groups can download the log.

Multilingual sites

  • Create an active policy for each site language (start from Duplicate), plus one with language "All" (*) as a fallback.
  • Categories already have translations in the 8 supported languages; for other languages, add a translation from the Categories list.
  • The banner's fixed buttons use the plugin's language files: install the matching Joomla language pack, otherwise they appear in English.
  • Consent applies to the whole site: switching language does not show the banner again.

Configuration backup

From the Dashboard's Configuration Backup box, Export Configuration saves Options, Categories, Services and Policies to a single JSON file; Import loads it back. Use it before uninstalling or to copy the configuration to another site (check URLs and texts after importing). The consent log and the secret hash key are never exported.

FAQ

The banner does not appear. Check that the "System - KConsensio" plugin is enabled and that there is an active policy for the visitor's language or with language "All": the Dashboard reports both problems. If you have already made a choice the banner does not come back: try a private window.

A script loads even without consent. It probably does not match any service in the catalog: add a service with a pattern matching its address. Also check that the service is not in the essential category.

Content that must always work is blocked. Move the service to the Necessary category or make its pattern more specific.

I use a caching or optimisation plugin. Blocking works on the HTML generated by Joomla: if something slips through, clear the cache and make sure the optimisation does not move or merge third-party scripts.

Does KConsensio make me GDPR compliant? It is a technical tool, not legal advice. Compliance also depends on your policy texts and on a service catalog that matches what your site actually loads.

Uninstalling

Before uninstalling, export the configuration if you plan to reinstall. Uninstall the "KConsensio" package from System → Manage → Extensions: the component, plugins, categories, services and policies are removed. The Consent Log and the secret hash key stay in the database, because the log is the proof of the consents you collected: if you reinstall, you find it intact. If you no longer need it, drop the #__kconsensio_log and #__kconsensio_salt tables manually (for example from phpMyAdmin).

Support

See the Support page.