通过具有Universal Analytics的域运行GA实验,链接器可以工作,但实验代码忽略clientId

时间:2014-05-27 10:11:38

标签: google-analytics universal-analytics google-experiments analytics.js

现在试图让这个工作几个星期了。非常感谢任何帮助。

我最近已升级到Universal Analytics,并设法使用autoLinker成功设置跨域跟踪,但在重定向用户时,我无法让我的Google Analytics实验传递_ga变量到实验的域名部分。

设置

  • 这两个域都有两个跟踪器,一个(t0)共享[UA-xxxxxxx-5]和一个(domainUniqueTracker),它们记录到该特定域唯一的trackingId([UA-xxxxxxx-1]主域名和[UA-xxxxxxx-14]新实验域名。)
  • 链接器已加载到t0以启用跨域共享。
  • 链接器加载了一系列域名,包括我尝试通过实验发送流量的域名。
  • 在共享trackingId [UA-xxxxxxx-5]上创建实验。

上下文

我公司有一款名为LIME Pro的产品,到目前为止我们已经在公司网页上获得了相关信息。现在,作为一项实验,我们在一个单独的域上创建了一个关于系统的单页,他们希望看到哪个页面(旧的或新的)吸引了大多数潜在客户。

公司网页内的旧产品页面(安装在那里的实验代码) http://www.lundalogik.se/crm-system/lime-pro/

单独域上的新产品页面(与跟踪器t0上的主域名共享trackingId) http://www.lime-pro.se

问题

如果我访问www.lundalogik.se并从那里点击指向新的外部网站的常规链接(虚拟页面lundalogik.se/experiment/上的常规锚链接),clientId成功传递外部站点的URL和跟踪器识别出这一点并开始使用clientId

但是,如果我浏览到安装了实验代码的页面,我将被重定向到外部站点,而不会传递clientId,因此外部站点的跟踪器会生成一个新的clientId。

感谢和抱歉长篇文章,希望尽可能详细地解释。

2 个答案:

答案 0 :(得分:0)

UA中的各种链接器函数将_ga添加到传出链接(表单,框架等)。由于重定向发生在实验javascript中,客户端ID无法添加到网址(这在某种程度上似乎是对谷歌部分的疏忽 - 似乎他们没有预料到您的用例,即跨域的内容实验)。

我有一些未经考验的想法可以贡献,也许你可以在其中一个上面构建一个解决方案。

1)在实验代码触发之前,将客户端ID推送到window.document.location.hash。至少在Chrome中,这不会导致重新加载(据我所知,从查看网络选项卡)。由于哈希现在是url的一部分,因此当重定向触发时它应该被发送。然后,您需要在接收页面上使用一个脚本来检查客户端ID的哈希,并将其传递给分析(如果存在)。

2)基本上相同,只是这次使用pushState方法(https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history),它应该允许你提供查询参数而无需重新加载。

3)将变体页面设为主域中的页面。而不是任何内容放在那里的javascscript从cookie读取clientId并重定向到其他域

4)与3相同,只有服务器端(不要忘记在重定向中包含内容实验参数)

正如我所说,这基本上是在大声思考,但它可能提供解决方案的线索。

答案 1 :(得分:0)

我很抱歉只有半个答案,但是在我完全开始工作之前,我从上面接到命令。希望对于那些希望这样做的人来说,它仍然会有所帮助。

如果您执行完成接收部分,请在此处发布您的代码,我将更新此答案/给您答案。

好的,什么都没有..


发送方工作并将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];
}

PAGE ON CROSS DOMAIN

这是我收到订单之前从未接触过的地方。但你会做类似的事情:

  1. 检查window.location.hash以及是否包含clientId(window.location.hash.substr(0,3) == "#GA"
  2. 检查现有的Cookie 2.1。 (存在)通过“;”拆分cookie,找到“_ga”并用上面的哈希替换它的值(首先删除“#”) 2.2。 (不存在)在域级别创建一个新cookie并设置“_ga =(hash-value)”
  3. 启动谷歌分析跟踪器,假设访问者之前已经访问过该页面并接受来自cookie的客户端ID
  4. 活得长久而繁荣
  5. 所以,再次抱歉,答案只是部分完成,但希望有人能从中受益。

    或者至少不要假设他们像我在无法工作时那样生气。)。

    如果社区希望我将删除“已接受的答案”,如果这被认为是不好的做法(这只是我在SO网络上的第二篇帖子)。