编辑(2019):以下答案早于GDPR,可能需要修订。
谷歌分析有一套新的API来帮助遵守cookie选择退出。这是文档,这是他们的帮助文档。
关于欧盟Cookie法规(在成员国实施)是否要求被动网络分析跟踪需要选择加入的合规机制,存在一些模糊之处。如果您以某种方式担心,请咨询律师。Google授权您决定如何继续。
他们会将实现细节留给您,但是,我们的想法是,一旦您确定是否在Google Analytics中跟踪用户,如果答案是不跟踪,那么在Google Analytics(分析)运行之前,您将以下属性设置为true:
window['ga-disable-UA-XXXXXX-Y'] = true;
其中 UA-XXXXXX-Y 是您在 Google Analytics(分析)中的帐户 ID
正如其他发帖人所指出的那样,谷歌分析依赖于cookie。因此,如果没有 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 来设置属性,并使用 Cookie 来管理它:ga-disable-UA-XXXXXX-Y'
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']);