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

12

谷歌检测异常流量的功能很不错,但是它如何处理动态IP地址?

例如,我没有一定范围的IP地址,我的ISP提供动态IP地址,每次路由器重新启动时都可能会更改,而且每天都会更改。所以,在这种情况下,当我获得某个IP地址时,我会看到没有验证码的通知。经过几次重新启动后,我似乎得到了一个未被阻止的IP地址!

如何解决Google Analytics中的这类问题?我很清楚如何从单个IP和IP范围中排除流量,但我不知道如何阻止IP地址每天都在更改的内部流量。


我认为有一种相对简单的方法可以排除您的访问。包含的链接包含了所有的细节 => https://dev59.com/kL_5oIgBc1ULPQZFCwTF#72751192 - TutsInsider
9个回答

23

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

  • 即使你足够幸运找到了IP范围,如果你是在咖啡店或酒店工作呢?
  • 检查主机名可以排除开发环境的命中,但如果我正在调试实时网站呢?
  • 编辑服务器配置很繁琐/高级,并且多个域名变得复杂。
  • Opt-Out扩展程序要么在所有网站上阻止命中,要么根据你问谁而定完全不阻止。

因此,我将几种其他解决方案组合成了适合我的东西...

  • 它无论我走到哪里都能跟着我走
  • 它适用于开发环境和实时/公共域名
  • 它只影响我和我正在开发的网站
  • 它可以通过单击打开/关闭
  • 易于验证它确实没有向分析发送任何数据
  • 可以由整个团队使用

我在我的计算机上一直设置一个“开发人员cookie”,只针对我管理的域。这个cookie有一个特定于我的唯一值。然后,在向分析发送任何数据之前,我只需在我的脚本中检查此cookie即可。

以下是将代码放入页面的示例...

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被清除时会发生什么?如何在后台保留“开发人员cookie”?我为此创建了自己的浏览器扩展... https://chrome.google.com/webstore/detail/lknhpplgahpbindnnocglcjonpahfikn

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

只要他们使用相同的NAME / VALUE对,团队中的所有人都可以轻松使用此方法,因此开发人员、内容创建者、校对人员和组织中的任何其他人都可以查看页面而不会增加统计数据。

请随意分享我的解决方案并使用我的扩展来保留这些cookie设置。


5

顺便提一下,我想到了另一种方法,可以使用HTML5的localStorage功能。(与cookie相比的优点是当您清除浏览器的cookie时,localStorage值保留。) 我在这里写了一篇博客文章:Google Analytics: 排除自己的访问


这是最好的解决方案,谢谢!我创建了一个HTML页面来设置我想要的localStorage值,并在我的机器上的每个浏览器中加载了该页面。只有在HTTP服务器上运行(本地主机上运行的服务器可以)时,IE和Edge才会存储localStorage值,而不是纯HTML页面。现在,我只需检查该localStorage值是否存在于我的实际网站上,如果存在,则跳过Google Analytics的初始化。我将是唯一拥有该localStorage值的人。 - Alexander

3

我刚刚有人问了我这个问题,然后偶然发现了这个帖子。我找到了一个替代方案,可以使用这个 Chrome 扩展程序来阻止自己被网站上的分析工具跟踪。


1
我们的任务是从分析中排除一家公司。互联网路由器每天大约更换一次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.
}

这是一个非常聪明的解决方案。我不确定为什么它没有得到更高的投票。肯定会有性能影响,但你可以将其作为cron作业运行,并将结果存储在数据库或文件中以减轻影响。谢谢。 :) - Dominic P
起初,这对我来说听起来是最好的解决方案,但是我使用静态SSR页面工作,然后我会将我的动态IP放到页面源代码中,这对我来说是不可接受的。 - undefined

1

有两个选项。

  1. 检查您拥有的IP地址是否在某个范围内,如果是,则可以在IP地址过滤器中设置一个范围。 排除流量

  2. 设置cookie


1
如果您想要针对自己的计算机/网络进行操作,您有几个选项:
  • 设置代理(Fiddler,或者如果可能的话在路由器中设置规则),以阻止对google-analytics.com的调用(代理仍应返回200状态代码)

  • 按照Gaurav的回答使用Google扩展程序来阻止GA(所有主要浏览器都有版本)

  • 以disable-UA-XXXXXX-X的格式设置cookie,其中您将X替换为您的属性ID。

前两个选项将阻止任何站点上的Google Analytics跟踪,最后一个选项将仅停止跟踪cookie值中指定的属性。

所有这些选项在我看来都比有条件地包含分析库更好。如果您的代码中某处调用了GA库中的方法并且该库未加载,则会导致javascript错误。上述方法至少会加载捕获方法调用的代码存根,因此不存在对未定义函数的调用。


0

试试Ghostery浏览器扩展:
https://www.ghostery.com/

你可以轻松地定义每个域名要屏蔽哪些脚本。此外,该扩展还会显示你在浏览网页时加载了哪些跟踪脚本。


0

-2

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

  1. 进入管理界面
  2. 选择查看个人资料并创建新视图
  3. 点击过滤器
  4. 添加新的过滤器
  5. 命名为IP排除或其他名称
  6. 选择自定义过滤器单选按钮
  7. 勾选排除
  8. 选择IP地址作为过滤字段
  9. 在过滤模式中使用正则表达式来定义IP地址范围

例如,对于IP地址从182.73.42.140到182.73.42.150的范围,正则表达式应为:

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

这里是相同的截图

如果你对正则表达式有困难,你可以使用这个工具来创建IP范围正则表达式


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接