Javascript 如何将传入的Google Analytics活动utm字符串传递给传出的点击

Javascript 如何将传入的Google Analytics活动utm字符串传递给传出的点击,javascript,jquery,wordpress,google-analytics,Javascript,Jquery,Wordpress,Google Analytics,我想有一个设置,如果我通过使用谷歌分析活动字符串:utm_活动和utm_源为我的网站带来流量,这些字符串将被存储,然后附加到我网站的任何传出链接/点击 例如,如果我想从Linkedin的新闻文章带来流量 传入链接: https://mywebsite.com/landing-page/?utm_campaign=news&utm_source=linkedin 我希望这样,当访问者单击传出链接(或我网站中的任何链接)时,传出链接将附加utm字符串,如下所示: https://outgo

我想有一个设置,如果我通过使用谷歌分析活动字符串:utm_活动和utm_源为我的网站带来流量,这些字符串将被存储,然后附加到我网站的任何传出链接/点击

例如,如果我想从Linkedin的新闻文章带来流量

传入链接:

https://mywebsite.com/landing-page/?utm_campaign=news&utm_source=linkedin
我希望这样,当访问者单击传出链接(或我网站中的任何链接)时,传出链接将附加utm字符串,如下所示:

https://outgoinglink.com/welcome-aboard/?utm_campaign=news&utm_source=linkedin
谁能帮我弄到这样的东西。
我的网站是Wordpress,似乎没有专门的插件。

你可以用Javascript来做,使用jQuery肯定会更容易,所以我会给你jQuery解决方案

$(function(){
  var params = window.location.search;
  if (!!params) {
    $('a[href]').each(function(){
      $(this).attr('href', $(this).attr('href') + params);
    });
  }
});
把这个放在你的标题里,它会给你的链接添加参数。请注意,如果链接已经附加了查询字符串,则这可能会中断链接。在这种情况下,此代码应该还有1个边大小写

$(function(){
  var params = window.location.search;
  if (!!params) {
    $('a[href]').each(function(){
      if ($(this).attr('href').indexOf('?') === -1) {
        $(this).attr('href', $(this).attr('href') + params);
      } else {
        $(this).attr('href', $(this).attr('href') + '&' + params.substr(1));
      }
    });
  }
});
请注意,此代码供您学习,可以对其进行优化,使其更安全,以用于生产目的

若您需要在第二个或更高的页面上持久化参数,您应该首先将其添加到localStorage,然后从中读取并再次附加到每个链接上

希望有帮助

编辑:

你可以检查这支钢笔

编辑2:

jQuery(function(){
  var params = window.location.search;
  if (!!params) {
    jQuery('a[href]').each(function(){
      if (jQuery(this).attr('href').indexOf('?') === -1) {
        jQuery(this).attr('href', jQuery(this).attr('href') + params);
      } else {
        jQuery(this).attr('href', jQuery(this).attr('href') + '&' + params.substr(1));
      }
    });
  }
});

试试这个。几个月前,一个客户也想做同样的事情,我给了他这个,现在开始工作了

<script type="text/javascript">
    (function ($) {
        // Get the utm tag from current url
      var params = window.location.search;
      // if utm available...
      if (!!params) {
        $('a[href]').each(function(){
            // Apply the extracted utms to link
          $(this).attr('href', $(this).attr('href') + params);
        });
      }
    }(jQuery));
</script>

(函数($){
//从当前url获取utm标记
var params=window.location.search;
//如果utm可用。。。
如果(!!参数){
$('a[href]')。每个(函数(){
//将提取的UTM应用于链接
$(this.attr('href',$(this.attr('href')+params);
});
}
}(jQuery));
它基本上是检查没有utm标记的任何url


希望能有所帮助。

您需要获取查询字符串(请参阅),然后循环浏览页面上的所有锚并附加该值。但是,如果这些链接中的任何一个已经有查询字符串,则可能会导致问题,在这种情况下,您必须拆分并解析传入链接和每个锚的qs。有一些库可以很容易地进行这种解析和字符串化,但不幸的是,对于javascript,我是一个完全的新手。我试着在我的头中添加几个javascript,当我打开一个带有utm_uu;string的示例链接时,它们没有被传递到生成的传出链接上。它们不在浏览器栏中。我怎样才能使这些解决方案中的任何一个在我的具体案例中发挥作用。谢谢Mario,我在header.php文件中添加了这些代码,然后在URL中打开了一个带有utm_字符串的页面。一旦打开,然后单击传出链接/按钮时,utm_uuu字符串不在浏览器栏中,我不确定它们是否被传递到传出网站GA。请立即尝试,有一个输入错误。请参阅我的评论,当附加到已查询的字符串链接时,这将如何中断,这是另一个需要改进的高级用例handled@MattFletcher,是的,我注意到,在带来流量时,我不会有带有双utm_uuuu字符串的传入链接,至少不会有我控制的链接。你的评论是完全错误和误导的。你知道UTM标签是什么吗?误导@mar@MarioNikolausutm标记不是url的扩展,用于跟踪流量的来源吗?如果我错了,请纠正我。
window.location.search
返回uri的查询字符串部分,它不返回UTM参数。在这种情况下,我们的UTM参数实际上是查询字符串。@MarioNikolaus好吗?我在代码中专门针对这个问题写了我的评论,以便大家理解。我没有提供关于查询字符串的通用教程。我相信海报特别询问了在他的网站地址栏的url中捕获UTM标签的问题。您是要编写一个脚本供某人复制和粘贴,还是希望他们逐行理解脚本逻辑中发生的事情?