【问题标题】:Strip query parameters from url before sending to google analytics在发送到谷歌分析之前从 url 中去除查询参数
【发布时间】:2016-09-21 23:48:00
【问题描述】:

我在页面上使用标准的 Google Analytics sn-p 将信息发送到 Google Analytics。

由于各种原因,我的页面是通过查询参数到达的。

在理想的世界中,情况并非如此,但它不是一个完美的世界,因此我必须避免将其发送到谷歌分析,因为它包含个人信息

我尝试了以下方法:

  1. 这里建议的是:https://stackoverflow.com/a/3669333/2295284,如下:((很抱歉格式化真的不是打球D:)

    _gaq.push(['_trackPageview', location.pathname ]);

    (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', '@gaToken', 'auto');
    ga('send', 'pageview', location.pathname);
    

我一直在手动将查询参数添加到 url 并使用 ObservePoint 来检查内容。内容信息包含“http://localhost/my/url/page?uiop=qwert”的文档位置 URL...这似乎意味着 _gaq.push 行根本没有做任何事情。

  1. 我尝试挖掘函数并手动更改 url,但它只是导致页面刷新无限循环:

    (函数(i, s, o, g, r, a, m) { 警报(i.location.href); var locn = i.location.href.indexOf("?") i.location.href = i.location.href.substring(0, locn) i['GoogleAnalyticsObject']=r; i[r]=i[r]||函数() { (i[r].q=i[r].q||[]).push(参数) }, 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', '@ gaToken', '自动');

  2. 我无权访问跟踪代码管理器,我认为这可能是基于以下选项的选项:http://www.lunametrics.com/blog/2015/04/17/strip-query-parameters-google-analytics/

任何建议都将不胜感激,我是在我的智慧尽头:(

(抱歉格式化,不合作:(

【问题讨论】:

  • 您还可以保持跟踪代码不变,并通过 GA 视图中的过滤器删除查询字符串。
  • 是的,但我首先需要防止它进入 GA,因为我没有能力在 ga 的任何地方过滤掉我们的查询字符串。
  • 在这种情况下,@dorians 的答案是正确的(它甚至是官方文档的一部分:developers.google.com/analytics/devguides/collection/…),您需要弄清楚它为什么不起作用。是否有可能您的调试器正在欺骗您?试试 GA 调试器或 Google Tag Assistant。

标签: javascript google-analytics query-parameters


【解决方案1】:

您可以尝试使用 Google 跟踪代码管理器:在代码设置中,有一个名为“要设置的字段”的选项,您可以在其中手动编辑发送到 Google Analytics(分析)的任何信息(请注意,这发生在本地,这样可以解决您的数据保护问题)。

这是一个我手动编辑“页面字段”的示例,这是您需要做的。在这种情况下,我选择了一对自定义变量来输入,但您可能需要一个自定义 JavaScript 变量,它采用标准的 {{Page Path}} 变量(这是默认输入的)并返回第一个问号之前的所有内容。

【讨论】:

  • 很遗憾我们无法访问跟踪代码管理器:(
  • 您说您无权访问它是什么意思?它是一个独立于 Google Analytics 的工具,您可以设置一个附加到任何电子邮件地址的帐户。
  • 但它如何与谷歌分析相关联?如果我离开团队怎么办?它不是组织中其他任何地方都使用的东西,我觉得必须有一种更简单的方法来做到这一点,而无需设置另一个系统来做到这一点......
  • 它与 Google Analytics 相关联,因为您选择在其上部署 Google Analytics。在 GTM 中,您可以将权限分配给其他人,并且无论如何您都应该始终将您的工作电子邮件用于 GTM 帐户,这样就不会有被附加到某些东西的风险。是的,它比 GTM 有点飞跃,但它是免费的,可以解决您的问题。
【解决方案2】:

您的第一个选项是正确的,但您使用的代码是针对以前版本的 Google Analytics(分析)。

ga('send', 'pageview'); 替换为ga('send', 'pageview', location.pathname); 请参阅page tracking documentation 以供参考。

【讨论】:

  • 不高兴:(我已经用我尝试过的完整代码和根据 ObservePoint 得到的内容更新了我的问题中的选项 1
  • 这就是我发送综合浏览量的方式,以在 GA 中获取“干净”的综合浏览量数据。我一直有一个问题 - 这会对使用 utm_campaign 和 utm_medium 等 utm 参数的流量产生任何影响吗?还是不管ga('send', 'pageview')发送什么,GA sn-p自动记录这些参数...
  • 好问题。我会说参数不受影响,因为您覆盖了 page 字段而不是 location 字段。后者包含完整的 URL,page 仅用于路径段。但我认为您需要进行测试才能确定。
  • @dorian - 设置一个测试,你是对的,utm 参数不受影响,即使只发送路径名。
  • 很想看到与谷歌标签管理器一起工作的新答案,这似乎是现在 GA 的默认配置
猜你喜欢
  • 2017-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多