Javascript 如何在Google Analytics上添加独特的自定义指标
考虑具有不同页面的web应用程序: 第1页有指向第2页的链接。第2页有指向第3页的链接,以此类推。以下是我试图实现的目标:Javascript 如何在Google Analytics上添加独特的自定义指标,javascript,cookies,google-analytics,session-cookies,google-tag-manager,Javascript,Cookies,Google Analytics,Session Cookies,Google Tag Manager,考虑具有不同页面的web应用程序: 第1页有指向第2页的链接。第2页有指向第3页的链接,以此类推。以下是我试图实现的目标: 将+1添加到唯一页面1视图中,每次唯一 用户正在访问第1页 将+1添加到唯一页面1单击自定义 度量,每次用户单击链接时。但是,我只想统计每个用户的唯一链接点击次数(每个用户/会话仅增加1次自定义指标) 我想对第2页、第3页等做同样的处理 我提出的解决方案是使用Javascript在访问者的浏览器上放置会话cookie。因为我使用的是Google Tag Manager,
- 将+1添加到
唯一页面1视图中,每次唯一 用户正在访问第1页
- 将+1添加到
自定义 度量,每次用户单击链接时。但是,我只想统计每个用户的唯一链接点击次数(每个用户/会话仅增加1次自定义指标)唯一页面1单击
function setCookie(name, value) {
document.cookie = name + '=' + value;
}
function getCookie(cname) {
var cookie = [];
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
cks.push(c.substring(name.length, c.length));
}
}
if (cookie.length < 1) {
return false;
} else {
return cookie;
}
}
function checkCookie(cname) {
var nMetric = cname + 'MetricValue';
var nPath = cname + 'Path';
var path = window.location.origin + window.location.pathname;
var ck = getCookie(nMetric);
if (ck === false) {
setCookie(nMetric, 1);
setCookie(nPath, path);
// console.log('No cookie set. Adding metric: 1. Path: ' + path);
return;
}
var ck2 = getCookie(nPath);
if (ck2 !== false && ck2.indexOf(path) > -1) {
setCookie(nMetric, 0);
// console.log('Cookie already exists based on path. Adding metric: 0. Path: ' + path);
} else {
setCookie(nMetric, 1);
setCookie(nPath, path);
// console.log('No cookie set. Based on Path check. Adding metric: 1, Setting path to: ' + path);
}
return;
}
checkCookie('uniquePageClick');
函数setCookie(名称、值){
document.cookie=name+'='+值;
}
函数getCookie(cname){
var-cookie=[];
变量名称=cname+“=”;
var decodedCookie=decodeURIComponent(document.cookie);
var ca=decodedCookie.split(“;”);
对于(变量i=0;i-1){
setCookie(nMetric,0);
//console.log('Cookie已基于路径存在。添加度量:0.path:'+path);
}否则{
setCookie(nMetric,1);
setCookie(nPath,path);
//log('未设置cookie。基于路径检查。添加度量:1,将路径设置为:'+Path);
}
返回;
}
checkCookie('uniquePageClick');
此脚本是在用户的单击作为度量发送之前触发的。对于页面视图,我也有相同的代码,使用GA Pageload触发器以第一优先级触发
我已经用Google Tag Manager的预览模式测试了这个设置,它似乎工作得很好。我还检查了标记是否在其他任何操作之前触发+按预期更改度量值。然而,在我所做的实时测试中存在一些差异
有时我可以看到比页面浏览次数更多的独特点击次数,这表明一些访问者的点击被多次记录。我还测试了如果我很快加载页面2次,它有时会给我2个页面浏览量,而不是1个
我假设这与设置/更新/检索cookie的速度有关。我还尝试设置cookie,使其在几天内不会过期,但仍然得到相同的结果
我做错了什么?我可以在Javascript、标记管理器或Google Analytics上对此做些什么吗?这可能是比赛条件吗?如果是这样的话,有哪些步骤可以阻止这种情况发生?你不能通过查看已经存在的“唯一页面浏览量”指标和“唯一事件”指标来实现你的目标吗?@XTOTHEL谢谢你的评论。不幸的是没有,因为我需要访问一个表中每个页面的信息。这就是我创建自定义指标的主要原因。类似这样的@XTOTHEL我希望第1页、第2页、第3页等度量是列,维度是“活动”、“来源”、“关键字”。这就是为什么我提出了自定义指标的想法。你可以引入“活动、来源、媒体、关键字等”作为专栏的一部分。因此,基本上你应该能够看到推动流量进入哪个页面的活动,以及该页面上发生的独特页面浏览量和独特事件的数量,再次按活动、来源、媒体、关键字等进行细分。