Pojdi na vsebino

Raziskava

80% of Cookie Reject Buttons Don't Actually Work — Here's the Proof

GDPR Privacy Monitor Research · 2026-04-11 · 6 min branje

Vsak pasica s piškotki daje enako implicitno obljubo: kliknite "Zavrni" in sledenje se ustavi. Pasica izgine in mirno brskate. To je dogovor, na katerem temelji model privolitve -- zamisel, da imajo uporabniki smiselno, izvršljivo izbiro.

To obljubo smo preizkusili na 28.891 spletnih mestih EU. Na 80,4 % od njih je obljuba kršena. Sledenje se nadaljuje, potem ko uporabnik izrecno klikne zavrni. Piškotki vztrajajo. Oglaševalski piksli še naprej delujejo. Na 1.642 mestih pa se piškotki, ki jih dejanje zavrnitve sprva odstrani, vrnejo ob naslednjem nalaganju strani -- vzorec, ki ga imenujemo ponovna oživitev privolitve (consent respawn).

To ni obrobna ugotovitev o nekaj napačno konfiguriranih mestih. Kaže na sistemsko težavo v mehanizmu, na katerega se za varstvo zasebnosti zanašajo stotine milijonov prebivalcev EU.

Kaj naj bi "Zavrni" pomenilo -- pravno

Pravni okvir je jasen. V skladu s členom 5(3) direktive o zasebnosti in elektronskih komunikacijah shranjevanje ali dostopanje do informacij na uporabnikovi terminalski opremi zahteva predhodno privolitev, z ozko izjemo za piškotke, ki so nujno potrebni za storitev, ki jo je uporabnik izrecno zahteval. Člen 7(3) GDPR dodaja, da mora biti umik privolitve enako enostaven kot njena podaja in da mora upravljavec podatkov ukrepati na podlagi tega umika.

Smernice EDPB 05/2020 o privolitvi po GDPR pojasnjujejo, kaj to pomeni za gumbe za zavrnitev: če spletno mesto ponuja možnost "Sprejmi vse", mora ponuditi tudi enako vidno in enako dostopno možnost za zavrnitev. In ta zavrnitev mora biti učinkovita -- dejansko mora preprečiti obdelavo, ki bi jo privolitev dovolila.

CJEU je to potrdilo v zadevi Planet49 (C-673/17): privolitev zahteva jasno pritrdilno dejanje, vnaprej označena potrditvena polja pa ne predstavljajo veljavne privolitve. Logična posledica je, da mora biti zavrnitev -- izrecno negativno dejanje -- spoštovana enako dokončno kot sprejetje. Če klik na "Sprejmi" vklopi sledenje, mora klik na "Zavrni" sledenje izklopiti. Ne delno. Ne začasno. Popolnoma in trajno.

To pravi zakon. Naši podatki kažejo, kaj se dejansko dogaja.

Kako testiramo tok zavrnitve

Naš test toka zavrnitve je zasnovan tako, da je čim bližje izkušnji resničnega človeka, ki klikne zavrni, z dodatkom celovite instrumentacije. Tu je postopek korak za korakom:

1. korak: Nova seja brskalnika. Pregledovalnik zažene čist primerek Chromium -- brez piškotkov, brez lokalnega pomnilnika, brez predpomnjenih virov, brez zgodovine brskanja. To je pristen prvič obiskovalec brez predhodnega stanja privolitve. 2. korak: Navigacija in zapis stanja pred privolitvijo. Pregledovalnik naloži ciljni URL in počaka, da se stran stabilizira. Pred kakršno koli interakcijo zabeleži vsak piškotek v brskalniku, vsako omrežno zahtevo in vsako kontaktirano domeno tretje osebe. To je izhodiščno stanje pred privolitvijo -- kaj spletno mesto naredi, preden ima uporabnik kakršno koli priložnost za izbiro. 3. korak: Zaznavanje pasice privolitve. Z uporabo naše knjižnice za zaznavanje, ki pokriva 45 znanih CMP-jev in generične hevristike, pregledovalnik identificira mehanizem privolitve in poišče gumb za zavrnitev. Ta korak uporablja večplastni pristop: najprej preveri znane podpise skript CMP in z njimi povezane strukture DOM, nato pa se vrne na generično zaznavanje elementov s fiksnim položajem z besedilom, povezanim s privolitvijo, in oznakami gumbov, kot so "Zavrni vse," "Odkloni," "Zavrni" ali ustrezni prevodi. 4. korak: Klik na zavrni. Pregledovalnik klikne gumb za zavrnitev in počaka, da se stran umiri. "Umiri" pomeni čakanje, da se zaključijo čakajoče omrežne zahteve, ustavijo mutacije DOM ter končajo animacije ali prehodi. Uporabljamo radodarne časovne omejitve, da se izognemo lažnim pozitivom pri počasnih implementacijah CMP. 5. korak: Posnetek po zavrnitvi. Pregledovalnik ponovno zabeleži celotno stanje: vse piškotke, vso omrežno aktivnost, vse domene tretjih oseb. Ta posnetek se primerja z izhodiščnim stanjem pred privolitvijo, da se ugotovi, kaj se je spremenilo. 6. korak: Ponovna nalaganje in preverjanje ponovne oživitve. Pregledovalnik ponovno naloži stran in počaka, da se ponovno stabilizira. Nato naredi končni posnetek. Ta korak je ključen: razkrije, ali je dejanje zavrnitve trajno (spoštovano med nalaganjem strani) ali pa se piškotki in sledenje ponovno aktivirajo ob svežem nalaganju. Če se piškotki, odstranjeni v 5. koraku, ponovno pojavijo v 6. koraku, gre za ponovno oživitev privolitve.

Vsak korak proizvede časovno označene arhivske dokaze: popolne popise piškotkov z imeni, vrednostmi, domenami, datumi poteka in zastavicami; popolne dnevnike omrežnih zahtev z URL-ji, metodami, odzivnimi kodami in časovnimi podatki; ter posnetke zaslona celotne strani. Ta dokazna veriga omogoča preverjanje in izpodbijanje katere koli posamezne ugotovitve.

Rezultati: 80,4 % neuspeh

Od 28.891 spletnih mest, kjer smo uspešno izvedli celoten test toka zavrnitve:

  • 5.650 (19,6 %) je uspelo. Po kliku na zavrni so bili nebistveni piškotki odstranjeni, zahteve za sledenje ustavljene, zavrnitev pa je ostala veljavna tudi po ponovnem nalaganju strani.
  • 23.241 (80,4 %) ni uspelo. Sledenje se je v kakršni koli obliki nadaljevalo po tem, ko je uporabnik izrecno kliknil zavrni.

Neuspehi niso enotni. Spadajo v ločene kategorije, ki se prekrivajo -- eno samo mesto lahko hkrati kaže več načinov odpovedi.

Trajni piškotki: 10.848 mest

Na 10.848 mestih (37,5 % testiranih) so nebistveni piškotki ostali v brskalniku po zaključku toka zavrnitve. To so piškotki, razvrščeni kot analitični, marketinški ali sledilni, ki bi morali biti po dejanju zavrnitve odstranjeni ali preprečeni.

Najpogostejši trajni piškotki pripadajo Google Analytics (`_ga`, `_gid`, `_gat`), Meta/Facebook (`_fbp`, `fr`) in raznim oglaševalskim platformam. V mnogih primerih CMP uspešno odstrani nekatere piškotke, a ne ujame vseh -- kar nakazuje nepopolno integracijo med platformo za upravljanje privolitev in celotnim seznamom skript tretjih oseb na mestu.

Prisotnost teh piškotkov po zavrnitvi ni zgolj estetski problem. Vsak od njih je trajen identifikator, ki trenutno sejo uporabnika povezuje s preteklimi in prihodnjimi obiski. Piškotek `_ga` je na primer unikaten identifikator odjemalca, ki ga Google Analytics uporablja za izgradnjo longitudinalnega profila vedenja uporabnika med sejami. Če vztraja po zavrnitvi, se brskanje uporabnika še naprej sledi in združuje ne glede na izraženo zavrnitev.

Trajni sledilniki: 14.547 mest

Na 14.547 mestih (50,3 % testiranih) so sledilne storitve ostale aktivne po zavrnitvi -- kar pomeni, da je brskalnik še naprej pošiljal zahteve znanim sledilnim domenam tudi po tem, ko je uporabnik kliknil gumb za zavrnitev.

To je ločen način odpovedi od trajnosti piškotkov. Sledilnik je lahko aktiven brez nastavljanja piškotka: zahteve za piksle, klici za oddajnike (beacon) in nalaganje skript prenašajo informacije (vsaj IP-naslov uporabnika, izvorno stran in časovne podatke) na strežnike tretjih oseb ne glede na to, ali je piškotek shranjen. To se včasih imenuje "sledenje brez piškotkov" in je vse pogostejše, saj brskalniki zaostrujejo omejitve za piškotke tretjih oseb.

Razlika med številko piškotkov (10.848) in številko sledilnikov (14.547) je pomembna. Pomeni, da je na približno 3.700 mestih dejanje zavrnitve uspešno odstranilo piškotke, a ni preprečilo nadaljevanja sledilnih zahtev. CMP je poskrbel za čiščenje piškotkov, ni pa blokiral skript, ki sploh ustvarjajo sledilni promet. To kaže na pogost arhitekturni problem: CMP je konfiguriran za upravljanje piškotkov (brisanje ob zavrnitvi, preprečevanje ob nalaganju), ne pa za upravljanje izvajanja skript.

Ponovna oživitev privolitve: 1.642 mest, 4.932 piškotkov

Ponovna oživitev privolitve je najbolj zaskrbljujoč vzorec, ki smo ga identificirali. Na 1.642 spletnih mestih so se piškotki, ki jih je dejanje zavrnitve uspešno odstranilo, po ponovnem nalaganju strani vrnili. Na teh mestih je 4.932 posameznih piškotkov kazalo to vedenje ponovne oživitve.

Ponovna oživitev privolitve ni napaka enega CMP-ja ali ene konfiguracije. Je strukturni problem v tem, kako je privolitev implementirana po celotnem spletnem skladu.

Kako se piškotek vrne po izbrisu. Ko uporabnik klikne zavrni, pravilno konfiguriran CMP naredi dvoje: izbriše obstoječe nebistvene piškotke (tako da nastavi njihov datum poteka na pretekli datum) in posodobi zapis privolitve (običajno piškotek sam ali vnos v localStorage), ki logiki blokiranja CMP-ja sporoči, naj prepreči zagon nebistvenih skript ob prihodnjih nalaganih strani. Če oboje deluje, je uporabnik čist: brez sledilnih piškotkov, brez sledilnih skript.

Ponovna oživitev privolitve se zgodi, ko brisanje uspe, blokiranje pa ne. Najpogostejši scenarij:

1. CMP izbriše piškotek `_ga`, ko uporabnik klikne zavrni.

2. CMP nastavi piškotek stanja privolitve, ki beleži, da je uporabnik zavrnil analitiko.

3. Ob naslednjem nalaganju strani CMP preveri stanje privolitve in ve, da je uporabnik zavrnil.

4. Ampak: oznaka skripte Google Analytics je vgrajena neposredno v predlogo strani (zunaj upravljalnika oznak) ali pa se naloži s pravilom upravljalnika oznak, ki ne preverja stanja privolitve.

5. Skripta GA se naloži, ne najde piškotka `_ga` in ustvari novega.

6. Odločitev uporabnika o zavrnitvi je bila razveljavljena.

Različice tega vzorca vključujejo: skripte tretjih oseb, naložene prek vkodiranih oznak `