在没有IP范围的静态站点开发的本地测试期间阻止Google Analytics(尤其是在移动设备上)



我在SO上搜索过,发现了一些关于这方面的问题,但我遇到的大多数答案似乎都建议要么通过IP范围进行过滤,要么在为网站提供动力的引擎中引入条件代码;这两种选择对我来说都不可行。如果这确实是重复的,而这是一个符合我用例的答案,那么我提前道歉,但我似乎什么都找不到。

我最初从Google Analytics中过滤自己的方法是简单地将请求重定向到google-analytics.com,并将GA的https版本重定向到主机文件中的localhost。这在我的桌面上运行得很好,但在iPhone等移动设备上测试时毫无用处(除非有人知道如何在不越狱的情况下欺骗iPhone的主机文件)。

我的本地测试设置是将pow与.dev域一起用于本地项目目录,然后当我需要在移动设备上查看站点的开发版本时,我将Xip.io与Adobe Shadow结合使用。

我无法按IP范围进行筛选,因为我经常在家工作,而且我的ISP不提供住宅帐户的静态地址。

我试图在我的Google Analytics配置文件中设置一个自定义排除过滤器,以过滤来自这些域的流量,但它们要么不起作用,要么我对排除过滤器的工作方式有一个非常严重的误解(这是完全可能的)。我根据主机名将自定义过滤器设置为Exclude,匹配模式.dev.*xip.io/.*,但这些过滤器完全不起作用。我相信这是因为,从技术上讲,这个过滤器是在寻找原始域的主机名,而不是被请求的主机名。但我真的不确定,因为语言很模糊,并且根据你正在查看的帮助文档而有所不同。

除了在本地开发过程中手动从网站中删除GA跟踪代码,然后返回并将其添加回中之外,有人有什么建议吗?或者有人能告诉我排除过滤器有什么问题吗?

我一直在使用分析跟踪代码的变体来防止页面视图在我们的暂存服务器上被跟踪——类似于:

if (!/.dev|xip.io/.test(window.location.hostname)) _gaq.push(['_trackPageview']);

或者,您可以将其应用于_setAccount调用。如果您这样做并查看跟踪请求,则web属性ID显示为"UA-XXX-X">

您可以依赖

window['ga-disable-UA-XXXXXX-Y'] = true;

其中UA-XXXXXXXX-Y是帐户ID(此处详细信息)。

就像创建一个页面或Web服务器指令来设置cookie(保留给开发人员的页面将从ga中排除),以及在加载ga:的代码中

if (hasDeveloperCookie()) {
window['ga-disable-UA-XXXXXX-Y'] = true;
}

最新更新