跨域iFrame-未传输cookie

跨域iFrame-未传输cookie,iframe,cookies,google-analytics,cross-domain,tracking,Iframe,Cookies,Google Analytics,Cross Domain,Tracking,我们有一个网站,我们的应用程序在多个域和子域的iFrame中运行。主网站(www.example.com)只有静态内容,链接到带有框架应用程序站点的站点。因此,sub.example.com、sub2.example.com、search.other.com都具有应用程序运行时的所有iFrame 我们希望通过谷歌分析(GA)追踪所有这些网站。子域跟踪工作正常,但我无法找到一种方法使跨域跟踪准确工作。主要问题是我无法在顶级域之间共享访问者cookie信息。因此,访问sub.example.com和

我们有一个网站,我们的应用程序在多个域和子域的iFrame中运行。主网站(www.example.com)只有静态内容,链接到带有框架应用程序站点的站点。因此,sub.example.com、sub2.example.com、search.other.com都具有应用程序运行时的所有iFrame

我们希望通过谷歌分析(GA)追踪所有这些网站。子域跟踪工作正常,但我无法找到一种方法使跨域跟踪准确工作。主要问题是我无法在顶级域之间共享访问者cookie信息。因此,访问sub.example.com和search.other.com的同一个访问者会得到两个不同的cookie,这会导致各种问题。(例如,访客柜台膨胀,无法正确跟踪推荐信息等)

你能帮我修一下吗

(我在网上做了相当彻底的搜索,尝试了几个场景,但到目前为止没有成功)

以下是我们GA实施的核心:

在sub.example.com(以及主网站的所有子域)上

在search.other.com上(所有外部子域都有变体)

在所有页面上的iframe之后

  <script type="text/javascript">
    _gaq.push(function ()
    {
      var iFrameTracker = _gat._getTrackerByName('b');
      var iframe = document.getElementById('myframe');
      iframe.src = iFrameTracker._getLinkerUrl(iframe.src);
    });
  </script>

_gaq.push(函数()
{
变量iFrameTracker=_gat._getTrackerByName('b');
var iframe=document.getElementById('myframe');
iframe.src=iFrameTracker.\u getLinkerUrl(iframe.src);
});
在www.example.com上的链接上

<a href="http://search.another.com" onClick="_gaq.push(function ()
  {
    var tracker = _gat._getTrackerByName('b');
    var linkerUrl = tracker._getLinkerUrl('http://search.another.com');
  });">

linkerUrl具有正确的Url和www.example.com的cookie。但出于某种奇怪的原因,GA在search.other.com上分配了一个新的cookie。我尝试将域名设置为none(['b._setDomainName','none']),但没有帮助。我不确定我是否遗漏了一个简单的基本点。我想问题可能与跨域iFrame有关,链接可以在iFrame中,也可以在框架集中。所以我想追踪两者

我用Chrome GA调试器插件进行调试


(顺便说一句,理论上我们可以有无限多的顶级/子域。因此,在GA上手动为每个域创建筛选器不是一个选项。)

您只需将linkerUrl分配给一个变量。您需要将用户重定向到该url

您应该在onClick处理程序上返回false,以防止浏览器执行常规重定向

<a href="http://search.another.com" onClick="_gaq.push(function ()
  {
    var tracker = _gat._getTrackerByName('b');
    var linkerUrl = tracker._getLinkerUrl('http://search.another.com');
    window.location.href = linkerUrl;
  });return false;">

我刚刚解决了我们的问题:我们正在对这些链接进行重定向-这是在清除GA cookie参数。所以我们现在正在解决这个问题。谢谢你的帮助爱德华多。正如您所建议的,我将使用_link函数,因为它们都具有相同的效果。
<a href="http://search.another.com" onClick="_gaq.push(function ()
  {
    var tracker = _gat._getTrackerByName('b');
    var linkerUrl = tracker._getLinkerUrl('http://search.another.com');
  });">
<a href="http://search.another.com" onClick="_gaq.push(function ()
  {
    var tracker = _gat._getTrackerByName('b');
    var linkerUrl = tracker._getLinkerUrl('http://search.another.com');
    window.location.href = linkerUrl;
  });return false;">
<a href="http://search.another.com" 
   onClick="_gaq.push(['b._link', this.href]);return false;">