覆盖 UTM 参数

我们确实有一些活动(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);

});


            });


慕莱坞森
浏览 119回答 2
2回答

SMILET

使用 JavaScript,要从页面中的链接中删除 UTM 参数,您可以使用正则表达式尝试此功能:var link = document.getElementsByTagName("a");for (var i = 0; i < link.length; i++) {&nbsp; &nbsp; link[i].href = link[i].href.replace(/(\?)utm[^&]*(?:&utm[^&]*)*&(?=(?!utm[^\s&=]*=)[^\s&=]+=)|\?utm[^&]*(?:&utm[^&]*)*$|&utm[^&]*/gi, '$1');}如果您使用的是 Google 跟踪代码管理器,则可以将其添加到自定义 HTML 标记中并在 DOM Ready 上触发它。

皈依舞

如果要将片段保留在 URL 中,可以通过以下方式修改函数:var link = document.getElementsByTagName("a");&nbsp;for (var i = 0; i < link.length; i++) {&nbsp; &nbsp; arr_link = (link[i].href).split("#");&nbsp; &nbsp; var fragment = "";&nbsp; &nbsp; if (arr_link[1]) { fragment = "#" + arr_link[1]; }&nbsp; &nbsp; var my_new_url = arr_link[0].replace(/(\?)utm[^&]*(?:&utm[^&]*)*&(?=(?!utm[^\s&=]*=)[^\s&=]+=)|\?utm[^&]*(?:&utm[^&]*)*$|&utm[^&]*/gi, '$1');&nbsp; &nbsp; link[i].href = my_new_url + fragment;&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript