Google 分析 - 跟踪多个属性,包括父属性
Google Analytics - Tracking Multiple Properties Including Parent
我正在尝试为多个子域属性设置跟踪,同时将数据发送到主域 属性。
现在,我们有以下设置:
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,我将看到来自我设置的所有子域属性的混合数据,如果我进入个人那些,我只会看到那些特定属性的数据。简单。
但是,我想弄清楚的是,在添加 event/conversion 跟踪之类的东西时,这是否是正确的方法?
如果我有这样的 link:
<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>
您上面的所有内容都是正确的。是的,您需要发送两次点击才能让它们显示在两个单独的媒体资源中。
如果您不喜欢重复自己的话,可以将两个发送命令抽象为一个 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>
它会将数据发送到两个属性。
我正在尝试为多个子域属性设置跟踪,同时将数据发送到主域 属性。
现在,我们有以下设置:
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,我将看到来自我设置的所有子域属性的混合数据,如果我进入个人那些,我只会看到那些特定属性的数据。简单。
但是,我想弄清楚的是,在添加 event/conversion 跟踪之类的东西时,这是否是正确的方法?
如果我有这样的 link:
<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>
您上面的所有内容都是正确的。是的,您需要发送两次点击才能让它们显示在两个单独的媒体资源中。
如果您不喜欢重复自己的话,可以将两个发送命令抽象为一个 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>
它会将数据发送到两个属性。