Google Analytics(分析) - 跟踪包含父级

时间:2015-11-12 23:58:37

标签: javascript google-analytics cross-domain event-tracking

我正在尝试设置多个子域属性的跟踪,同时还将数据发送到主属性。

现在,我们有以下设置:

domain.com - UA-XXX-1

foo.domain.com - UA-XXX-2

bar.domain.com - UA-XXX-3

如果用户访问域“foo.domain.com”,我希望将数据发送到UA-XXX-1和UA-XXX-2进行综合浏览。根据我的理解,我需要设置GA代码:

<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-XXX-1', 'auto');
ga('send', 'pageview');
ga('create', 'UA-XXX-2', 'auto',{'name': 'Foo'});
ga('Foo.send', 'pageview');
</script>

为所有子域设置这样就意味着如果我转到UA-XXX-1,我会看到来自我设置的所有子域属性的数据混合,如果我进入各个子域,我只会看到这些特定属性的数据。简单。

但是,我想弄清楚的是,如果这是在添加事件/转换跟踪等内容时使用的正确方法吗?

如果我有这样的链接:

<a href="teletubbies.com" onclick="ga('send','event','Teletubby','Tinkywinky','Click');">Teletubbies</a>

这只会将事件发送到UA-XXX-1属性,而不是设置的第二个属性UA-XXX-2,对吗?这是否意味着,对于每个跟踪代码,我需要添加两个单独的跟踪代码才能发送事件跟踪或是否有更简单的解决方案?

<a href="teletubbies.com" onclick="ga('send','event','Teletubby','Tinkywinky','Click'); ga('Foo.send', 'event', 'videos', 'predators');">Teletubbies</a>

1 个答案:

答案 0 :(得分:3)

您拥有的一切都是正确的。是的,你需要两次发送命中,让它们显示在两个独立的属性中。

如果您不喜欢重复自己,可以将两个发送命令抽象为一个JavaScript函数,该函数始终将命中结果发送给两个属性。

例如:

function runGACommand() {
  var mainTrackerArgs = [].slice.call(arguments, 0);
  var fooTrackerArgs = mainTrackerArgs.slice(0);

  // Sets the "Foo" name on the second set of arguments.
  fooTrackerArgs[0] = 'Foo.' + fooTrackerArgs[0];

  // Runs the command on both trackers.
  ga.apply(null, mainTrackerArgs);
  ga.apply(null, fooTrackerArgs);
}

现在,您可以将事件处理程序简化为:

<a href="teletubbies.com" onclick="runGACommand('send','event','Teletubby','Tinkywinky','Click');">Teletubbies</a>

它会将数据发送到两个属性。