如何使用Cookie从NEW(2014)Google Analytics流量中排除自己?

时间:2014-08-04 05:05:22

标签: javascript cookies google-analytics

Google彻底改变了分析,ga.js已被analytics.js取代,而且下面列出的旧方法不再适用:

方法一:

<body onLoad="javascript:pageTracker._setVar('test_value');">

方法2:

<body onLoad="javascript:_gaq.push(['_setVar','test_value']);">

方法3:

<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setVar', 'exclude_me']);
    _gaq.push(['_setAccount', 'UA-xxxxxxxx-x']);
    _gaq.push(['_trackPageview']);
    // etc...
</script>

新的GA snipplet看起来像这样:

<script>
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

    ga('create', 'UA-XXXX-Y');  // Creates a tracker.
    ga('send', 'pageview');     // Sends a pageview.
</script>

我检查了documentation,但我无法弄清楚如何设置可在过滤器中使用的变量,以排除来自Google Analytics的内部流量。

有什么想法吗?

4 个答案:

答案 0 :(得分:4)

您应该在创建调用之后和发送调用之前将其添加为set调用。

ga('set', 'dimension1', 'internal');

所以在你的情况下,

<body onLoad="javascript:ga('set','dimension1','internal');">

然后,这将该维度(1)与该页面上发出的其余发送呼叫相关联。要在视图上添加过滤器,您需要已经设置维度,然后选择&#34;自定义过滤器&#34; &GT; &#34;排除&#34; &GT;过滤字段应设置为您的自定义维度(通常位于列表的最后)。

虽然首选该方法,因为您可以稍后添加或删除过滤器来捕获该流量,但您也可以使用opt-out setting删除该流量:

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

UA-XXXX-YY是您的帐户ID。

答案 1 :(得分:2)

虽然只有链接的答案通常不赞成在Universal Analytics文档中涵盖 ,所以我建议您查看Universal Analytics - Advanced Configuration - User Opt Out

更新

抱歉,错过了关于过滤的最后一句话。可以通过自定义维度进行过滤(但只能在后端创建它们之后),因此您需要按照以下步骤进行过滤:

创建自定义维度 - 让我们在属性设置中将其称为“选择退出”。

通过跟踪代码发送该维度的值:

ga('send', 'pageview', {
  'dimension1':  'true'
});

维度由文字字符串“dimension”和数字索引(在属性设置中的自定义维度对话框中显示)指示。

然后选择一个视图,转到过滤器,选择新过滤器/高级/排除,在过滤器字段中选择自定义尺寸“选择退出”,在过滤器模式中选择“真实”(可能您之前使用自定义变量做了相同的操作,所以应该很熟悉。

答案 2 :(得分:0)

upgrade documentation看,您需要设置一些自定义变量,并在创建一些过滤器时使用这些变量(see this post)。

那就是说,对我来说似乎相当复杂。从我的角度来看,更简单的解决方案是使用服务器端语言,仅当用户不在排除列表中时才输出Google Analytics代码。

你的标签不提供服务器端语言(好吧,javascript可以在服务器端使用,但我不认为你在这个问题的位置),所以无法提供你用我认识的语言,但在PHP中,我会这样写:

<?php if ($_SERVER['REMOTE_ADDR'] != '127.0.0.1') {?>
<script>
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

    ga('create', 'UA-XXXX-Y');  // Creates a tracker.
    ga('send', 'pageview');     // Sends a pageview.
</script>
<?php } ?>

答案 3 :(得分:0)

我几乎放弃了寻找答案,但随后找到this section in the documentation

  1. 在您的网站上创建一个虚拟页面。例如: www.yourdomain.com/exclude-traffic.html

  2. 添加&lt; meta name =“robots”content =“noindex,nofollow”&gt;在头部,所以页面不会被编入索引。

  3. 在head标记内添加跟踪代码上方的脚本。确保更新UA-XXXXXXXX-Y值。您可以在管理员中检查您的GA代码 - &gt;跟踪信息 - &gt;跟踪代码

  4. 在body标签内添加链接。

  5. 使用浏览器打开页面,然后单击链接。 (您可能正在使用Firefox和Chrome等。)

  6. 最终结果:

        <!DOCTYPE html>
        <html lang="en">
        <head>
            <title>Remove My Internal Traffic from Google Analytics</title>
            <meta name="robots" content="noindex, nofollow">
            <script>
                // Set to the same value as the web property used on the site
                var gaProperty = 'UA-XXXXXXXX-Y';
    
                // Disable tracking if the opt-out cookie exists.
                var disableStr = 'ga-disable-' + gaProperty;
                if (document.cookie.indexOf(disableStr + '=true') > -1) {
                    window[disableStr] = true;
                }
    
                // Opt-out function
                function gaOptout() {
                    document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
                    window[disableStr] = true;
                }
            </script>
            <script>
                (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
                    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
                        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
                })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
    
                ga('create', 'UA-XXXXXXXX-Y', 'domainname.com'); //now its changed to auto
                ga('send', 'pageview');
            </script>
        </head>
        <body>
    
        <h1>Remove My Internal Traffic from Google Analytics</h1>
        <p><a href="javascript:gaOptout()">Click here to opt-out of Google Analytics</a></p>
    
        </body>
        </html>