Dokumentacija
Dodajte soglasje za piškotke
Dodajte soglasje za piškotke
Analitične in oglasne kode (Google Analytics, Google Ads, Meta Pixel, TikTok, LinkedIn, Hotjar …) shranjujejo piškotke in podatke o obiskovalcih pošiljajo tretjim osebam. V EU pravila ePrivacy in GDPR pomenijo, da se praviloma smejo zagnati šele, ko obiskovalec privoli. Stran, ki jih naloži takoj, je najpogostejša ugotovitev pri pritožbah zaradi piškotkov, Google pa od marca 2024 za merjenje oglasov in remarketing pri obiskovalcih iz EU pričakuje tudi Consent Mode v2.
Kontrolni seznam strani označi stran, ki nalaga sledilne kode brez pasice za soglasje (CMP, platforma za upravljanje soglasij) ali brez Google Consent Mode. Ta vodič opisuje tehnično nastavitev. Katere kode potrebujejo soglasje in kako mora biti pasica napisana, je pravno vprašanje za vaš pravilnik o zasebnosti, ne nekaj, o čemer bi lahko odločil kontrolni seznam.
Kaj išče kontrolni seznam
| Rezultat | Pomen |
|---|---|
| OK | HTML strani naloži znano pasico za soglasje (Cookiebot, CookieYes, OneTrust, Usercentrics, Complianz, Borlabs Cookie, iubenda, CookieFirst, Didomi in drugi) ali nastavi privzeto stanje Consent Mode z gtag('consent', 'default', …). |
| Neznano | V HTML-ju ni ne enega ne drugega, stran pa naloži Google Tag Manager. Pasica se lahko naloži od tam; odprite zavihek Sledenje, da vidite, kaj vsebuje vsebnik. |
| Opozorilo | Na strani so sledilne kode, pasice in Consent Mode pa ni. |
| Ne velja | Sledilnih kod nismo našli. |
Pasico prepoznamo po naslovu skripte njenega ponudnika. Pasica, vgrajena v temo ali graditelj strani, ali ročno napisana, lahko deluje, pa je kljub temu ne prepoznamo: preverite jo v brskalniku, kot je opisano spodaj.
Preverite sami
Na strani poiščite skripto za soglasje ali privzeto stanje Consent Mode. Namesto example.com vpišite svojo stran:
curl -s https://example.com | grep -ioE "cookiebot|cookieyes|cookielaw|usercentrics|complianz|borlabs|iubenda|gtag\(\s*.consent.\s*,\s*.default." | sort -u
Vsaka izpisana vrstica pomeni, da je nastavitev vidna v HTML-ju. Nato preverite tisto, kar šteje, v zasebnem oknu brskalnika:
- Odprite stran in na pasico še ne kliknite. Odprite orodja za razvijalce (F12) → Network.
- Znova naložite. Filtrirajte po
collect,facebook,tiktokalilinkedin. Preden privolite, ne sme biti zahtevkov oglasnih pikslov. Z Consent Mode lahko Googlove kode še vedno pošiljajo zahtevke brez piškotkov: parametergcs=G100v zahtevkucollectpomeni, da je shranjevanje zavrnjeno, kar je prav. - V Application → Cookies (Chrome) ali Storage → Cookies (Firefox) pred privolitvijo ne sme biti
_ga,_gcl_auali_fbp. - Privolite in opazujte, kako se kode zaženejo.
Kako popraviti
Dela sta dva in običajno potrebujete oba:
- Pasico za soglasje (CMP), ki obiskovalca vpraša in si odgovor zapomni. Certificirani CMP-ji (Googlov seznam certificiranih partnerjev vključuje Cookiebot, CookieYes, Usercentrics, OneTrust, iubenda in Complianz) odgovor posredujejo tudi Googlu.
- Consent Mode v2, ki Googlovim kodam pove, naj začnejo v stanju "zavrnjeno" in počakajo na pasico. Pasice ne nadomesti: nekaj mora še vedno vprašati.
Večina CMP-jev Consent Mode nastavi namesto vas. Izberite, kar ustreza strani.
WordPress
Namestite vtičnik za soglasje in mu prepustite pasico, blokiranje skript in Consent Mode:
- Complianz – GDPR/CCPA Cookie Consent: brezplačen, vodi skozi čarovnika za nastavitev, pregleda stran za piškotke in znane skripte blokira do privolitve.
- CookieYes in Cookiebot: brezplačna vtičnika za njuni gostovani storitvi (brezplačni paketi imajo omejitve strani ali prometa).
- Borlabs Cookie: plačljiv, priljubljen v nemško govorečih državah.
Po čarovniku vklopite možnost vtičnika Google Consent Mode, če jo ima, in preverite, da so vaše kode prijavljene prek njega. Koda, prilepljena neposredno v temo ali v vtičnik za glavo in nogo, lahko blokiranje zaobide.
Če vaše kode prihajajo iz Google Tag Managerja, naj vsebnik GTM naloži vtičnik ali pa CMP naložite znotraj GTM, kot je opisano spodaj v razdelku Prek Google Tag Managerja. Ne obojega.
Nato počistite predpomnilnik strani (WP Rocket, LiteSpeed Cache, predpomnilnik ponudnika gostovanja), sicer se še naprej streže stara stran brez pasice.
Statični HTML
Privzeto stanje Consent Mode postavite prvo v <head>, pred Google Tag Manager ali gtag.js, nato skripto CMP, ki vam jo da ponudnik, nato vaše kode:
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied',
'wait_for_update': 500
});
</script>
<!-- Nato skripta CMP vašega ponudnika, nato GTM ali gtag.js. -->
ad_user_data in ad_personalization sta signala, dodana v v2. wait_for_update pasici da pol sekunde, da sporoči prejšnjo izbiro povratnega obiskovalca, preden se kode zaženejo.
Kode, ki niso Googlove (Meta Pixel, TikTok, Hotjar), Consent Mode ne upoštevajo. Blokira naj jih CMP: večina ponudnikov to naredi, ko oznako <script> kode spremenite v type="text/plain" z atributom, ki ga navedejo v svoji dokumentaciji.
Node.js in Next.js
V Next.js naložite privzeto stanje Consent Mode in CMP pred vsako kodo. Z App Routerjem v app/layout.js:
import Script from 'next/script';
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
<Script id="consent-default" strategy="beforeInteractive">{`
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
ad_storage: 'denied', ad_user_data: 'denied',
ad_personalization: 'denied', analytics_storage: 'denied',
wait_for_update: 500
});
`}</Script>
{/* Nato skripta CMP vašega ponudnika, prav tako beforeInteractive. */}
{children}
</body>
</html>
);
}
beforeInteractive skripto postavi v HTML, izrisan na strežniku, zato jo kontrolni seznam vidi. Google Tag Manager ali gtag.js naložite za njo, na primer z @next/third-parties.
Shopify
Shopify ima svojo pasico: Settings → Customer privacy → Cookie banner. Vklopite jo za regije, v katere prodajate. Shopifyjeva analitika in aplikacije, ki uporabljajo Customer Privacy API, izbiro upoštevajo, aplikacija Google & YouTube pa jo Googlu posreduje kot Consent Mode.
Koda, ki ste jo ročno prilepili v temo (theme.liquid), na to pasico ne čaka. Kode prestavite v aplikacije ali piksle Customer events ali uporabite aplikacijo CMP iz Shopify App Store (Cookiebot, CookieYes, Consentmo in druge), ki jih blokira.
Vgrajene Shopifyjeve pasice kontrolni seznam morda ne prepozna. Preverite jo v brskalniku, kot je opisano zgoraj.
Wix
Wix ima vgrajeno pasico za piškotke: na nadzorni plošči strani odprite Settings in nastavitve pasice za piškotke. Ko je vklopljena, kode, dodane prek Marketing integrations (Google Analytics, Google Ads, Meta Pixel), čakajo na soglasje, Wix pa zanje nastavi Google Consent Mode.
Koda, dodana pod Settings → Custom code, ima nastavitev kategorije: analitično in oglasno kodo označite kot Analytics ali Advertising, ne kot Essential, sicer se zažene pred soglasjem.
Webflow
Webflow nima vgrajene polne pasice za soglasje. Dodajte CMP, bodisi iz tržnice Webflow Apps bodisi tako, da skripto ponudnika prilepite v Site settings → Custom code → Head code nad Googlove kode. Privzeto stanje Consent Mode (glejte zavihek Statični HTML) postavite čisto na vrh istega polja. Nato stran objavite: koda po meri začne delovati šele ob objavi.
Squarespace
Squarespace ima pasico za piškotke pod Settings → Cookies & visitor data (na novejših straneh Settings → Privacy & security). Vklopite Cookie banner in izberite tip z izrecno privolitvijo (opt-in), da morajo obiskovalci sprejeti.
Pasica pokriva Squarespaceovo lastno analitiko. Kode, ki ste jo dodali prek Code injection, ne blokira. Za kode tretjih oseb namesto tega uporabite skripto CMP v Code injection → Header, s privzetim stanjem Consent Mode iz zavihka Statični HTML na vrhu.
Prek Google Tag Managerja
Če so vaše kode v Google Tag Managerju, lahko tam naložite tudi CMP:
- V GTM odprite Admin → Container settings in vklopite Enable consent overview, če še ni vklopljeno.
- Tags → New → Tag configuration → Discover more tag types in the Community Template Gallery in dodajte predlogo svojega CMP-ja (Cookiebot, CookieYes, Usercentrics, iubenda in drugi jo objavljajo). V predlogi nastavite privzeta stanja Consent Mode na Denied.
- Sprožite jo s Consent Initialization – All Pages. Ta sprožilec se izvede pred vsemi drugimi.
- V pregledu soglasij (ikona ščita na strani Tags) preverite, da ima vsaka Googlova koda vgrajena preverjanja soglasja in da vsaka druga koda zahteva
ad_storagealianalytics_storage. - Preview, preizkusite, nato Submit.
Pri tej postavitvi pasice ni v HTML-ju strani, zato kontrolni seznam pokaže Neznano in ne OK. To je pričakovano: zavihek Sledenje pokaže, kaj vsebuje vsebnik GTM, preizkus v brskalniku zgoraj pa potrdi, da deluje.
Pasti
- Analitika brez piškotkov. Plausible, Fathom in Umami ne nastavljajo piškotkov in pogosto tečejo brez pasice. Kontrolni seznam jih kljub temu šteje med sledilne kode, ker ne more presoditi vaše pravne podlage. Če so to vaše edine kode in se s tem strinja vaša presoja zasebnosti, lahko to postavko pustite, kot je.
- Dve pasici. Pasica vtičnika in hkrati pasica gostitelja ali teme zmedeta obiskovalce in lahko zabeležita različna odgovora. Obdržite eno.
- Kode mimo CMP-ja. Koda, prilepljena v nogo, v možnost teme ali v drug vsebnik GTM, se zažene ne glede na pasico.
Potrdite popravek
Znova poženite ukaz curl in preizkus v brskalniku iz razdelka Preverite sami, nato v PulseKeeperju odprite tarčo in na zavihku Kontrolni seznam kliknite Preveri zdaj. Postavka se v nekaj minutah obarva OK, ne šele ob naslednjem dnevnem preverjanju. Zavihek Sledenje pokaže pasico za soglasje in Consent Mode poleg vaših drugih kod.