Answers:
另一个选择是Google Analytics(分析)配置文件。在所有环境中使用相同的帐户,但在每个配置文件中添加一个主机名过滤器以仅包括来自相应环境的流量。
例如,如果您的内部质量检查环境为qa.example.com
,则在Google Analytics(分析)中创建带有自定义过滤器的“质量检查”配置文件,以仅包含匹配的主机名^qa\.example\.com$
。在“生产”配置文件中,执行相反的操作,并从内部主机名排除流量。
最简单的答案是,为每个环境设置多个帐户。然后,替换文件ID(文字,看起来像“UA-XXXXX-X”,因为看到这里)从所需环境的正确ID。
由于使用的是ASP.NET,因此可以将配置文件ID存储在web.config中。这将导致必须在JavaScript中嵌入.NET代码(可能不行)。您还可以将生产配置配置为唯一的输出跟踪代码的配置,但这将导致未经测试的代码被发布。
根据您托管站点的方式(dev.domain.tld,test.domain.tld,www.domain.tld),可以使用单个配置文件,然后根据子域/文件夹/ URL过滤结果。Google在各种跟踪方案方面都有不错的文章。
这是我最后做的(我不喜欢将.Net代码嵌入javascript的想法):
因此,根据部署到的环境,我使用包含正确帐户ID的两个版本的web.config文件。
有点复杂,但是它不涉及从.NET生成javascript,并且使用jQuery非常简单。
这是最终代码:
var setupGoogleAnalytics = function (clientNumber) {
var gaq = gaq || [];
gaq.push(['_setAccount', clientNumber]);
gaq.push(['_setDomainName', 'none']);
gaq.push(['_trackPageview']);
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
}
$(document).ready(function(){
$.ajax({
url: "GetGAClientNumber.aspx",
success: function(data) {
setupGoogleAnalytics(data);
}
});
});
而且效果很好!
<%= ASP %>
在Javascript中嵌入标签没有错-只需将最小值放入JS以及其他任何查询/逻辑中。
您可以确保在开发和质量检查期间,只能从公司网络中的计算机内部访问该站点吗?
如果是,则可以只使用将用于生产的分析帐户,并从组织内部过滤掉所有流量。
从链接引用:
如果要排除内部流量显示在报告中,则可以过滤出特定的IP地址或一系列IP地址。您还可以使用Cookie过滤掉特定用户的访问。我们将在下面说明。