具有多个跟踪器的 Google Analytics(分析)跨域跟踪

Posted

技术标签:

【中文标题】具有多个跟踪器的 Google Analytics(分析)跨域跟踪【英文标题】:Google Analytics Cross-Domain Tracking with Multiple Trackers 【发布时间】:2013-12-06 06:33:03 【问题描述】:

我有一个站点网络,这些站点都位于不同的域和子域(domain1.com、sub.domain1.com、domain2.com、sub.domain2.com)上。其中一些已经安装了谷歌分析跟踪器。有些根本没有 GA 跟踪器。

我想创建一种方法来跨域查看整个网络的单个 GA 帐户,而不会中断现有的单域 GA 跟踪。此外,我需要能够跟踪网络中各个站点的访问和转化,就好像它们是一个站点一样。基本上,您可以将其视为网络的一个完全独立、独立的 GA 帐户。

我发现可以自动链接域 (https://developers.google.com/analytics/devguides/collection/analyticsjs/cross-domain#autolink),从而启用网络范围的分析和转化跟踪,但有没有办法做到这一点,不会破坏现有的跟踪器网站?也许有一种方法可以让 GA 创建两个具有不同 cookie 的跟踪器,其中一个是跨域的?

理想情况下,我可以为每个站点的开发人员提供一个 sn-p 代码,以添加到他们的站点,以启用网络跟踪。有可能吗?

【问题讨论】:

【参考方案1】:

是的,这是可能的。不过要记住几点:

我有一个站点网络,这些站点都位于不同的域和子域(domain1.com、sub.domain1.com、domain2.com、sub.domain2.com)上。其中一些已经安装了谷歌分析跟踪器。有些根本没有 GA 跟踪器。

这应该不是问题。将第二个跟踪器添加到现有页面很简单。下面我会告诉你怎么做。

我想创建一种方法来查看整个网络的单个 GA 帐户

自动链接器插件实际上只在property 级别工作,因此这些插件不仅必须共享同一个帐户,而且还必须共享同一个属性。但这可能是你想要的。

我需要能够跟踪网络中各个站点的访问和转化,就好像它们是一个站点一样。基本上,您可以将其视为网络的一个完全独立、独立的 GA 帐户。

正是,您将为此目的创建一个全新的属性,将所有这四个“站点”作为一个“站点”进行跟踪。

也许有一种方法可以让 GA 创建两个具有不同 cookie 的跟踪器,其中一个是跨域的?

您可以创建多个在同一站点上运行的跟踪器,但 they must share cookies。这是因为analytics.js只在cookie中保存了客户端ID,显然客户端是一样的。

对于已安装分析的现有网站之一,代码可能如下所示:

(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-XXXX-Y', 'auto');
ga('send', 'pageview');

要向该页面添加另一个跟踪器以跟踪不同的属性,您只需在 sn-p.xml 中添加几行 javascript。在此示例中,您将新跟踪器命名为 t2,这样它就不会干扰现有跟踪器。

ga('create' 'UA-YYYY-Z', 'auto', name: 't2');
ga('t2.send', 'pageview');

这会创建一个新的跟踪器并使用新的跟踪器发送一个综合浏览量,但它没有设置自动链接。为此,您必须对其稍作修改(假设此代码用于 domain1.com):

ga('create', 'UA-YYYY-Z', 'auto', name: 't2', allowLinker': true);
ga('t2.require', 'linker');
ga('t2.linker:autoLink', ['domain2.com']);
ga('t2.send', 'pageview');

然后对于 domain2.com,您只需稍微更改代码以自动链接到 domain1.com:

ga('create', 'UA-YYYY-Z', 'auto', name: 't2', allowLinker': true);
ga('t2.require', 'linker');
ga('t2.linker:autoLink', ['domain1.com']);
ga('t2.send', 'pageview');

您不需要列出子域,因为 analytics.js 默认会跟踪这些子域。

除了您提供的链接之外,这里还有一些关于跨域跟踪的有用信息:https://support.google.com/analytics/answer/1034342?hl=en

【讨论】:

以上是关于具有多个跟踪器的 Google Analytics(分析)跨域跟踪的主要内容,如果未能解决你的问题,请参考以下文章

iOS 中具有两个不同跟踪 ID 的 Google Analytics(目标 C)

使用多个 Google Analytics 帐户进行跨子域跟踪。

Google Analytics - 在单个 HTTP 请求中跟踪多个事件

Google Analytics - (gtag) 一个跟踪代码,多个域

同一页面上有多个 Google Analytics(分析)gtag 跟踪 ID

Google Analytics 跟踪从 Lite 到 Pro 的转换