Firefox私人浏览需要两次页面加载才能设置Cookie

时间:2018-11-16 17:28:35

标签: php wordpress firefox cookies google-analytics

我的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_gatgid。 (单击“同意”按钮后,页面会通过Cookie通知插件设置自动重新加载。)

我遇到的问题与客户有关。 Chrome,Safari和Opera(及其所有私有浏览器)均按预期工作:接受通知,重新加载页面,设置Google Analytics(分析)Cookie。 Firefox也可以按预期工作,但是 Firefox的私密浏览在设置其他页面请求之前不会设置Google Analytics(分析)Cookie。这意味着即使页面自动重新加载后,我也必须刷新页面一次。我的两台MacBook都是一致的。

我允许使用cookie,并且不阻止跟踪,那么Firefox私人浏览为什么会这样?

1 个答案:

答案 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只是不显示它们是在开发工具中设置的。