我的WordPress网站(http://robfuquay.staging.wpengine.com/)设置为仅在用户通过窗口底部附带的横幅表示同意后才允许Google Analytics(分析)cookie。 (这是通过以下插件完成的:https://wordpress.org/plugins/cookie-notice/)
在得到同意之前,我有一个名为ga-disable-UA-10877870-45
的cookie,该cookie设置为true
。单击同意按钮后,将添加另一个Cookie cookie_notice_accepted
并将其设置为true
。将cookie_notice_accepted
cookie设置为true
后,即可通过以下函数将ga-disable-UA-10877870-45
cookie设置为false
:
add_action( 'init', 'set_ga_disable_cookie_according_to_cookie_notice' );
function set_ga_disable_cookie_according_to_cookie_notice() {
if ( function_exists( 'cn_cookies_accepted' ) && function_exists('get_ua')) {
if ( cn_cookies_accepted() ) {
setcookie( 'ga-disable-'.get_ua(), 'false', 0, "/" );
} else {
if(!isset($_COOKIE['ga-disable-'.get_ua()])) {
setCookie( 'ga-disable-'.get_ua(), 'true' );
}
}
}
}
一旦ga-disable-UA-10877870-45
设置为false,就会在下一页加载Google Analytics(分析)Cookie:_ga
,_gat
和gid
。 (单击“同意”按钮后,页面会通过Cookie通知插件设置自动重新加载。)
我遇到的问题与客户有关。 Chrome,Safari和Opera(及其所有私有浏览器)均按预期工作:接受通知,重新加载页面,设置Google Analytics(分析)Cookie。 Firefox也可以按预期工作,但是 Firefox的私密浏览在设置其他页面请求之前不会设置Google Analytics(分析)Cookie。这意味着即使页面自动重新加载后,我也必须刷新页面一次。我的两台MacBook都是一致的。
我允许使用cookie,并且不阻止跟踪,那么Firefox私人浏览为什么会这样?
答案 0 :(得分:1)
@Jamie_D在确定问题上是正确的:
根据此页面:“在私有窗口中设置的Cookie会暂时保存在内存中,与常规窗口Cookie分开,并在私有会话结束时被丢弃”
由于cookie没有显示在开发工具中,因此解决方案是在控制台中输入以下JavaScript:
_ga
来源:https://support.mozilla.org/en-US/questions/1031619#answer-672435
返回的预期cookie包括_gat
,_gid
和{{1}}。
我再次检查了Google Analytics(分析)是否提取了正确的实时数据,并且一切看起来都很好。
很明显,Firefox私人浏览不需要两次加载页面来设置cookie。Firefox只是不显示它们是在开发工具中设置的。