【发布时间】:2018-07-08 11:18:10
【问题描述】:
我使用 UTM 参数来跟踪 Google Analytics 中的传入链接。
假设我的网址如下所示
https://www.domain.tld/shop?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale
我想清理 URL。想要的结果是
https://www.domain.tld/shop
在网上我找到了以下snippet
(function() {
var win = window;
var removeUtms = function(){
var location = win.location;
if (location.search.indexOf('utm_') != -1 && history.replaceState) {
history.replaceState({}, '', window.location.toString().replace(/(\&|\?)utm([_a-z0-9=]+)/g, ""));
}
};
ga('send', 'pageview', { 'hitCallback': removeUtms });
})();
目前我的 CMS 中的 Google Analytics 模板如下所示
<?php
/**
* To use this script, please fill in your Google Analytics ID below
*/
$GoogleAnalyticsId = 'UA-bla-bla';
/**
* DO NOT EDIT ANYTHING BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING!
*/
if ($GoogleAnalyticsId != 'UA-XXXXX-X' && !BE_USER_LOGGED_IN && sha1(session_id() . (!Config::get('disableIpCheck') ? Environment::get('ip') : '') . 'BE_USER_AUTH') != Input::cookie('BE_USER_AUTH')): ?>
<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','https://www.google-analytics.com/analytics.js','ga');
ga('create', '<?php echo $GoogleAnalyticsId; ?>', 'auto');
<?php if ($GLOBALS['TL_CONFIG']['privacyAnonymizeGA']): ?>
ga('set', 'anonymizeIp', true);
<?php endif; ?>
ga('send', 'pageview');
</script>
<?php endif; ?>
...我不知道如何将这些代码组合在一起。
也许我的问题有更好的解决方案?
【问题讨论】:
-
你想只在 javascript 中处理它,还是在 php 本身中处理它?
-
有什么区别?对于用户来说是一样的,不是吗?
-
我们用 PHP 处理它,因为它还允许我们捕获 utm 数据并将其存储在数据库中,以便在我们端进行进一步的度量处理。然后我们将标头位置重定向到干净的 url。仅在 javascript 中执行所有 ajax 调用真的很痛苦(有些用户愚蠢地关闭了 js)。所以有区别。但听起来你只是想让 GA 处理这一切,所以是的,使用 javascript 方法。
-
嗯,我明白了,但就我而言,它非常简单:我想将存储在 UTM 中的信息发送到 Google Analytics,然后我想要一个干净的 url。
-
我以前从未听说过这个。因此,如果我使用 GA 将
?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale添加到任何网站的任何网址,它会自动删除查询字符串吗?你确定吗?来源?
标签: javascript php regex google-analytics