Istraživanje
80% of Cookie Reject Buttons Don't Actually Work — Here's the Proof
GDPR Privacy Monitor Research · 2026-04-11 · 6 min čitanje
Svaki banner za kolačiće daje isto implicitno obećanje: kliknite "Odbij" i praćenje prestaje. Banner nestaje i pregledavate u miru. To je pogodba na kojoj je model pristanka izgrađen -- ideja da korisnici imaju smislen, provediv izbor.
Testirali smo to obećanje na 28.891 web stranici u EU-u. Na 80,4% njih obećanje je prekršeno. Praćenje se nastavlja nakon što korisnik izričito klikne odbiti. Kolačići opstaju. Oglašivački pikseli nastavljaju s pokretanjem. A na 1.642 stranice, kolačići koje je radnja odbijanja prvotno izbrisala vraćaju se sljedeći put kada se stranica učita -- obrazac koji nazivamo consent respawn.
Ovo nije marginalan nalaz o nekoliko loše konfiguriranih stranica. To ukazuje na sustavni problem u mehanizmu na koji se stotine milijuna stanovnika EU-a oslanjaju za svoja prava na privatnost.
Što bi "Odbij" trebao učiniti -- pravno
Pravni okvir je jasan. Prema članku 5. stavku 3. Direktive o e-privatnosti, pohranjivanje ili pristup informacijama na terminalnoj opremi korisnika zahtijeva prethodni pristanak, uz uski izuzetak za kolačiće strogo potrebne za uslugu koju je korisnik izričito zatražio. Članak 7. stavak 3. GDPR-a dodaje da povlačenje pristanka mora biti jednako jednostavno kao i njegovo davanje, te da voditelj obrade mora postupiti prema tom povlačenju.
Smjernice EDPB-a 05/2020 o pristanku prema GDPR-u objašnjavaju što to znači za gumbe za odbijanje: ako web stranica nudi opciju "Prihvati sve", mora također ponuditi jednako istaknutu i jednako dostupnu opciju za odbijanje. I to odbijanje mora biti učinkovito -- mora stvarno spriječiti obradu koju bi pristanak odobrio.
CJEU je to potvrdio u presudi Planet49 (C-673/17): pristanak zahtijeva jasnu potvrdnu radnju, a unaprijed označeni potvrdni okviri ne čine valjani pristanak. Logičan zaključak je da odbijanje -- izričita negativna radnja -- mora biti poštovano jednako odlučno kao i prihvaćanje. Ako klik na "Prihvati" uključuje praćenje, klik na "Odbij" ga mora isključiti. Ne djelomično. Ne privremeno. Potpuno i trajno.
To je ono što zakon kaže. Naši podaci pokazuju što se zapravo događa.
Kako testiramo tok odbijanja
Naš test toka odbijanja dizajniran je da bude što bliži iskustvu stvarnog korisnika koji klikne odbiti, uz dodatak sveobuhvatne instrumentacije. Evo postupka korak po korak:
Korak 1: Čista sesija preglednika. Skener pokreće čistu Chromium instancu -- bez kolačića, bez lokalne pohrane, bez predmemoriranih resursa, bez povijesti pregledavanja. To je pravi posjetitelj koji dolazi prvi put bez prethodnog stanja pristanka. Korak 2: Navigacija i bilježenje stanja prije pristanka. Skener učitava ciljni URL i čeka da se stranica stabilizira. Prije bilo kakve interakcije bilježi svaki kolačić prisutan u pregledniku, svaki izvršeni mrežni zahtjev i svaku kontaktiranu domenu treće strane. Ovo je osnovno stanje prije pristanka -- ono što stranica radi prije nego što korisnik uopće ima priliku za izbor. Korak 3: Detekcija bannera za pristanak. Koristeći našu biblioteku za detekciju koja pokriva 45 poznatih CMP-ova i generičke heuristike, skener identificira mehanizam pristanka i locira gumb za odbijanje. Ovaj korak koristi slojeviti pristup: prvo provjerava poznate CMP potpise skripti i njihove povezane DOM strukture, zatim se vraća na generičku detekciju fiksno pozicioniranih elemenata s tekstom vezanim uz pristanak i oznakama gumba poput "Odbij sve", "Odbaci", "Odbij" ili ekvivalentnih prijevoda. Korak 4: Klik na odbij. Skener klikne gumb za odbijanje i čeka da se stranica smiri. "Smiri" znači čekanje da se dovrše mrežni zahtjevi na čekanju, da prestanu mutacije DOM-a i da završe sve animacije ili prijelazi. Koristimo velikodušne vremenske pragove kako bismo izbjegli lažno pozitivne rezultate od sporih CMP implementacija. Korak 5: Snimka stanja nakon odbijanja. Skener ponovo bilježi potpuno stanje: sve kolačiće, svu mrežnu aktivnost, sve domene trećih strana. Ova snimka se uspoređuje s osnovnim stanjem prije pristanka kako bi se utvrdilo što se promijenilo. Korak 6: Ponovno učitavanje i provjera respawna. Skener ponovno učitava stranicu i čeka da se stabilizira. Zatim snima konačnu snimku stanja. Ovaj korak je ključan: otkriva je li radnja odbijanja trajna (poštovana kroz učitavanja stranica) ili se kolačići i praćenje ponovno aktiviraju kada se stranica učita iznova. Ako se kolačići koji su uklonjeni u koraku 5 ponovno pojave u koraku 6, to je consent respawn.Svaki korak proizvodi vremenski označene, arhivske dokaze: potpune popise kolačića s imenima, vrijednostima, domenama, rokovima isteka i oznakama; potpune zapise mrežnih zahtjeva s URL-ovima, metodama, kodovima odgovora i vremenskim podacima; te snimke zaslona cijele stranice. Ovaj lanac dokaza omogućuje provjeru i osporavanje svakog pojedinačnog nalaza.
Rezultati: 80,4% neuspjeha
Od 28.891 web stranice na kojima smo uspješno dovršili potpuni test toka odbijanja:
- 5.650 (19,6%) je prošlo. Nakon klika na odbij, nebitni kolačići su uklonjeni, zahtjevi za praćenje su prestali, a odbijanje je opstalo kroz ponovna učitavanja stranica.
- 23.241 (80,4%) je palo. Praćenje se nastavljalo u nekom obliku nakon što je korisnik izričito kliknuo odbiti.
Neuspjesi nisu jednoliki. Spadaju u različite kategorije koje se preklapaju -- jedna stranica može istovremeno pokazivati više načina neuspjeha.
Trajni kolačići: 10.848 stranica
Na 10.848 stranica (37,5% testiranih), nebitni kolačići su ostali u pregledniku nakon završetka toka odbijanja. To su kolačići klasificirani kao analitički, marketinški ili vezani uz praćenje koji su trebali biti uklonjeni ili spriječeni u postavljanju nakon radnje odbijanja.
Najčešći trajni kolačići pripadaju Google Analyticsu (`_ga`, `_gid`, `_gat`), Meta/Facebooku (`_fbp`, `fr`) i raznim oglašivačkim platformama. U mnogim slučajevima CMP uspješno ukloni neke kolačiće, ali ne uhvati sve -- što upućuje na nepotpunu integraciju između platforme za upravljanje pristankom i punog popisa skripti trećih strana na stranici.
Prisutnost ovih kolačića nakon odbijanja nije samo estetski problem. Svaki je trajni identifikator koji povezuje korisnikovu trenutnu sesiju s prošlim i budućim posjetima. Kolačić `_ga`, na primjer, jedinstveni je identifikator klijenta koji Google Analytics koristi za izgradnju longitudinalnog profila korisnikovog ponašanja kroz sesije. Ako opstane nakon odbijanja, korisnikovo pregledavanje nastavlja se pratiti i agregirati bez obzira na izraženo odbijanje.
Trajni trackeri: 14.547 stranica
Na 14.547 stranica (50,3% testiranih), servisi praćenja su ostali aktivni nakon odbijanja -- što znači da je preglednik nastavio slati zahtjeve poznatim domenama praćenja čak i nakon što je korisnik kliknuo gumb za odbijanje.
Ovo je drugačiji način neuspjeha od trajnosti kolačića. Tracker može biti aktivan bez postavljanja kolačića: zahtjevi piksela, pozivi beacona i učitavanja skripti prenose informacije (minimalno, korisnikovu IP adresu, stranicu koja upućuje i vremenske podatke) poslužiteljima trećih strana bez obzira na to je li kolačić pohranjen. To se ponekad naziva "praćenje bez kolačića" i sve je češće kako preglednici pooštravaju ograničenja kolačića trećih strana.
Razlika između broja kolačića (10.848) i broja trackera (14.547) je značajna. To znači da je na otprilike 3.700 stranica radnja odbijanja uspješno izbrisala kolačiće, ali nije spriječila nastavak zahtjeva za praćenje. CMP je obradio čišćenje kolačića, ali nije blokirao skripte koje uopće generiraju promet praćenja. To ukazuje na čest arhitekturalni problem: CMP je konfiguriran za upravljanje kolačićima (brisanje pri odbijanju, sprečavanje pri učitavanju), ali ne za upravljanje izvršavanjem skripti.
Consent respawn: 1.642 stranice, 4.932 kolačića
Consent respawn je najzabrinjavajući obrazac koji smo identificirali. Na 1.642 web stranice, kolačići koji su uspješno uklonjeni radnjom odbijanja ponovno su se pojavili nakon ponovnog učitavanja stranice. Na tim stranicama 4.932 pojedinačna kolačića pokazala su ovo ponašanje ponovnog pojavljivanja.
Consent respawn nije greška u jednom CMP-u ili jednoj konfiguraciji. To je strukturalni problem u načinu na koji se pristanak implementira kroz čitav web stack.
Kako se kolačić vrati nakon brisanja. Kada korisnik klikne odbiti, pravilno konfiguriran CMP radi dvije stvari: briše postojeće nebitne kolačiće (postavljajući im rok isteka u prošlost) i ažurira zapis o pristanku (obično kolačić sam ili unos u localStorage) koji govori CMP-ovoj logici blokiranja da spriječi pokretanje nebitnih skripti pri budućim učitavanjima stranice. Ako oboje funkcionira, korisnik je čist: nema kolačića za praćenje, nema skripti za praćenje.Consent respawn se događa kada brisanje uspije, ali blokiranje ne uspije. Najčešći scenarij:
1. CMP briše kolačić `_ga` kada korisnik klikne odbiti.
2. CMP postavlja kolačić stanja pristanka koji bilježi da je korisnik odbio analitiku.
3. Prilikom sljedećeg učitavanja stranice, CMP provjerava svoje stanje pristanka i zna da je korisnik odbio.
4. Ali: oznaka skripte Google Analyticsa ugrađena je izravno u predložak stranice (izvan tag managera) ili se učitava putem pravila tag managera koje ne provjerava stanje pristanka.
5. GA skripta se učitava, vidi da nema kolačića `_ga` i stvara novi.
6. Korisnikova odluka o odbijanju je poništena.
Varijacije ovog obrasca uključuju: skripte trećih strana učitane putem zakodiranih `