Εισαγωγή
Το CookiePilot είναι μια πλατφόρμα διαχείρισης συγκαταθέσεων για cookies (CMP), συμβατή με τον ΓΚΠΔ, τον ελληνικό νόμο για το ηλεκτρονικό απόρρητο (ν. 3471/2006) και το Google Consent Mode v2. Αυτοί είναι οι κανόνες που εφαρμόζει η Αρχή Προστασίας Δεδομένων Προσωπικού Χαρακτήρα (ΑΠΔΠΧ).
Για ποιους
- Ιδιοκτήτες ιστοτόπων: ενσωμάτωση χωρίς προγραμματισμό.
- Προγραμματιστές: API, events, ενσωματώσεις με το GTM.
- Agencies: white-label, διαχείριση πολλαπλών domains.
Γρήγορη εκκίνηση
Βήμα 1: Εγγραφή
- Δημιουργήστε λογαριασμό στο app.cookiepilot.io/register.
- Προσθέστε το domain στον πίνακα και αντιγράψτε το κλειδί API (μορφή
cp_live_...).
Βήμα 2: Εγκατάσταση του κώδικα
Η απευθείας εγκατάσταση γίνεται με δύο scripts στην ενότητα <head>, με αυτή τη σειρά.
Βήμα 2α: Προεπιλεγμένες συγκαταθέσεις (inline stub). Επικολλήστε το πρώτο, πριν από οποιοδήποτε άλλο script (cookiepilot.js, GA, GTM, διαφημιστικά tags και tags παρακολούθησης):
<script>"use strict";(function(){window.dataLayer=window.dataLayer||[];var d={ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500},h=false;try{for(var i=0;i<window.dataLayer.length;i++){var x=window.dataLayer[i];if(x&&x[0]==="consent"&&x[1]==="default"){h=true;break}}}catch(err){}if(!h&&window.dataLayer.length)window.dataLayer.unshift(["consent","default",d]);window.gtag=function(){window.dataLayer.push(arguments)};if(!h)window.gtag("consent","default",d);var a=document.cookie.match(/(^|)cookiepilot_consent=([^;]+)/);if(a){try{var e=JSON.parse(decodeURIComponent(a[2]));window.gtag("consent","update",{analytics_storage:e.analytics?"granted":"denied",ad_storage:e.marketing?"granted":"denied",ad_user_data:e.marketing?"granted":"denied",ad_personalization:e.marketing?"granted":"denied",functionality_storage:e.preferences?"granted":"denied",personalization_storage:e.preferences?"granted":"denied",security_storage:"granted"})}catch(err){}}})();</script>
Αυτό το inline snippet ορίζει αμέσως όλες τις κατηγορίες σε denied (με wait_for_update: 500), έτσι ώστε η προεπιλεγμένη κατάσταση του Google Consent Mode v2 να είναι έτοιμη προτού φορτωθεί οτιδήποτε άλλο. Για έναν επανερχόμενο χρήστη διαβάζει αμέσως την αποθηκευμένη συγκατάθεση από το cookie και στέλνει ένα consent update.
Βήμα 2β: Script του banner. Προσθέστε το αμέσως μετά το inline stub:
<!-- CookiePilot -->
<script async src="https://cdn.cookiepilot.io/cookiepilot.js" data-cpkey="TWOJ_KLUCZ"></script>
Βήμα 3: Διαμόρφωση του banner
Στον πίνακα: Domain → Διαμόρφωση → Εμφάνιση:
- θέση του banner (πάνω, κάτω, modal),
- χρώματα και κείμενα,
- πλωτό κουμπί "Ρυθμίσεις cookies" για επανερχόμενους χρήστες.
Ενσωμάτωση με το Google Tag Manager
Μέσω του GTM εγκαθιστάτε το CookiePilot με ένα μόνο tag Custom HTML, το οποίο ορίζει αμέσως τις προεπιλεγμένες συγκαταθέσεις και φορτώνει το banner στην πιο πρώιμη φάση του GTM. Δεν χρειάζεστε ξεχωριστό αρχείο stub ούτε δεύτερο tag.
Tag: CookiePilot - Consent Init + Banner
Στο GTM δημιουργήστε ένα tag Custom HTML (Tags → New → Custom HTML) και επικολλήστε:
<script>"use strict";
(function() {
window.dataLayer=window.dataLayer||[];var d={ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500},h=false;try{for(var i=0;i<window.dataLayer.length;i++){var x=window.dataLayer[i];if(x&&x[0]==="consent"&&x[1]==="default"){h=true;break}}}catch(err){}if(!h&&window.dataLayer.length)window.dataLayer.unshift(["consent","default",d]);window.gtag=function(){window.dataLayer.push(arguments)};if(!h)window.gtag("consent","default",d);var a=document.cookie.match(/(^|)cookiepilot_consent=([^;]+)/);if(a){try{var e=JSON.parse(decodeURIComponent(a[2]));window.gtag("consent","update",{analytics_storage:e.analytics?"granted":"denied",ad_storage:e.marketing?"granted":"denied",ad_user_data:e.marketing?"granted":"denied",ad_personalization:e.marketing?"granted":"denied",functionality_storage:e.preferences?"granted":"denied",personalization_storage:e.preferences?"granted":"denied",security_storage:"granted"})}catch(err){}}
var s = document.createElement('script');
s.src = 'https://cdn.cookiepilot.io/cookiepilot.js?cpkey=' + encodeURIComponent('TWOJ_KLUCZ');
document.head.appendChild(s);
})();
</script>
Trigger: Consent Initialization - All Pages. Το tag πρέπει να εκτελείται μία φορά ανά σελίδα. Τα tags της Google (GA4, Google Ads), το Facebook Pixel και άλλα marketing tags ΔΕΝ χρησιμοποιούν τον trigger Consent Initialization, αλλά ενεργοποιούνται αργότερα (Consent Checks ή trigger που εξαρτάται από τη συγκατάθεση). Αποθηκεύστε το tag και δημοσιεύστε το container του GTM.
Σειρά και triggers
| Σειρά | Tag | Trigger |
|---|---|---|
| 1 | CookiePilot - Consent Init + Banner | Consent Initialization - All Pages |
| 2 | GA4, Google Ads, UET | All Pages (το Consent Mode διαχειρίζεται μόνο του τις συγκαταθέσεις) |
| 3 | Facebook Pixel, TikTok, LinkedIn κ.λπ. | Custom Event cookiepilot_consent_update + συνθήκη συγκατάθεσης (δείτε παρακάτω) |
Tags εκτός Google (Facebook Pixel, TikTok, LinkedIn)
Το Google Consent Mode διαχειρίζεται μόνο τα tags της Google. Για τα υπόλοιπα scripts, το widget σε κάθε αλλαγή συγκατάθεσης κάνει push στο dataLayer το event:
dataLayer.push({
event: 'cookiepilot_consent_update',
cookiepilot_consent: {
necessary: true,
analytics: true,
marketing: true,
preferences: false
}
});
Το event στέλνεται επίσης σε κάθε είσοδο επανερχόμενου χρήστη (όταν το widget διαβάσει το cookie με τη συγκατάθεση), έτσι ο trigger στο GTM θα λειτουργήσει σε κάθε επίσκεψη, όχι μόνο στην πρώτη απόφαση.
Κοινό μοτίβο (εκτελέστε το μία φορά)
Αυτά τα τρία στοιχεία τα διαμορφώνετε μία φορά και έπειτα τα χρησιμοποιείτε για όλα τα tags εκτός Google.
- Trigger (Triggers → New → Custom Event): Event name
cookiepilot_consent_update. Χωρίς συνθήκες, χωρίς "Once per page" (το tag πρέπει να μπορεί να ενεργοποιηθεί ξανά μετά από αλλαγή απόφασης). - Data Layer Variable για κάθε κατηγορία που χρησιμοποιείτε:
- Name
cookiepilot_consent.marketing→ μεταβλητή π.χ.dlv.cp_marketing - Name
cookiepilot_consent.analytics→ μεταβλητή π.χ.dlv.cp_analytics - Name
cookiepilot_consent.preferences→ μεταβλητή π.χ.dlv.cp_preferences
- Name
- Trigger Group ή συνθήκη στον trigger:
dlv.cp_marketing equals true(για marketing tags) ή το αντίστοιχο πεδίο.
Σε καθένα από τα παρακάτω παραδείγματα, ο Trigger είναι το ίδιο Custom Event με προσθήκη συνθήκης στην κατάλληλη μεταβλητή.
Facebook Pixel
Tag στο GTM: Tags → New → Custom HTML.
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'YOUR_PIXEL_ID');
fbq('track', 'PageView');
</script>
- Trigger:
cookiepilot_consent_update+ συνθήκηdlv.cp_marketing equals true. - Tag firing options: Once per page.
Προαιρετικά, για πλήρη συμμόρφωση με το Facebook Limited Data Use, προσθέστε ένα δεύτερο tag που καλεί fbq('consent','revoke') με trigger dlv.cp_marketing equals false.
TikTok Pixel
Tag στο GTM: Tags → New → Custom HTML.
<script>
!function (w, d, t) {
w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie","holdConsent","revokeConsent","grantConsent"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js",o=n&&n.partner;ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};n=document.createElement("script");n.type="text/javascript",n.async=!0,n.src=r+"?sdkid="+e+"&lib="+t;e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(n,e)};
ttq.load('YOUR_TIKTOK_PIXEL_ID');
ttq.grantConsent();
ttq.page();
}(window, document, 'ttq');
</script>
- Trigger:
cookiepilot_consent_update+ συνθήκηdlv.cp_marketing equals true. - Tag firing options: Once per page.
Το ttq.grantConsent() είναι το νέο API του TikTok (από το 2024). Χωρίς αυτό, το TikTok λαμβάνει κατακερματισμένα (hashed) δεδομένα χωρίς συγκατάθεση, κάτι που παραβιάζει τους όρους.
LinkedIn Insight Tag
<script type="text/javascript">
_linkedin_partner_id = "YOUR_LINKEDIN_PARTNER_ID";
window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
window._linkedin_data_partner_ids.push(_linkedin_partner_id);
</script>
<script type="text/javascript">
(function(l) {
if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])};
window.lintrk.q=[]}
var s = document.getElementsByTagName("script")[0];
var b = document.createElement("script");
b.type = "text/javascript";b.async = true;
b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
s.parentNode.insertBefore(b, s);})(window.lintrk);
</script>
- Trigger:
cookiepilot_consent_update+ συνθήκηdlv.cp_marketing equals true. - Tag firing options: Once per page.
Hotjar
<script>
(function(h,o,t,j,a,r){
h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
h._hjSettings={hjid:YOUR_HOTJAR_ID,hjsv:6};
a=o.getElementsByTagName('head')[0];
r=o.createElement('script');r.async=1;
r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
a.appendChild(r);
})(window,document,'https://static.hotjar.com/c/hotjar-',".js?sv=");
</script>
- Trigger:
cookiepilot_consent_update+ συνθήκηdlv.cp_analytics equals true. - Tag firing options: Once per page.
Το Hotjar εντάσσεται στην κατηγορία analytics, όχι marketing (μετράει συμπεριφορά, όχι διαφημίσεις). Ελέγξτε τη δική σας πολιτική cookies, καθώς ορισμένες εταιρείες ταξινομούν το Hotjar διαφορετικά.
Microsoft Clarity
<script type="text/javascript">
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "YOUR_CLARITY_PROJECT_ID");
</script>
- Trigger:
cookiepilot_consent_update+ συνθήκηdlv.cp_analytics equals true. - Tag firing options: Once per page.
Pinterest Tag
<script>
!function(e){if(!window.pintrk){window.pintrk = function () {
window.pintrk.queue.push(Array.prototype.slice.call(arguments))};var
n=window.pintrk;n.queue=[],n.version="3.0";var
t=document.createElement("script");t.async=!0,t.src=e;var
r=document.getElementsByTagName("script")[0];
r.parentNode.insertBefore(t,r)}}("https://s.pinimg.com/ct/core.js");
pintrk('load', 'YOUR_PINTEREST_TAG_ID');
pintrk('page');
</script>
- Trigger:
cookiepilot_consent_update+ συνθήκηdlv.cp_marketing equals true. - Tag firing options: Once per page.
Microsoft Ads (UET)
Το UET υποστηρίζει το Google Consent Mode από τα τέλη του 2023, οπότε δεν χρειάζεστε trigger Custom Event. Τοποθετήστε το tag με τον τυπικό τρόπο (All Pages, Once per page) και το UET διαβάζει μόνο του το ad_storage από το GCM, το οποίο ορίζει το widget.
Αντιστοίχιση κατηγοριών (σύνοψη)
| Tag | Κατηγορία | Πεδίο στο cookiepilot_consent |
|---|---|---|
| Facebook Pixel | marketing | marketing |
| TikTok Pixel | marketing | marketing |
| LinkedIn Insight | marketing | marketing |
| marketing | marketing | |
| Hotjar | analytics | analytics |
| Microsoft Clarity | analytics | analytics |
| Mixpanel, Amplitude | analytics | analytics |
| Intercom, Drift, Crisp | preferences | preferences |
| GA4, Google Ads, UET | (GCM, χωρίς trigger) | διαχειρίζεται μέσω gtag('consent','update') |
API Reference
Το CookiePilot παρέχει το αντικείμενο window.CookiePilot:
| Μέθοδος | Περιγραφή |
|---|---|
CookiePilot.getConsent() | Τρέχουσα κατάσταση συγκαταθέσεων ή null αν δεν υπάρχει απόφαση. |
CookiePilot.acceptAll() | Συγκατάθεση σε όλες τις κατηγορίες. |
CookiePilot.rejectAll() | Απορρίπτει τα πάντα εκτός από necessary. |
CookiePilot.updateConsent(partial) | Ενημερώνει επιλεγμένες κατηγορίες, π.χ. { analytics: true }. |
CookiePilot.showSettings() | Ανοίγει το modal προτιμήσεων. |
CookiePilot.hideSettings() | Κλείνει το modal προτιμήσεων. |
CookiePilot.showMyConsent() / hideMyConsent() | Εμφανίζει/αποκρύπτει το πλωτό κουμπί. |
Παράδειγμα
const consent = CookiePilot.getConsent();
// { necessary: true, analytics: true, marketing: false, preferences: false }
CookiePilot.updateConsent({ analytics: true });
document.getElementById('cookie-settings').addEventListener('click', () => {
CookiePilot.showSettings();
});
Σύνδεσμος "Διαχείριση cookies" στο υποσέλιδο
<a href="#" onclick="CookiePilot.showSettings(); return false;">Zarządzaj cookies</a>
Events JavaScript
Το widget κάνει dispatch το εγγενές event cookiepilot:consent στο window. Ο listener πρέπει να έχει καταχωρηθεί πριν από τη φόρτωση του widget, αν θέλετε να πιάσετε το event για επανερχόμενο χρήστη (το dispatch στέλνεται αμέσως μετά την εκκίνηση του widget):
<script>
window.addEventListener('cookiepilot:consent', (e) => {
if (e.detail.marketing) {
fbq('init', 'YOUR_PIXEL_ID');
}
});
</script>
<script src="https://cdn.cookiepilot.io/cookiepilot.js" data-cpkey="TWOJ_KLUCZ"></script>
Το e.detail περιέχει το ίδιο payload με το getConsent(). Για ενσωμάτωση μέσω GTM χρησιμοποιήστε το event του dataLayer που περιγράφηκε παραπάνω αντί γι' αυτό, επειδή το dataLayer είναι persistent array και το GTM απορροφά και τα ιστορικά events.
Κατηγορίες συγκαταθέσεων
| Κατηγορία | Περιγραφή | Προεπιλογή |
|---|---|---|
necessary | Απαραίτητα για τη λειτουργία του ιστοτόπου | Πάντα ενεργά |
analytics | Στατιστικά και αναλυτικά στοιχεία | Απαιτείται συγκατάθεση |
marketing | Διαφημίσεις και remarketing | Απαιτείται συγκατάθεση |
preferences | Εξατομίκευση, γλώσσα | Απαιτείται συγκατάθεση |
Αντιστοίχιση με το Google Consent Mode
| Κατηγορία CookiePilot | Πεδία Consent Mode |
|---|---|
analytics | analytics_storage |
marketing | ad_storage, ad_user_data, ad_personalization |
preferences | functionality_storage, personalization_storage |
| (πάντα) | security_storage: granted |
Google Consent Mode v2
Η έκδοση 2 πρόσθεσε τα ad_user_data και ad_personalization (υποχρεωτικά από τον Μάρτιο του 2024 για EU/EEA στις διαφημίσεις της Google).
| Παράμετρος | Περιγραφή |
|---|---|
ad_storage | Διαφημιστικά cookies |
analytics_storage | Αναλυτικά cookies |
ad_user_data | Αποστολή δεδομένων χρήστη στη Google |
ad_personalization | Εξατομίκευση διαφημίσεων |
functionality_storage | Λειτουργικά cookies |
personalization_storage | Cookies εξατομίκευσης |
security_storage | Πάντα granted |
Μηχανισμός:
- Το stub ορίζει όλα τα πεδία σε
deniedσύγχρονα, μεwait_for_update: 500. - Μετά την απόφαση του χρήστη το widget στέλνει
gtag('consent', 'update', {...})με την παραπάνω αντιστοίχιση. - Για επανερχόμενο χρήστη το σημείο 2 εκτελείται αμέσως μετά την εκκίνηση του widget, με βάση το cookie.
Διαμόρφωση εμφάνισης
Στον πίνακα: Domain → Διαμόρφωση:
- Εμφάνιση: θέση, χρώματα, διάταξη (BAR / BOX / MODAL).
- Κείμενα: επικεφαλίδα, περιγραφή, ετικέτες κουμπιών, περιγραφές κατηγοριών. 13 γλώσσες (EN, PL, DE, FR, ES, IT, NL, PT, SV, CS, RO, EL, HU).
- Κουμπί συγκαταθέσεων: πλωτό κουμπί "Ρυθμίσεις cookies" ορατό μετά την πρώτη απόφαση (κάτω αριστερά/δεξιά).
- Custom CSS: πεδίο για δικά σας στυλ. Το widget αποδίδεται σε Shadow DOM, οπότε οι CSS selectors από το κύριο έγγραφο δεν θα λειτουργήσουν. Μόνο μέσω αυτού του πεδίου.
Προσβασιμότητα (WCAG 2.1 AA)
- ✅ Πλοήγηση με πληκτρολόγιο (Tab, Shift+Tab, Enter, Escape).
- ✅ ARIA labels, role="dialog", aria-modal.
- ✅ Focus trap στο modal.
- ✅ Screen reader (live regions στην αλλαγή κατάστασης).
- ✅ Responsiveness.
Ενσωματώσεις
WordPress
Διαθέτουμε επίσημο plugin: CookiePilot στο WordPress.org.
- WordPress admin → Plugins → Add New → αναζητήστε "CookiePilot".
- Εγκαταστήστε και ενεργοποιήστε.
- Settings → CookiePilot → επικολλήστε το κλειδί API από τον πίνακα.
Το plugin εισάγει μόνο του το stub και το tag στο <head> (με τη σωστή σειρά πριν από άλλα scripts) και παρέχει το shortcode [cookiepilot_settings] για τον σύνδεσμο "Διαχείριση cookies" στο υποσέλιδο.
Αν προτιμάτε χωρίς plugin: χρησιμοποιήστε το "Insert Headers and Footers" και επικολλήστε το snippet από το βήμα 2 της Γρήγορης εκκίνησης στην ενότητα Header.
Shopify
- Κατάστημα → Themes → Edit code.
- Στο
theme.liquidεπικολλήστε το snippet πριν από το</head>.
Next.js
// app/layout.tsx
import Script from 'next/script';
export default function RootLayout({ children }) {
return (
<html>
<head>
<Script
src="https://cdn.cookiepilot.io/cookiepilot.js"
data-cpkey="TWOJ_KLUCZ"
strategy="beforeInteractive"
/>
</head>
<body>{children}</body>
</html>
);
}
Το strategy="beforeInteractive" διασφαλίζει ότι το script του banner θα εκτελεστεί νωρίς. Να θυμάστε ότι το inline stub από το Βήμα 2α (προεπιλεγμένες συγκαταθέσεις) το προσθέτετε ξεχωριστά, στο <head> πριν από αυτό το script, π.χ. μέσω next/script με dangerouslySetInnerHTML ή απευθείας στο app/layout.tsx.
FAQ
Επιβραδύνει το script τον ιστότοπο;
Το bundle είναι περίπου 12 KB gzip, φορτώνεται ασύγχρονα. Χωρίς επίπτωση στα Core Web Vitals.
Για πόσο χρόνο διατηρούνται οι συγκαταθέσεις;
Cookie με την απόφαση του χρήστη: προεπιλεγμένα 365 ημέρες (παραμετροποιήσιμο στον πίνακα). Συμβάντα στα αναλυτικά στοιχεία: 2 χρόνια (TTL ClickHouse).
Στέλνεται το event cookiepilot_consent_update για επανερχόμενο χρήστη;
Ναι. Το widget διαβάζει το cookie κατά την εκκίνηση και κάνει push το event στο dataLayer. Ο trigger Custom Event στο GTM θα ενεργοποιηθεί σε κάθε επίσκεψη, όχι μόνο στην πρώτη απόφαση.
Πού να αναφέρω ένα πρόβλημα;
kontakt@cookiepilot.io ή στο chat του πίνακα.
Λίστα ελέγχου μετά την ενσωμάτωση
Μετά την εγκατάσταση του CookiePilot ελέγξτε τη διαμόρφωση πριν από τη δημοσίευση διαφημιστικών καμπανιών.
1. Έλεγχος πριν από τη συγκατάθεση του χρήστη
- Ανοίξτε τον ιστότοπο σε λειτουργία incognito και καθαρίστε τα cookies για το domain.
- Ανοίξτε DevTools → Network και ανανεώστε τη σελίδα.
- Πριν κάνετε κλικ στη συγκατάθεση, βεβαιωθείτε ότι:
- δεν δημιουργούνται αναλυτικά/marketing cookies, π.χ.
_ga,_gcl_*,_fbp,_ttp, - τα marketing tags δεν στέλνουν requests προς Meta/TikTok/LinkedIn πριν από τη συγκατάθεση marketing,
- στο
dataLayerέχει οριστεί η προεπιλεγμένη κατάστασηdeniedγια ταad_storage,ad_user_data,ad_personalizationκαιanalytics_storage.
- δεν δημιουργούνται αναλυτικά/marketing cookies, π.χ.
2. Έλεγχος μετά την αποδοχή των συγκαταθέσεων
- Κάντε κλικ στο „Αποδοχή όλων".
- Στα DevTools ελέγξτε αν εμφανίστηκε το event
cookiepilot_consent_update. - Για τα tags της Google ελέγξτε στο GTM Preview / Tag Assistant αν το Consent Mode άλλαξε κατάσταση σε
grantedγια τις αντίστοιχες κατηγορίες. - Για το GA4 ελέγξτε στο DebugView αν τα events άρχισαν να φτάνουν μετά τη συγκατάθεση.
- Για Meta Pixel / TikTok / LinkedIn ελέγξτε αν τα tags ενεργοποιούνται μόνο μετά το event
cookiepilot_consent_updateκαι τη συνθήκη συγκατάθεσης marketing.
3. Έλεγχος απόρριψης των συγκαταθέσεων
- Καθαρίστε τα cookies και ανανεώστε τη σελίδα.
- Κάντε κλικ στο „Απόρριψη όλων".
- Βεβαιωθείτε ότι τα cookies και τα marketing requests εξακολουθούν να μην ενεργοποιούνται.
- Βεβαιωθείτε ότι οι απαραίτητες λειτουργίες του ιστοτόπου εξακολουθούν να λειτουργούν.
4. Συχνότερα λάθη
- Το tag GA4/Google Ads ενεργοποιείται στο
Consent Initializationαντί για μεταγενέστερο trigger. - Το Meta Pixel ή το TikTok Pixel δεν έχει συνθήκη στο
cookiepilot_consent.marketing. - Στον ιστότοπο έχει παραμείνει παλιό, hardcoded tracker στο
<head>πριν από το CookiePilot. - Στην τεκμηρίωση ή στο template έχει παραμείνει παρωχημένο URL του script ή παλιό attribute αναγνωριστικού αντί για το τρέχον
cookiepilot.jsμεdata-cpkey.