Czy w Google Analytics jest ustawienie blokujące używanie plików cookie dla użytkowników, którzy jeszcze nie wyrazili zgody?

171

Zgodnie z art. 5 ust. 3 dyrektywy UE o prywatności i łączności elektronicznej (zwanym dalej „przepisami dotyczącymi plików cookie”) witryny internetowe skierowane do użytkowników z UE muszą uzyskać zgodę użytkowników, zanim utworzą plik cookie.

Zobacz wytyczne ICO

Próbuję rozwiązać ten problem w Google Analytics w mojej witrynie internetowej.

Wyobrażam sobie, że Google Analytics (GA) może przeprowadzić pewien poziom gromadzenia danych analitycznych bez konieczności stosowania plików cookie.

Nie mogę jednak znaleźć żadnych informacji na ten temat (w witrynach Google / panelach ustawień) o tym, jak przekazywać informacje o „stanie zgody” z powrotem do Google podczas żądania strony. Tak więc, moim jedynym rozwiązaniem wydaje się być to, że nie należy osadzać kod tagu Google w ogóle , jeśli użytkownik nie ma jednoznacznie wyraził zgodę. Co wydaje się nieco drastyczne.

Pozwolenie, aby mój skrypt po stronie serwera ustawił hasConsentedToCookies=FALSEflagę w tagach JavaScript, pozwoliłoby mi poinstruować usługi Google, aby działały w sposób z wdziękiem zdegradowany.

Czy w Google Analytics jest ustawienie blokujące używanie plików cookie dla użytkowników, którzy jeszcze nie wyrazili zgody?

Jeśli tak, gdzie mogę znaleźć informacje na ten temat?

JW.
źródło
2
Aktualizacja: to pytanie dotyczyło zarówno Adsense, jak i Analytics, ale ponieważ odpowiedź na każdy z nich może być inna, wyodrębniłem aspekt „Google Adsense” z tego pytania, aby każdy z nich był bardziej spójny.
JW.
Interesująca
Eduardo
Na wypadek, gdybyś tego nie wiedział: czy słyszałeś o Piwiku? ( piwik.org )
TheHippo
Dobre i ciekawe pytanie!
Rob
Google mówi, że możesz wyłączyć pliki cookie, ale wygląda na to, że nie działa lub robię coś nie tak. Link: developers.google.com/analytics/devguides/collection/…

Odpowiedzi:

149

EDYCJA (2019): Poniższa odpowiedź pochodzi sprzed RODO i prawdopodobnie wymaga korekty.

Google Analytics ma nowy zestaw interfejsów API, które pomagają zapewnić zgodność z rezygnacją z plików cookie. Oto dokumentacja , a oto ich dokumenty pomocy .

Pojawiły się pewne niejasności co do tego, czy unijne przepisy dotyczące plików cookie (wdrożone w krajach członkowskich) wymagają, aby pasywne śledzenie analityki internetowej wymagało mechanizmów wyrażenia zgody w celu zapewnienia zgodności. Jeśli jesteś zaniepokojony w ten czy inny sposób, skonsultuj się z prawnikiem. Google umożliwia Ci podjęcie decyzji, jak chcesz postępować.

Zostawią szczegóły implementacji Tobie, ale pomysł jest taki, że gdy już zdecydujesz, czy śledzić użytkownika w Google Analytics, jeśli odpowiedź brzmi `` nie śledzić '', ustaw następującą właściwość na true przed Google Analytics działa:

window['ga-disable-UA-XXXXXX-Y'] = true;

Gdzie UA-XXXXXX-Y to identyfikator Twojego konta w Google Analytics

Jak zauważyli inni plakaty, Google Analytics opiera się na plikach cookie. Nie możesz więc wykonywać żadnego śledzenia bez plików cookie. Jeśli ustaliłeś, że ktoś nie ma być gotowany do śledzenia, musisz zaimplementować coś takiego:

if(doNotCookie()){
   window['ga-disable-UA-XXXXXX-Y'] = true;
}

Włącz

Wymaga to trochę jujitsu przy pierwszym ładowaniu Google Analytics, ponieważ ta właściwość będzie musiała zostać ustawiona przed uruchomieniem Google Analytics, aby zapobiec śledzeniu w ogóle, co oznacza, że ​​w przypadku podejścia „włączanie śledzenia” d prawdopodobnie trzeba wdrożyć mechanizm, w którym przy pierwszej wizycie Google Analytics jest automatycznie wyłączane w przypadku braku opt-in cookie (pliki cookie określające preferencje dotyczące plików cookie są wyraźnie dozwolone), a następnie, jeśli nastąpi opt-in, ponownie prowadzi Google Analytics. Przy kolejnych odsłonach wszystko przebiegałoby sprawnie.

Może wyglądać mniej więcej tak (pseudokod):

if( hasOptedOut() || hasNotExpressedCookiePreferenceYet() ){ //functions you've defined elsewhere
     window['ga-disable-UA-XXXXXX-Y'] = true;
}
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXX-Y']);
  _gaq.push(['_trackPageview']);


  function onOptIn(){ //have this run when/if they opt-in.
      window['ga-disable-UA-XXXXXX-Y'] = false;
      //...snip...
      //set a cookie to express that the user has opted-in to tracking, for future pageviews
      _gaq.push(['_trackPageview']); // now run the pageview that you 'missed'
   }

Zrezygnuj

Dzięki takiemu podejściu pozwolisz użytkownikowi zrezygnować ze śledzenia, co oznaczałoby, że użyjesz pliku cookie do ustawienia ga-disable-UA-XXXXXX-Y'właściwości i pliku cookie do zarządzania nią w przyszłości:

if( hasOptedOut() ){ // function you've defined elsewhere 
     window['ga-disable-UA-XXXXXX-Y'] = true;
}

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXX-Y']);
  _gaq.push(['_trackPageview']);
Yahel
źródło
2
Mały czubek dobrej odpowiedzi - if (doNotCookie () {powinno być if (doNotCookie ()) {
Roee Shenberg
1
Dziękuję za odpowiedź. Chociaż nie powiedziałbym „skonsultuj się z prawnikiem”. Technik prawdopodobnie szybciej przeczyta i zrozumie wskazówki, niż prawnik, aby poznać niuanse szczegółów technicznych.
JW.
1
Czy mam rozumieć, że jeśli użytkownik zdecyduje się NIE przechowywać plików cookie, rozwiązaniem jest przechowywanie pliku cookie z taką preferencją? A może ten plik cookie nie podlega przepisom UE?
Jonathon Horsman
5
Tak. Większość przepisów, które widziałem (w szczególności brytyjskie i, jak sądzę, francuskie) wyraźnie mówi, że plik cookie przechowujący ich preferencje dotyczące plików cookie nie stanowi naruszenia zasad. Ponieważ pliki cookie są jedynym powszechnie dostępnym sposobem przechowywania stanu w przeglądarce, nie da się tego obejść.
Yahel
17

Możesz wyłączyć używanie plików cookie dla Google Analytics, określając {'storage' : 'none'}opcję podczas tworzenia instancji trackera.

Więcej informacji można znaleźć w przewodniku Google na ten temat .

severin
źródło
1
Przewodnik mówi, że jeśli wyłączysz pliki cookie, musisz sam zaimplementować podobne śledzenie, więc to nie pomaga.
mpartel
4
@mpartel Tracisz część informacji: powracający użytkownicy i konwersje wielokanałowe. Ale jeśli ich nie potrzebujesz, nadal jest to dopuszczalne.
Ali
16

Krótko mówiąc, BBC (prawdopodobnie najpopularniejsza witryna w Wielkiej Brytanii) przyjęła interesujące podejście do przestrzegania plików cookie - wyświetliła użytkownikom baner z informacją, że pliki cookie są ustawione, i podają kilka linków.

Ten wyjaśnia, czym są pliki cookie. Ten pozwala im zarządzać swoimi plikami cookie , ale co najciekawsze, podają link do Google Analytics, aby umożliwić użytkownikom całkowitą rezygnację z GA . Podsumowując, BBC przyjęło pogląd, że może powiedzieć użytkownikowi, jakie pliki cookie są ustawione, a następnie podać link do Google, aby umożliwić użytkownikowi rezygnację ze wszystkich plików cookie GA. Dla mnie jest to o wiele mniej kłopotliwe niż nakazanie GA rezygnacji z adresu za pośrednictwem JS.

Martin Clarke
źródło
13
NAPRAWDĘ nie zakładałbym, że rozwiązanie BBC jest do przyjęcia. W rzeczywistości ich rozwiązanie jest zasadniczo wadliwe, co najmniej z trzech powodów: 1) ustawia pliki cookie przed zapytaniem, czy chcesz je zaakceptować, 2) musi ustawić plik cookie, aby zapisać preferencje dotyczące plików cookie, oraz 3) to stwierdza, że ​​witryna nie będzie kontrolowała plików cookie stron trzecich, co jest bezpośrednim naruszeniem ducha, jeśli nie litery dyrektywy UE. Podejrzewam, że Pszczoły dostaną tym klapsa, ponieważ starają się przekraczać granice prawa na tak wiele sposobów, jak to możliwe, wyglądając inaczej.
David T. Macknet
Zajrzyj na blogs.wsj.com/tech-europe/2012/05/25/…, aby uzyskać dobrą dyskusję.
David T. Macknet
Oczywiście, może się mylę - najwyraźniej zmienili wymagania? blog.silktide.com/2012/05/ ... mówi o zmianie wymagań, więc więcej nie wiem. Po prostu nie wiem o tych ludziach, a MIESZKAM tutaj (na razie)!
David T. Macknet
Rejestr ma baner, który mówi, że kontynuując korzystanie z ich witryny, zakładają, że zgadzasz się na użycie plików cookie, a także przycisk akceptacji.
iamichi
6
@MartinClarke - Cóż ... właściwie, nie jestem taki pewien, czy pójdę za przykładem firmy medialnej, w szczególności dlatego, że spodziewałbym się, że BBC zajmuje specjalną pozycję w Wielkiej Brytanii i prawdopodobnie zostałbym poproszony o kształtowanie w górę, a nie grzywną. Myślę, że jest to bardziej kwestia ryzyka - BBC nie jest narażone na duże ryzyko, jako instytucja finansowana ze środków publicznych, podczas gdy witryna komercyjna może mieć.
David T. Macknet
15

Często nigdy nie proszę użytkowników o rezygnację z Google Analytics, ponieważ nigdy nie ustawiam plików cookie i nigdy nie zapisuję ich adresu IP (i innych danych osobowych).

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-98765432-1', 'www.example.com', {
  'anonymizeIp': true
  , 'storage': 'none'
  , 'clientId': window.localStorage.getItem('ga_clientId')
});
ga(function(tracker) {
  window.localStorage.setItem('ga_clientId', tracker.get('clientId'));
});
ga('send', 'pageview');

Sprawdź również ten kod w sekcji Konwertuj pliki cookie Google Analytics na pamięć lokalną / sesyjną

Ten skrypt nie ustawi żadnych plików cookie, ale nadal będzie śledzić za pomocą Google Analytics. Będzie to miało taki sam wpływ na prywatność, jak używanie plików cookie, ponieważ Google nadal rejestruje adresy IP użytkowników.

W tym miejscu pojawia się przełącznik anonymizeIp. Informuje to Google, że ma zapisywać tylko anonimową wersję adresu IP. Zanonimizowany adres IP nie jest uważany za dane osobowe, więc prywatność użytkowników będzie szanowana.

Prawo dotyczące plików cookie AFAIK dotyczy prywatności i umożliwia witrynie śledzenie ich wykorzystania. Nie jestem prawnikiem ani nic takiego, ale moim zdaniem ten skrypt jest zgodny z unijnym prawem dotyczącym plików cookie.

Sprawdź ten kawałek, aby zobaczyć go w akcji: http://plnkr.co/MwH6xwGK00u3CFOTzepK

Elmer
źródło
witam, nie zawsze jest to bezpieczne podejście: oto powody.
Caesarsol
Do tego służy ta 'anonymizeIp': trueopcja, to nie będzie przechowywać adresu IP. Lubię używać lokalnego przechowywania zamiast plików cookie z kilku powodów, które nie mają nic wspólnego z prawem dotyczącym plików cookie.
Elmer
5
Nie, to w ogóle nie jest zgodne z: - anonymizeIp wprowadza w błąd i nadal przechowuje zbyt wiele informacji zgodnie z prawem UE - Lokalne przechowywanie jest traktowane jako „Cookie” przez przepisy UE, więc ten fragment kodu dostarcza mniej informacji w AH i nadal nie jest zgodny z prawem.
Flunch
„Unijne prawo dotyczące plików cookie” jest właściwie dyrektywą, więc zależy od konkretnych przepisów członków UE. Na przykład włoski organ ochrony prywatności wyraźnie stwierdził, że zgodnie z prawem włoskim zgoda użytkownika nie jest wymagana, jeśli anonimizujesz adres IP i wyłączysz udostępnianie danych innym usługom w konsoli Google Analytics.
mcont
4
@Flunch anonymizeIp wprowadza w błąd i nadal zawiera zbyt wiele informacji zgodnie z prawem UE” Proszę podać referencje. Dlaczego nie jest to do przyjęcia i kiedy byłoby OK? Co to jest „za dużo informacji” ?
Ali
3

Możesz wyłączyć pliki cookie Google Analytics, dodając ten kod u góry kodu Google Analytics (przed linią: var _gaq = _gaq || [];):

ga('create', 'UA-XXXXXX-XX', {'storage': 'none'});
ga(function(tracker) {
  var clientId = tracker.get('clientId');
});

Jednak niektóre funkcje Google Analytics (na przykład statystyki w czasie rzeczywistym) nie działają poprawnie po tej modyfikacji. Więcej o plikach cookie Google Analytics: https://developers.google.com/analytics/devguides/collection/analyticsjs/domains?hl=en#disableCookies

bez nazwy
źródło
co zrobiłby var clientId = ...kod? O ile wiem, definiuje zmienną lokalną wewnątrz funkcji, czy nie jest to bezużyteczne?
Caesarsol
myślę, że to tylko przykład, powinieneś używać clientIdwewnątrz funkcji, tak jak jest to zrobione na stackoverflow.com/questions/4502128/ ...
caesarsol
1

Jak dotąd powszechnym sposobem radzenia sobie z tym problemem jest metoda stosowana przez wtyczkę jquery wolf-software, która uniemożliwia uruchomienie skryptu do czasu, gdy użytkownik się na to zgodzi. ICO zaktualizowało swoje wytyczne w zeszłym tygodniu, aby stwierdzić, że można na nich polegać. dorozumiana zgoda ”takiego rodzaju, jaki jest używany w witrynie BBC. Chociaż nie uważam, że jest to zgodne z duchem prawa, to jest to, co jest akceptowane przez tych, którzy je egzekwują. Biorąc pod uwagę, że większość UE nie wdrożyła jeszcze dyrektywy, powiedziałbym, że jest wysoce prawdopodobne, że pójdą w ślady Wielkiej Brytanii.

Jest tutaj interesujący artykuł o aktualizacjach w Wielkiej Brytanii:

http://www.redant.com/articles/eu-cookie-law-update-ico-adopts-softly-softly-approach/

Chris Disley
źródło
1

EDIT: Jest to ustawienie Google Analytics za to z fragmentem Asynchronous GA.

Nie ma do tego ustawienia Google Analytics, jak sugerujesz, musisz warunkowo wykluczyć skrypt dla tych, którzy nie wyrazili zgody, jeśli chcesz użyć skryptu śledzenia JavaScript Google Analytics.

Istnieje już kilka rozwiązań, które mogą być pomocne zamiast wprowadzać własne. Javascript: http://cookies.dev.wolf-software.com/demo/index.htm

Oto rozwiązanie, które umożliwia korzystanie z podstawowych funkcji Google Analytics bez plików cookie, wykonując po stronie serwera śledzenia, przykład jest w PHP: http://techpad.co.uk/content.php?sid=205

Alex Taylor
źródło
Dzięki za linki. bardzo przydatne linki.
JW.
1

Aby uzyskać mniej uciążliwe rozwiązanie UX, możesz ustawić dorozumianą zgodę na analityczne pliki cookie Google, umieszczając link do: cookiestatement.eu (bez javascript, bez wyskakujących okienek, bez reklam)

Matt Clegg
źródło
1

Przepraszam, że spóźniłem się z odpowiedzią, ale ostatnio szukałem tego samego, dopóki sam nie znalazłem sposobu. Może to nie jest właściwy sposób, ale działa. (działa tylko w danej witrynie, nie wyłącza całkowicie GA). Testowałem przez kilka dni, aby się upewnić.

Sposób, w jaki udało mi się to zrobić, to użycie pliku cookie PHP. Zacznij od dodania pliku analyticstracking.php, w tym ...

<?php include_once('analyticstracking.php'); ?>

aw analyticstracking.php dodaj następujący ...

<?php
if($_COOKIE['consent_cookie']=="Y"){
?>

<script type="text/javascript">
var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-********-*']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript';     ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' :      'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0];      s.parentNode.insertBefore(ga, s);
  })();
</script>

<?php   
}
else{
//do nothing
}
?>

Zanim użytkownik wyrazi zgodę na pliki cookie, Google Analytics nie będzie działać, a gdy to zrobi, plik „zgody_cookie” zostanie zapisany i umożliwi działanie GA, ale jeśli plik cookie „google” zostanie zniszczony, Google Analytics przestanie działać (oczywiście).

Tak jak powiedziałem, może to nie być właściwy sposób, ale próbowałem i testowałem i tak jest. Mam nadzieję, że to komuś pomoże.

Pezmo
źródło
0

Miałem ten sam problem.

W końcu otrzymałem rozwiązanie w linii odpowiedzi Elmera, ale zachowując ostrożność w odniesieniu do adresów IP, czyli bez używanialocalStorage

// Create a fake ID instead of storing anything locally
function guidGenerator() {
    var S4 = function() {
       return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
    };
    return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
}

...
ga('create', 'UA-XXXXXX-Y', {
        'storage': 'none',
        'clientId': guidGenerator()
});

(-) Każda odwiedzona strona będzie się liczyła jako nowy gość w Google Analytics, więc tracę tam sporo funkcjonalności.

(+) Ale mogę z tym żyć i uważam, że jestem bezpieczny, jeśli chodzi o przepisy dotyczące prywatności danych.

Wszelkie uwagi lub sugestie dotyczące ulepszeń są mile widziane.

J0ANMM
źródło
-3

GA nie działa bez plików cookie, potrzebuje ich do „identyfikacji” odwiedzającego, jeśli wcześniej odwiedził Twoją witrynę. Dlatego w GA nie ma takiego ustawienia, GA po prostu nie rejestruje odwiedzającego, jeśli nie może utworzyć pliku cookie.

Jeśli użytkownik pochodzi z UE i nie wyraził zgody, należy wykluczyć skrypt Google Analytics.

Scriptor
źródło