如何从动态IP地址中排除Google Analytics中的流量?

时间:2014-03-10 08:45:40

标签: google-analytics dynamic-ip

Google检测到异常流量很不错。但它如何处理动态IP地址?

例如,我没有IP范围,我的ISP提供动态IP,每次我的路由器重新启动时它都会改变,并且每天都会改变。所以在这里,当我得到一些IP地址时,我看到没有验证码的通知。几次重新启动后,我似乎得到了一个未被阻止的IP!

如何在Google Analytics中解决此类问题。另外,我非常清楚如何排除来自单个IP和IP范围的流量,但我不知道如何阻止IP每天都在变化的内部流量?

9 个答案:

答案 0 :(得分:22)

这个问题的许多流行答案都存在问题......

  • 即使你很幸运能找到IP系列,如果你在咖啡店或酒店工作怎么办?
  • 检查主机名可以消除开发环境中的命中,但是如果我正在调试实时站点呢?
  • 编辑服务器配置很烦人/先进,多个域变得复杂。
  • 选择退出扩展程序会阻止所有网站上的点击,也可能根本不会阻止您的问题。

所以,我将其他几个解决方案合并到一些适合我的方面......

  • 无论我走到哪里都跟着我
  • 适用于开发环境和实时/公共领域
  • 它只影响我和我正在开发的网站
  • 只需点击一下即可开启/关闭
  • 很容易验证它确实没有向分析发送任何数据
  • 它可以被整个团队使用

我始终在我的计算机上设置“开发人员Cookie”,仅用于我管理的域。此cookie具有特定于我的唯一值。然后,我只需在我的脚本 中检查此Cookie,然后再将 任何数据发送到Google Analytics。

我将代码放入网页的示例......

<强>的JavaScript

if (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
   }
}

验证HOST名称是否等于我的实际网站域名(“mydomain.com”),确保任何访问者在从“localhost”或“beta.mydomain”等测试域查看时都不会发送分析数据.COM”。在上面的示例中,“www.mydomain.com”和“mydomain.com”是我希望记录访问的两个有效域。

实时网站会按预期将数据发送到分析,除非找到具有匹配值的开发人员Cookie。如果它在我的设备上找到了唯一的Cookie设置,那么我的访问将不计入我在Google Analytics中的总计(或者我可能决定使用的其他分析工具)。

但是当我的饼干被清除后会发生什么?如何在后台设置“开发人员cookie”?我为此创建了自己的浏览器扩展... https://chrome.google.com/webstore/detail/lknhpplgahpbindnnocglcjonpahfikn

它仅适用于您选择的特定域。您可以在扩展程序的设置中为Cookie自定义您自己的唯一名称和值。

只要用户使用相同的NAME / VALUE对,这种方法就可以很容易地被人员使用,因此开发人员,内容创建者,校对人员以及组织中的任何其他人都可以在不夸大统计数据的情况下查看页面。 / p>

随意分享我的解决方案并使用我的扩展程序来设置这些Cookie。

答案 1 :(得分:5)

仅供参考,我想到了另一种使用HTML5的localStorage功能的方法。 (相对于cookie的优势在于,当您清理浏览器的cookie时,localStorage值仍然存在。) 我在这里写了一篇关于它的博客文章: Google Analytics: Exclude your own visits

答案 2 :(得分:2)

我刚才有人问我这个问题并偶然发现了这个问题。我找到了一种替代方案,使用this Chrome Extension阻止您在网站上使用Google Analytics。

答案 3 :(得分:1)

有两种选择。

  1. 如果它们在某个范围之间,请检查您拥有的IP地址,然后您可以在IP地址过滤器中设置范围。 Excluding traffic

  2. Setting cookies

答案 4 :(得分:1)

如果您正在谈论自己的计算机/网络,您有几种选择:

  • 设置代理(Fiddler,或路由器中的规则)以阻止对google-analytics.com的调用(代理仍应返回200状态代码)

  • 根据Gaurav的回答,使用Google扩展来阻止GA(所有主流浏览器都有版本)

  • 以disable-UA-XXXXXX-X格式设置一个cookie,用你的属性id替换X.

前两个选项会阻止任何网站上的所有Google Analytics跟踪,最后一个选项只会停止跟踪Cookie值中指定的属性。

所有这些都是IMO比有条件包括分析库更好的解决方案。如果您在代码中的某个地方调用GA库中的方法并且未加载库,则会导致javascript错误。上面的方法至少会加载一个捕获方法调用的代码存根,因此不会调用未定义的函数。

答案 5 :(得分:1)

我们的任务是从Analytics中排除整个公司。互联网路由器每天更新大约一次IP。事实证明,这种路由器几乎所有常见的路由器现在都提供了一些启用动态IP服务的选项。例如noip.com

  • 您在noip.com注册并选择一些您选择的静态域名。
  • 然后在路由器的动态IP选项部分中选择该服务(noip.com)。
  • 从noip.com输入您的凭据。

现在发生的是,路由器每天自动将其新IP推送到noip.com,在那里它与您之前注册的域名相关联。现在,您可以在自己的页面上动态检查该域的IP,如果它与客户端(浏览器的)IP相匹配,则会排除Google Analytics脚本打印到该页面。

在我的情况下,我使用的是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.
}

答案 6 :(得分:0)

更好的选择是使用此处的Google Analytics Opt-Out Browser Plugin:

https://tools.google.com/dlpage/gaoptout

答案 7 :(得分:0)

尝试使用Ghostery浏览器扩展程序:
https://www.ghostery.com/

很容易定义每个域要阻止的脚本。作为奖励,扩展程序会显示您在浏览网页时加载的跟踪脚本。

答案 8 :(得分:-1)

为什么不简单添加过滤器:

  1. 转到管理员
  2. 选择查看个人资料并创建新视图
  3. 点击过滤器
  4. 添加新过滤器
  5. 将其命名为IP Exclusion或其他
  6. 选择自定义过滤器单选按钮
  7. 检查排除
  8. 选择IP地址作为过滤字段
  9. 在过滤器模式中使用正则表达式定义IP地址范围
  10. 例如,IP范围从182.73.42.140到182.73.42.150 正则表达式将是:

    ^ 182.73.42(1(4- [6-9] | 50))。$

    Here's a screenshot for same

    如果您无法理解RegEx,可以使用this tool创建IP范围正则表达式