3

几周以来一直试图让它工作。任何帮助是极大的赞赏。

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

设置

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

语境

我的公司有一个名为 LIME Pro 的产品,到目前为止,我们在公司网页上都有关于该产品的信息。现在,作为一个实验,我们在一个单独的域上创建了一个关于系统的单页,他们想看看哪个页面(旧的或新的)吸引了最多的潜在客户。

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

单独域上的新产品页面(与 tracker 上的主域共享 trackingId t0http://www.lime-pro.se

问题

如果我访问 www.lundalogik.se 并从那里单击指向新的外部站点的正常链接(虚拟页面上的正常锚链接lundalogik.se/experiment/),clientId则成功在 URL 中传递,并且外部站点的跟踪器识别并启动使用clientId.

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

感谢和抱歉关于长篇文章,想尽可能详细地解释。

4

2 回答 2

0

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

我有一些未经测试的想法要贡献,也许您可​​以在其中一个之上构建解决方案。

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

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

3) 使变体页面成为您的主域中的页面。代替任何内容,放一个 JavaScript 脚本,从 cookie 中读取 clientId 并重定向到另一个域

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

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

于 2014-05-27T12:10:03.310 回答
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];
}

跨域页面

这是我在收到我的命令放弃这个之前从未到达过的地方。但是你会做这样的事情:

  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. 健康长寿·繁荣昌盛

所以,再次抱歉,答案只是部分完成,但希望有人能从中受益。

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

如果社区愿意,如果这被认为是不好的做法,我当然会删除“已接受的答案”(这只是我在 SO 网络上的第二个帖子)。

于 2014-05-30T09:36:47.663 回答