为了账号安全,请及时绑定邮箱和手机立即绑定

覆盖 UTM 参数

覆盖 UTM 参数

慕莱坞森 2022-01-07 20:45:34
我们确实有一些活动(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);});            });
查看完整描述

2 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

使用 JavaScript,要从页面中的链接中删除 UTM 参数,您可以使用正则表达式尝试此功能:


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');

}

如果您使用的是 Google 跟踪代码管理器,则可以将其添加到自定义 HTML 标记中并在 DOM Ready 上触发它。


查看完整回答
反对 回复 2022-01-07
?
皈依舞

TA贡献1851条经验 获得超3个赞

如果要将片段保留在 URL 中,可以通过以下方式修改函数:


var link = document.getElementsByTagName("a");


 for (var i = 0; i < link.length; i++) {

    arr_link = (link[i].href).split("#");

    var fragment = "";

    if (arr_link[1]) { fragment = "#" + arr_link[1]; }

    var my_new_url = arr_link[0].replace(/(\?)utm[^&]*(?:&utm[^&]*)*&(?=(?!utm[^\s&=]*=)[^\s&=]+=)|\?utm[^&]*(?:&utm[^&]*)*$|&utm[^&]*/gi, '$1');

    link[i].href = my_new_url + fragment;

 }


查看完整回答
反对 回复 2022-01-07
  • 2 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信