Asp.net mvc 阻止Google analytics在开发环境ASP.NET MVC中收集数据

Asp.net mvc 阻止Google analytics在开发环境ASP.NET MVC中收集数据,asp.net-mvc,asp.net-mvc-3,google-analytics,development-environment,Asp.net Mvc,Asp.net Mvc 3,Google Analytics,Development Environment,我有一个ASP.NETMVC(3)应用程序,我已经设置了谷歌分析。问题是,每次我从VisualStudio运行时,Google脚本都会开始收集数据,这当然会扭曲实际结果 除了在我想要分析的每个页面上使用丑陋的#if编译器指令之外,防止Google Analytics在开发环境中收集数据的最佳方法是什么 最佳做法是什么 谢谢。我将编写一个自定义HTML帮助程序,其中包括谷歌分析所需的脚本: @Html.Analytics() 然后,这个助手可以使用编译指令,如果设置了DEBUG,它只会发出一个空

我有一个ASP.NETMVC(3)应用程序,我已经设置了谷歌分析。问题是,每次我从VisualStudio运行时,Google脚本都会开始收集数据,这当然会扭曲实际结果

除了在我想要分析的每个页面上使用丑陋的
#if
编译器指令之外,防止Google Analytics在开发环境中收集数据的最佳方法是什么

最佳做法是什么


谢谢。

我将编写一个自定义HTML帮助程序,其中包括谷歌分析所需的脚本:

@Html.Analytics()
然后,这个助手可以使用编译指令,如果设置了DEBUG,它只会发出一个空字符串。顺便说一句,中已经有这样的帮助程序,请查看如何实现:

@Analytics.GetGoogleHtml({your-analytics-webPropertyId-here})

您还可以在web.config中为dev环境使用不同的api密钥。这样就不会污染生产数据。我相信密钥也可以保留为空,然后Google Analytics不会记录任何内容。

Google建议的最佳做法是使用过滤器从GA配置文件中删除数据。这可以通过基于开发机器的IP地址进行过滤,也可以通过在用于开发和测试的每个浏览器中设置自定义变量cookie来实现。这种方法意味着您可以删除数据,而无需修改代码主体。

如果在调试模式下运行,您还可以使用HttpContext仅包括GA脚本:

@if (!HttpContext.Current.IsDebuggingEnabled)
{
   <script type="text/javascript">
      var _gaq = _gaq || [];
      ...
   </script>
}
@if(!HttpContext.Current.IsDebuggingEnabled)
{
var _gaq=_gaq | |[];
...
}

嘿,达林,谢谢你的回答。我已经写了我自己的助手,但作为一个局部视图。不过,我确实喜欢您的解决方案,所以我可能会将其作为扩展方法重新编写。我知道@Analytics helper,尽管它没有给我添加
#IF DEBUG
指令所需的灵活性。这听起来确实是最简洁的解决方案。有趣的是,它也是最简单的应用=)我发现这个设置的主要问题是,除非所有开发人员都使用静态IP,否则如果您连接到vpn、重新安装操作系统或购买新计算机,您的公共IP地址将改变,这意味着您必须继续修改黑名单。另一方面,如果您不希望在生产环境中跟踪您的开发人员,那么IP列表是唯一的选择。也就是说,如果您希望在生产中跟踪开发人员,那么IP列表是一种不好的方式。不过,我看不到在.NET站点上使用cookie而不是调试检测。这似乎没有必要。