我们确实有一些活动(Google、facebook、...) 当用户到达登录页面(abo.mysite.com)时,他确实有 utm 参数utm_source=theCampaignSource。当用户单击 CTA 时,CTA 会给出一个新的 UTM,utm_source=abo然后他会转到 shop.mysite.com。
我们无法从 abo.mysite.com 中删除 UTM。
有没有一种方法可以检查用户是否已经拥有 UTM,以及何时拥有 UTM 以将其保留到 shop.mysite.com?所以我们知道用户来自谷歌(...)?
我们知道如何设置这个 Thing 是一种非常糟糕的做法,我们正在努力解决这个问题。
我发现了一个代码片段,它正在操纵网站上的链接:
links.forEach(function(link){
link.setAttribute("href","abo.mysite.com")
})
但我无法让它发挥作用——因为我确实缺乏经验。
更新
根据我的特定需求,这样做:
1) 从网站上的链接中删除现有的 UTM
<script>
var link = document.getElementsByTagName("a");
for (var i = 0; i < link.length; i++) {
link[i].href = link[i].href.replace(/(\?)utm[^&]*(?:&utm[^&]*)*&(?=(?!utm[^\s&=]*=)[^\s&=]+=)|\?utm[^&]*(?:&utm[^&]*)*$|&utm[^&]*/gi, '$1');
}
</script>
2) 散列 URL 中的 UTM
<script>
if(!window.jQuery) {
document.write('<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js">\x3C/script>');
}
</script>
<script type="text/javascript">
$(document).ready(function() {
function getUrlVars() {
var vars = [],
hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
</script>
3)用散列的 UTM 重写站点上的每个 URL
<script>
$('a').each(function(){
$(this).attr('href', $(this).attr('href') + '?utm_source=' + utm_source + '&utm_campaign' + utm_campaign + '&utm_medium' + utm_medium);
});
});
SMILET
皈依舞
相关分类