【发布时间】:2014-08-08 03:28:43
【问题描述】:
我正在使用 PhantomJS 和 rasterize.js example 来截取我网站的屏幕截图。该过程是自动化的,每五分钟拍摄一次新的屏幕截图以检查网站的状态。我正在使用 Google Analytics 跟踪我网站上的用户,并希望排除 PhantomJS 产生的流量。为此,我在 rasterize.js 文件中设置了一个 _setVar cookie,并在 Google Analytics 中创建了一个自定义过滤器来过滤掉流量。由于某种原因,这不起作用,我不知道为什么。我在 rasterize.js 中使用以下代码来设置 cookie:
phantom.addCookie({
'name': '_setVar',
'value': 'ignore_analytics',
'domain': 'MyWebsite.io'
});
这个方法应该有效,但是当我在 Google Analytics 中查看我网站上的实时流量时,PhantomJS 客户端仍然出现。为什么这不起作用?
【问题讨论】:
-
为什么设置 cookie 有效? GA 不会自动将 cookie 数据发送到跟踪服务器,即使它是以(已弃用的)GA 方法命名的。
-
我阅读了一篇教程 (seerinteractive.com/blog/…),该教程建议将此作为排除内部流量的方法。请向我解释为什么这是不正确的。
-
您可以在 Google Analytics 中使用自定义 var 进行过滤,但设置名为 setVar 的 cookie 不会创建自定义变量 - 该教程有点误导(加上它有点过时了,Univeral Analytics语法改变)。按浏览器名称过滤可能会更容易(过滤器->高级->排除->过滤字段“浏览器名称”)。
-
如果 GA 允许您基于 HTTP 标头进行过滤,那么您可以使用
page.customHeaders。 -
我想我会根据用户的语言进行过滤。由于某种原因,PhantomJS 的浏览器名称是 Safari,因此无法正常工作。包括 PhantomJS 客户端在内的所有机器人的语言代码似乎都是“C”。就我而言,我不关心任何机器人流量,所以这是可行的。
标签: javascript cookies google-analytics phantomjs