Google对异常流量的检测是不错的。但是它是如何处理动态IP地址的呢?
例如,我没有IP范围,我的ISP提供的动态IP可能会在我的路由器每次重启时发生变化,并且每天都在变化。这里,当我得到一些IP地址时,我看到没有验证码的通知。几次重启后,我似乎得到了一个没有被阻止的IP !
如何在Google分析中解决这类问题。我也很清楚如何从单个IP和IP范围排除流量,但我不知道如何阻止内部流量,其IP每天变化?
对于这个问题,许多流行的答案都存在问题。
- 即使你很幸运地找到了一个IP范围,如果你在咖啡店或酒店工作呢?
- 检查主机名可以消除开发环境中的攻击,但是如果我正在调试实时站点呢?
- 编辑服务器配置很烦人/高级,多个域变得复杂。
- 选择退出扩展要么阻止所有网站的点击,要么根本没有,这取决于你问谁。
所以,我把其他几个解决方案组合成一个适合我的方案…
- 无论我走到哪里它都跟着我
- 它在开发环境和live/public域中工作
- 它只影响我和我正在开发的网站
- 一键打开/关闭
- 很容易验证它真的没有发送任何数据到分析
- 可以由整个团队的人使用
我一直在我的机器上为我管理的域设置一个"开发人员cookie"。这个cookie有一个特定于我的唯一值。然后,在将任何数据发送到Analytics之前,我只需在脚本中检查此cookie。
如何将代码放入页面的示例…
JavaScriptif (window.location.host==="mydomain.com" || window.location.host==="www.mydomain.com") {
if (document.cookie.indexOf("COOKIENAME=COOKIEVALUE") === -1) {
// Insert Analytics Code Here
}
}
PHP if ($_SERVER['HTTP_HOST']==="mydomain.com" || $_SERVER['HTTP_HOST']==="www.mydomain.com") {
if (@$_COOKIE["COOKIENAME"] !== "COOKIEVALUE") {
// Insert Analytics Code Here
}
}
验证主机名等于我的活站点("mydomain.com")的域,确保分析数据将永远不会被任何访问者发送,而从一个测试域,如"localhost"或"beta.mydomain.com"查看。在上面的例子中,"www.mydomain.com"one_answers"mydomain.com"是我想要记录访问的两个有效域名。
活动站点按预期将数据发送给分析,除非找到具有匹配值的开发人员cookie。如果它在我的设备上发现了唯一的cookie设置,那么我的访问将不计入我在谷歌分析(或任何其他分析工具,我可能决定使用一天)的总数。
但是当我的cookie被清除时会发生什么?如何将"开发者cookie"设置在后台?我创建了我自己的浏览器扩展…https://chrome.google.com/webstore/detail/lknhpplgahpbindnnocglcjonpahfikn
它只适用于您选择的特定域。您可以在扩展的设置中为cookie自定义自己唯一的NAME和VALUE。
只要团队成员使用相同的NAME/VALUE对,就可以轻松地使用此方法,因此开发人员、内容创建者、校对员和组织中的任何其他人都可以查看页面,而不会增加统计数据。
随时分享我的解决方案,并使用我的扩展来保持这些cookie设置。
供参考,我想到了另一种使用HTML5的localStorage功能的方法。(相对于cookie的优点是,当您清除浏览器的cookie时,localStorage值仍然存在。)我在这里写了一篇关于它的博客文章:谷歌分析:排除你自己的访问
我刚刚有人问我这个问题,偶然发现这个线程。我找到了一个替代解决方案,使用这个Chrome扩展来阻止自己从网站上的分析。
有两个选项
-
检查你的IP地址,如果它们在一些范围之间,那么你可以在IP地址过滤器中设置一个范围。不包括交通
-
设置cookie
如果你是在谈论你自己的电脑/网络,你有几个选择:
-
设置一个代理(Fiddler,或者如果可能的话在你的路由器中设置一个规则)来阻止对googleanalytics.com的调用(代理仍然应该返回一个200状态码)
-
根据Gaurav的回答使用Google扩展来阻止GA(有所有主要浏览器的版本)
-
设置cookie的格式为disable-UA-XXXXXX-X,其中X替换为您的属性id。
前两个选项将阻止所有谷歌分析跟踪任何网站,最后一个将只停止跟踪在cookie值中指定的属性。
所有这些都是IMO比有条件地包括分析库更好的解决方案。如果你在代码的某个地方从GA库调用一个方法,而库没有加载,这将导致javascript错误。上面的方法至少会加载捕获方法调用的代码存根,这样就不会调用未定义的函数。
我们的任务是将整个公司排除在分析之外。互联网路由器的IP大约每天更新一次。事实证明,这款路由器像现在几乎所有常见的路由器一样,提供了一些启用动态IP服务的选项。例如noip.com。
- 你在noip.com注册并选择你选择的静态域名。
- 然后在你的路由器的动态IP选项部分选择该服务(noip.com)。
- 从noip.com输入您的凭据。
现在发生的是,路由器每天自动推送它的新IP到noip.com,在那里它与你之前注册的域名相关联。现在在你的页面上,你可以动态检查该域名的IP,如果它匹配客户端(浏览器)的IP,你排除分析脚本从打印到页面。
在我的例子中,我使用的是PHP,下面代码片段的一些内容运行良好。参见gethostbyname()
.
$print_tracking_scripts = TRUE;
if (gethostbyname('my-unique-name.ddns.net') === $_SERVER['REMOTE_ADDR']) {
$print_tracking_scripts = FALSE;
}
if ($print_tracking_scripts) {
// Print or include tracking scripts however you like.
}
更好的选择是使用谷歌分析选择退出浏览器插件在这里找到:
https://tools.google.com/dlpage/gaoptout
试试Ghostery浏览器扩展:
https://www.ghostery.com/
很容易定义每个域要阻止哪些脚本。作为奖励,扩展显示哪些跟踪脚本加载,而你浏览网页。
为什么不简单地添加一个过滤器:
- 转到Admin
- 选择View Profile并创建一个新视图
- 点击滤镜
- 添加新的过滤器
- 将其命名为IP排除或其他
- 选择自定义过滤器单选按钮
- 检查排除
- 选择IP地址作为过滤字段
- 在过滤器模式中使用Regex定义IP地址范围
例如:IP范围为182.73.42.140 ~ 182.73.42.150正则表达式应该是:
^ 182.73.42。(1 (4 [6 - 9]| 50))$
下面是相同
的截图如果您理解RegEx有困难,您可以使用此工具创建IP范围RegEx