- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们确实有一些营销事件(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?那么我们知道该用户来自 Google (...)?
我们知道这个东西的设置方式是一种非常糟糕的做法,我们正在努力解决它。
我发现了一个正在操作网站上的链接的代码片段:
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;
}
var parameters = getUrlVars();
var utm_source = decodeURIComponent(parameters['utm_source']);
var utm_campaign = decodeURIComponent(parameters['utm_campaign']);
var utm_medium = decodeURIComponent(parameters['utm_medium']);
</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);
});
});
编辑感谢米歇尔·皮萨尼
这很有效 - 但是,如果用户没有 UTM,并且他单击该按钮,UTM 将被设置为 未定义
是否有一种方法可以在用户已有 UTM 参数时从 URL 设置 UTM 参数,或者在用户 URL 中没有 UTM 时使用现有的 UTM(硬编码在按钮中)。
编辑 2 并更新最后 - 在你们的帮助下 - 我找到了解决方案:
<script>
var link = document.querySelectorAll('a:not([href*="#"])');
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>
<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;
}
//var parameters = getUrlVars();
//var utm_source = decodeURIComponent(parameters['utm_source']);
//var utm_campaign = decodeURIComponent(parameters['utm_campaign']);
//var utm_medium = decodeURIComponent(parameters['utm_medium']);
var url_string = window.location.href; //window.location.href
var url = new URL(url_string);
//var c = url.searchParams.get("c");
var utm_source = url.searchParams.get("utm_source");
var utm_campaign = url.searchParams.get("utm_campaign");
var utm_medium = url.searchParams.get("utm_medium");
$('a:not([href^="#"])').each(function() {
if(utm_source != "" && utm_source != null){
var href = $(this).attr("href");
href = href.replace(/(\?)utm[^&]*(?:&utm[^&]*)*&(?=(?!utm[^\s&=]*=)[^\s&=]+=)|\?utm[^&]*(?:&utm[^&]*)*$|&utm[^&]*/gi, '$1');
$(this).attr("href",href);
$(this).attr('href', $(this).attr('href') + '?utm_source=' + utm_source + '&utm_campaign=' + utm_campaign + '&utm_medium=' + utm_medium);
}
});
});
</script>
最佳答案
使用 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 上触发它。
关于javascript - 覆盖 UTM 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58991043/
我目前正在开展一个项目,我们必须根据两个(用户输入)点的已知位置找出一个点的位置。 现在的问题是用户可以在不同的 UTM 区域中提供两个点,因此我们必须将其中一个点投影到另一个系统(至少我们是这样做的
我找到了一个相当简单的例子来说明如何做到这一点,但我无法让它为我工作。我对 R 很陌生 library(rgdal) xy <- cbind(c(118, 119), c(10, 50)) proje
我想开始跟踪电子邮件访问,为他们提供使用 GA 事件参数的电子邮件媒介 但是我对长 utm 链接参数不满意;它们不美观,也容易被不当分享,因为许多人在查看页面后复制和粘贴链接时不会花时间删除它们。 有
我们运行一个 WP 站点,目前我们的页脚中有一个传递 UTM 参数的脚本。 var querystring = '?utm_source=[utm_source]&utm_medium=[utm_me
有人可以看到这有什么问题吗: library(rgdal) # Make a two-column matrix, col1 = long, col2 = lat xy UTM,我们在Stack O
我们知道 Google Analytics 在所有电子商务导航期间都会跟踪 url 上存在的 UTM 参数。 我在分析文档中找不到的一件事是: 谷歌分析是否会在交易完成后重置 UTM 参数? 以以下用
我正在运行一个自托管的 wordpress 站点,并且我正在尝试根据 utm 代码中的参数来定制用户看到的次要内容。我所做的只是 用于测试 UTM 婴儿车或字符串变量以显示一个小部件与另一个小部件。在
我有谷歌分析帐户,我在我的index.html中添加了分析代码。但谷歌分析中的 Mycampaign 标签没有显示任何数据。我有用户 google URL 生成器来生成事件 URL。可能是什么问题?
Google 似乎不喜欢在查询字符串参数中以纯文本形式传递电子邮件(他们联系了网站所有者,提及不要在查询字符串参数中以纯文本形式传递电子邮件)。 我们询问支持人员以 base64 编码电子邮件 (bt
我们确实有一些营销事件(Google、facebook...),当用户到达登陆页面 (abo.mysite.com) 时,他确实拥有 utm 参数 utm_source=theCampaignSour
我需要使用 python 中的 utm 模块获取一组以米为单位的坐标,给定纬度/经度位置。如果位置跨越不同区域, map 就会变得不正确。在检查了一些讨论后,我还没有找到直接的解决方案。 lat_po
关闭。这个问题需要更多 focused .它目前不接受答案。 想要改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭3年前。 Improve this que
我有一个电子邮件事件,我试图用谷歌分析来跟踪,但由于某种原因,来源、事件等没有被跟踪。 我使用的网址是: https://makemeacocktail.com/list/14911/wimbledo
我发布了许多新闻链接,这些新闻链接都指向外部资源/网站,但我不确定是否有必要在这些链接中添加自定义广告系列参数(谷歌分析; utm)。是否可以在不将人们吸引到我的网站的链接上进行任何形式的跟踪? 最佳
我想知道我是否以正确的方式构建了这个谷歌分析查询。我不确定“utmcc”部分。 0 => string 'http://www.google-analytics.com/__utm.gif?utm
如果用户自带utm值到着陆页 http://example.com/landing.php?utm_source=Facebook&utm_medium=Marketing&utm_term=FbAd
我是谷歌分析和 UTM 参数的新手,我认为这是一个相当简单的问题。 我已经阅读并了解什么是 UTM 参数以及 GA 如何使用它们,但是除了在默认布局页面中包含通用 GA javascript 之外,我
如何使用 UTM 跟踪链接让 Firebase 了解并跟踪应用(iOS 和 Android)的安装(例如,我想通过页脚链接跟踪我网站上应用的安装)?在 GA 中它运行完美。 在 Firebase 中,
一段时间以来,我一直在收集 UTM 参数并使用这些值成功填充表单字段。如果我的 utm_source 为空,我不想默认为空值或空值,而是想为“网站”的 utm_source 提供默认值 这是我的代码:
这个问题在这里已经有了答案: How to convert from UTM to LatLng in python or Javascript (13 个答案) 关闭 6 年前。 有没有办法转换U
我是一名优秀的程序员,十分优秀!