Google analytics 通过使用Universal Analytics跨域运行GA实验,链接器可以工作,但实验代码忽略了clientId
几周来,我一直在努力让这一切顺利进行。非常感谢您的帮助 我最近升级到了Universal Analytics,并成功地使用Google analytics 通过使用Universal Analytics跨域运行GA实验,链接器可以工作,但实验代码忽略了clientId,google-analytics,universal-analytics,google-experiments,analytics.js,Google Analytics,Universal Analytics,Google Experiments,Analytics.js,几周来,我一直在努力让这一切顺利进行。非常感谢您的帮助 我最近升级到了Universal Analytics,并成功地使用自动链接器设置了跨域跟踪,但在将用户重定向到实验的域部分时,我无法让我的分析实验通过\u ga变量 设置 两个域都有两个跟踪器,一个(t0)共享[UA-xxxxxxx-5],另一个(domainUniqueTracker)登录到该特定域唯一的trackingId([UA-xxxxxxx-1]主域和[UA-xxxxxxx-14]新实验域) 链接器加载在t0上,以支持跨域共享
自动链接器设置了跨域跟踪
,但在将用户重定向到实验的域部分时,我无法让我的分析实验通过\u ga
变量
设置
- 两个域都有两个跟踪器,一个(
)共享t0
,另一个([UA-xxxxxxx-5]
)登录到该特定域唯一的trackingId(domainUniqueTracker
主域和[UA-xxxxxxx-1]
新实验域)[UA-xxxxxxx-14]
- 链接器加载在
上,以支持跨域共享t0
- 链接器加载了一系列域,包括我试图通过实验向其发送流量的域
- 实验是在共享trackingId
上创建的[UA-xxxxxxx-5]
t0
)
问题
如果我访问www.lundalogik.se并从那里单击指向新的外部站点的正常链接(虚拟页面上的正常锚链接lundalogik.se/experience/
),则clientId
会成功地在URL中传递,外部站点的跟踪器会识别到这一点,并开始使用clientId
但是如果我浏览到安装实验代码的页面,我会被重定向到外部站点,而不会传递clientId,因此外部站点上的跟踪器会生成一个新的clientId
感谢并为这篇长篇文章感到抱歉,我想尽可能详细地解释。UA中的各种链接器功能将添加到传出链接(表单、框架等)。由于重定向发生在javascript实验中,因此无法将客户端id添加到url中(这在某种程度上似乎是谷歌的疏忽——他们似乎没有预料到您的用例,即跨域的内容实验) 我有一些未经测试的想法可以贡献,也许你可以在其中一个之上构建一个解决方案 1) 在触发实验代码之前,将客户端id推送到window.document.location.hash。至少在Chrome中,这不会导致重新加载(从查看网络选项卡可以看出)。因为散列现在是url的一部分,所以当重定向触发时,它应该一起发送。然后在接收页面上需要一个脚本来检查clientID的散列并将其传递给analytics(如果存在) 2) 基本上相同,只是这次使用pushState方法(),它应该允许您在不重新加载的情况下提供查询参数 3) 使变体页面成为主域中的页面。这里没有任何内容,而是放了一个javascscript,它从cookie中读取clientId并重定向到另一个域 4) 与3相同,仅在服务器端(不要忘记在重定向中包含content-experience参数)
正如我所说的,这基本上是在大声思考,但它可能会提供解决方案的线索。我很抱歉只得到了半个答案,但我得到了上级的命令,在我让它完全工作之前就放弃了。希望它仍然会对希望做同样事情的人有所帮助 如果您完成了接收部分,请在此处发布您的代码,我将更新此答案/用答案奖励您 好了,没什么
发送端工作并将clientId添加到哈希中,当实验执行跨域重定向时,它被成功地传输 带有实验代码的页面 在运行实验代码之前执行此操作
var z, y, x = document.cookie.split("; ");
for (var i = 0; i < x.length; i++) {
y=x[i].split("=");
if (y[0] == "_ga") window.location.hash = y[1];
}
var z,y,x=document.cookie.split(“;”);
对于(变量i=0;i
跨域页面
这是我接到命令之前从未到过的地方。但你会做一些类似的事情:
window.location.hash
以及它是否包含clientId(window.location.hash.substr(0,3)=“#GA”
)如果社区愿意,如果这被认为是不好的做法,我当然会删除“已接受的答案”(这只是我在SO网络上的第二篇帖子)。+1完整性:-)谢谢Eike!将定义。看看你的建议当我周五回去工作的时候,我的想法其实是一样的,但是我担心我把事情弄得比它应该做的更难(即,我做了一些天生的、疯狂的错误并且忽略了一些非常明显的事情:)。谢谢你证实我对可能的疏忽的怀疑!只要在