Есть ли в Google Analytics параметр, запрещающий использование файлов cookie для пользователей, которые еще не дали свое согласие?

172

В соответствии со статьей 5 (3) ЕС Директивы об электронной конфиденциальности (также известной как «Законы о файлах cookie»), веб-сайты, предназначенные для пользователей из ЕС, должны получить согласие пользователей, прежде чем они установят файл cookie.

Смотрите руководство ICO

Я пытаюсь согласовать это с Google Analytics на моем веб-сайте.

Я полагаю, что Google Analytics (GA) может выполнять определенный уровень сбора аналитических данных, не требуя использования файлов cookie.

Однако я не могу найти информацию об этом (на сайтах / панелях настроек Google) о том, как передавать информацию о «состоянии согласия» обратно в Google во время запроса страницы. Итак, мой единственный вариант , кажется, что я не должен вставлять код тегов Google на всех , если пользователь явно не дал согласие. Что кажется немного решительным.

Разрешение моему серверному сценарию установить hasConsentedToCookies=FALSEфлажок в тегах JavaScript позволит мне проинструктировать службы Google, чтобы они работали изящно униженным образом.

Есть ли в Google Analytics параметр, запрещающий использование файлов cookie для пользователей, которые еще не дали свое согласие?

Если так, где я могу найти информацию об этом?

JW.
источник
2
Обновление: этот вопрос раньше задавался как об AdSense, так и об аналитике, но, поскольку ответы на каждый из них могут отличаться, я извлек аспект «Google AdSense» из этого вопроса, чтобы каждый из них был более сплоченным.
JW.
Немного интересного
Эдуардо
На всякий случай, если вы не знаете этого: слышали ли вы о Piwik? ( piwik.org )
TheHippo
Хороший и интересный вопрос!
Роб
Google говорит, что вы можете отключить куки-файлы, но они, похоже, не работают, или я делаю что-то не так. Ссылка: developers.google.com/analytics/devguides/collection/...

Ответы:

149

РЕДАКТИРОВАТЬ (2019): приведенный ниже ответ предшествует ВВПР и, вероятно, требует пересмотра.

В Google Analytics появился новый набор API-интерфейсов, которые помогают соблюдать запрет на использование файлов cookie. Вот документация , и вот их справочные документы .

Существует некоторая двусмысленность относительно того, требуют ли Правила о файлах cookie ЕС (как они применяются в странах-членах), что для пассивного отслеживания веб-аналитики требуются механизмы согласия на соответствие. Если вы так или иначе обеспокоены, проконсультируйтесь с адвокатом. Google дает вам возможность принять решение о том, как вы хотите действовать.

Они оставят вам детали реализации, но идея заключается в том, что после того, как вы определили, отслеживать или нет пользователя в Google Analytics, если ответ не отслеживать, вы должны установить для следующего свойства значение true, прежде чем Google Аналитика работает:

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

Где UA-XXXXXX-Y - идентификатор вашей учетной записи в Google Analytics

Как отмечали другие авторы, Google Analytics использует файлы cookie. Таким образом, вы не можете выполнять любые виды отслеживания без файлов cookie. Если вы определили, что кого-то не нужно готовить для отслеживания, вам нужно реализовать что-то вроде этого:

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

Выбрать в

Это требует некоторого джиу-джитсу при первой загрузке Google Analytics, так как это свойство нужно будет установить перед запуском Google Analytics, чтобы не допустить отслеживания, что означает, что для подхода «согласие на отслеживание» вы Возможно, потребуется внедрить механизм, при котором при первом посещении Google Analytics автоматически отключается при отсутствии cookie-файла с подпиской (cookie-файлы, которые определяют предпочтения cookie-файлов, явно разрешены), а затем, если происходит согласие, повторно запускает Google Analytics. При последующих просмотрах страниц все будет работать гладко.

Может выглядеть примерно так (псевдокод):

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'
   }

Уклоняться

При таком подходе вы позволите пользователю отказаться от отслеживания, что будет означать, что вы будете использовать cookie для установки ga-disable-UA-XXXXXX-Y'свойства и cookie для управления им в будущем:

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
источник
2
Крошечный придурок с хорошим ответом - если (doNotCookie () {должно быть, если (doNotCookie ()) {
Роуи Шенберг,
1
Спасибо за ответ. Хотя я бы не сказал «проконсультироваться с адвокатом». Вероятно, для тех, кто читает и понимает руководство, гораздо быстрее, чем для того, чтобы узнать нюансы технических подробностей.
JW.
1
Должен ли я понимать, что если пользователь выбирает НЕ сохранять куки, решение состоит в том, чтобы сохранить куки с этим предпочтением? Или это печенье не считается подпадающим под регулирование ЕС?
Джонатан Хорсман
5
Да. В большинстве правил, которые я видел (в частности, в Великобритании и, я полагаю, во Франции), прямо говорится, что куки-файлы, хранящие их предпочтения, не являются нарушением правил. Так как файлы cookie являются единственным универсально доступным способом хранения состояния в браузере, это никак не обойти.
Yahel
17

Вы можете отключить использование файлов cookie для Google Analytics, указав этот {'storage' : 'none'}параметр при создании экземпляра трекера.

См . Руководство Google по этому вопросу для получения более подробной информации.

Северин
источник
1
В руководстве говорится, что если вы отключите файлы cookie, вы должны самостоятельно внедрить аналогичное отслеживание, поэтому, похоже, это не поможет.
Мартарт
4
@mpartel Вы теряете некоторую информацию: возвращение посетителей и многоканальные конверсии. Но если вам это не нужно, это все еще приемлемо.
Али
16

В качестве краткого замечания, BBC (вероятно, самый популярный сайт в Великобритании) предпринял интересный подход к соблюдению cookie-файлов - они показали пользователям баннер, сообщающий им, что cookie-файлы установлены, и предоставляют пару ссылок.

Это объясняет, что такое куки. Этот позволяет им управлять своими куки , но самое интересное, что они предоставляют ссылку на Google Analytics, чтобы пользователи могли полностью отказаться от GA . Итак, в итоге, BBC решили, что они могут сообщить пользователю, какие куки установлены, а затем предоставить ссылку на Google, чтобы позволить пользователю отказаться от всех файлов cookie GA. Для меня это намного меньше хлопот, чем когда вы говорите GA отказаться от адреса через JS.

Мартин Кларк
источник
13
Я ДЕЙСТВИТЕЛЬНО не предположил бы, что решение BBC является приемлемым. На самом деле, их решение в корне ошибочно, по крайней мере, по трем причинам: 1) оно устанавливает куки, прежде чем спрашивать, готовы ли вы их принять, 2) оно должно установить куки, чтобы сохранить ваши предпочтения куки, и 3) оно заявляет, что сайт не будет контролировать сторонние куки, что является прямым нарушением духа, если не буквой директивы ЕС. Я подозреваю, что Биби будут избиты этим, поскольку они пытаются раздвинуть границы закона как можно больше способов, появляясь иначе.
Дэвид Т. Макнет
Загляните на blogs.wsj.com/tech-europe/2012/05/25/… за хорошей дискуссией.
Дэвид Т. Макнет
Конечно, может я ошибаюсь - видимо они изменили требования? blog.silktide.com/2012/05/… рассказывает об изменении требований, поэтому я больше не знаю. Просто не знаю об этих людях, и я живу здесь (пока)!
Дэвид Т. Макнет
У Реестра есть баннер, на котором написано, что, продолжая использовать их сайт, они предполагают, что вы согласны разрешить им использовать файлы cookie, а также кнопку подтверждения.
Иамичи
6
@MartinClarke - Ну ... на самом деле, я не уверен, что последую примеру медиа-компании, в частности, потому что я ожидаю, что BBC займет особую позицию в Великобритании и, скорее всего, скажут, вверх, а не быть наложенным на штраф. Я думаю, что это больше вопрос риска - BBC не имеет большого риска, как финансируемый государством орган, в то время как коммерческий сайт может иметь.
Дэвид Т. Макнет
15

Я часто никогда не прошу пользователей отказаться от Google Analytics, потому что я никогда не устанавливаю куки и никогда не сохраняю их ip (и другие личные данные).

(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');

Также ознакомьтесь с этим кодом в разделе Преобразование файлов cookie Google Analytics в локальное хранилище / хранилище сеансов.

Этот скрипт не будет устанавливать какие-либо куки, но все равно будет отслеживаться с помощью Google Analytics. На самом деле это будет иметь тот же эффект на конфиденциальность, что и использование файлов cookie, поскольку Google по-прежнему записывает IP-адрес пользователя.

Вот тут-то и приходит переключатель anonymizeIp. Это говорит Google о необходимости сохранять только анонимную версию IP-адреса. Анонимный IP-адрес не считается персональными данными, поэтому конфиденциальность пользователей будет уважаться.

Закон об куки-файлах AFAIK касается конфиденциальности и позволяет веб-сайту отслеживать их использование. Я не юрист или что-то еще, но, по моему мнению, этот сценарий соответствует закону ЕС о файлах cookie.

Проверьте этот план, чтобы увидеть его в действии: http://plnkr.co/MwH6xwGK00u3CFOTzepK

Элмер
источник
привет, это не всегда безопасный подход: вот причины.
Цезарсоль
Вот для чего 'anonymizeIp': trueнужна опция, здесь не будет храниться IP-адрес. Мне нравится использовать localalstorage для файлов cookie по нескольким причинам, которые не имеют ничего общего с законом о файлах cookie.
Элмер
5
Нет, это совсем не соответствует: - anonymizeIp вводит в заблуждение и по-прежнему хранит слишком много информации в соответствии с законами ЕС - LocalStorage рассматривается как «Cookie» в соответствии с законами ЕС Так что этот фрагмент кода дает вам меньше информации в GA и по-прежнему не соответствует с законом.
Flunch
«Закон ЕС о печеньках» на самом деле является директивой, поэтому он зависит от конкретных законов членов ЕС. Например, итальянский орган по обеспечению конфиденциальности прямо заявил, что для итальянского права согласие пользователя не требуется, если вы анонимизируете IP-адрес и отключите обмен данными с другими службами на консоли Google Analytics.
mcont
4
@Flunch " anonymizeIp вводит в заблуждение и все еще хранит слишком много информации в соответствии с законами ЕС". Пожалуйста, предоставьте ссылки. Почему это не приемлемо, и когда это будет хорошо? Что такое "слишком много информации" ?
Али
3

Вы можете отключить файлы cookie Google Analytics, добавив этот код вверху кода Google Analytics (перед строкой: var _gaq = _gaq || [];):

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

Однако некоторые функции Google Analytics (например, статистика в реальном времени) не работают должным образом после этой модификации. Подробнее о файлах cookie Google Analytics: https://developers.google.com/analytics/devguides/collection/analyticsjs/domains?hl=en#disableCookies

без имени
источник
что будет var clientId = ...делать код? Насколько я знаю, он определяет локальную переменную внутри функции, разве это не бесполезно?
Цезарсоль
Я думаю, это только пример, вы должны использовать clientIdвнутри функции, как это делается на stackoverflow.com/questions/4502128/…
caesarsol
1

Обычный способ справиться с этим до сих пор - это метод, используемый плагином wolf-software jquery, при котором он запрещает запуск сценария до тех пор, пока пользователь не включит его. Однако на прошлой неделе ICO обновил свои рекомендации, заявив, что на него можно положиться » подразумеваемое согласие », которое используется на сайте BBC. Хотя я не думаю, что это в духе закона, это то, что считается приемлемым для тех, кто его соблюдает. Учитывая, что большая часть ЕС еще не выполнила эту директиву, я бы сказал, что весьма вероятно, что они последуют примеру Великобритании.

Здесь есть интересная статья об обновлениях в Великобритании:

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

Крис Дисли
источник
1

РЕДАКТИРОВАТЬ: есть настройка Google Analytics для этого с помощью фрагмента асинхронной GA.

Для этого нет настройки Google Analytics, так как вы предлагаете, вам нужно будет условно исключить сценарий для тех, кто не согласился, если вы хотите использовать сценарий отслеживания JavaScript в Google Analytics.

Уже есть некоторые решения, которые могут быть полезны вместо того, чтобы предлагать свои собственные. Javascript: http://cookies.dev.wolf-software.com/demo/index.htm

Вот решение, которое позволяет использовать основные функции Google Analytics без файлов cookie, выполняя отслеживание на стороне сервера, этот пример на PHP: http://techpad.co.uk/content.php?sid=205

Алекс Тейлор
источник
Спасибо за ссылки. очень полезные ссылки.
JW.
1

Для менее навязчивого решения UX вы можете дать согласие на аналитические файлы cookie Google, разместив ссылку на: cookiestatement.eu (без JavaScript, всплывающих окон, без рекламы)

Мэтт Клегг
источник
1

Извините за опоздание, чтобы ответить, но я искал то же самое в последнее время, пока я сам не нашел способ. Это может быть неправильный способ сделать это, но это работает. (работает только на данном сайте, полностью не отказывается от ГА). Я проверил несколько дней, чтобы убедиться.

Мне удалось сделать это с помощью файла cookie PHP. Сначала начните с добавления файла analyticstracking.php ...

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

и в analyticstracking.php добавьте следующее ...

<?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
}
?>

До того, как пользователь согласился на файлы cookie, Google Analytics не будет работать, и как только они это сделают, «согласие_cookie» будет сохранено и позволит GA работать, но если cookie «Google» будет уничтожено, это остановит работу GA (очевидно).

Как я уже сказал, это может быть неправильный путь, но я пробовал и проверял, и это делает. Надеюсь, это кому-нибудь поможет.

Pezmo
источник
0

Я столкнулся с той же проблемой.

В конце концов, я получил решение в ответе Элмера, но в безопасности по отношению к IP, то есть без использованияlocalStorage

// 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()
});

(-) Каждая посещенная страница будет считаться новым посетителем в Google Analytics, поэтому я теряю там довольно много функций.

(+) Но я могу с этим смириться, и я верю, что я в безопасности в отношении законодательства о конфиденциальности данных.

Любые отзывы или предложения по улучшению приветствуются.

J0ANMM
источник
-3

GA не работает без файлов cookie, он нужен для того, чтобы «идентифицировать» посетителя, если он посещал ваш сайт раньше. Таким образом, в GA нет настройки для этого, GA просто не записывает посетителя, если он не может создать cookie.

Если пользователь из ЕС и не зарегистрировался, вы должны исключить скрипт google-analytics, я думаю.

Scriptor
источник