在进行网站跟踪分析时,我们可能会需要将不同域名的网站数据汇入一个GA媒体资源 (Google Analytics Property)中进行管理。因为浏览器同源策略 (Same-Origin Policy),一个浏览器cookie只针对其写入的一个域名(包含二级域名)有效。Google Analytics使用cookies存储Client-ID用于识别用户,当一个用户访问2个域名下的网站时,只有将Client-ID统一,才能在报告中识别出这是一个visitor,完成跨网站跟踪。如果只是将同一GA代码部署在不同域名网站中,并不能实现跨域跟踪,还需要进行如下设定。

跨域跟踪需要在Google Analytics和Google Tag Manager中都进行相关设置。

一、将所有数据发送到同一个Google Analytics Property中

Property(媒体资源)是谷歌分析跟踪收集数字资产如网站等数据的设置单元。每一个GA Property都有一个独一无二的跟踪 ID (Tracking ID)。

每个Property都有自己独立的数据表,包括发送到其的所有hits。因此,每个Property有其自己的用户 (users)、会话 (sessions) 和相关数据,不同Property间并无交叉。因此,如果我们要进行跨域跟踪,首先要将不同域名网站的数据都发送到一个Google Analytics Property中,也就是不同网站都部署同一个跟踪 ID (Tracking ID)。

二、在Google Analytics“引荐排除列表”中添加域名

在流量被识别成引荐流量后,Google Analytics会将其视为一个新的会话,因此,我们要将需要跨域的网站域名加入到Google Analytics“引荐排除列表”中。添加完毕后,所有从这些域名来的流量都不会被认为是引荐流量,而被视为直接流量,不会新启一个会话。

我们以知乎和阿里云为例进行演示。首先在GA中进行设置,将两个域名添加到“引荐排除列表”。

三、URL中的Linker参数

Google Analytics以Client ID区分用户,Client ID对于一个浏览器中的网站cookie是唯一的,因为浏览器同源策略,这个信息不能共享给其他cookie。所以,我们需要将用户对于一个网站的Client ID应用到其他网站,才能完成跨域的用户识别。为此,Google Analytics推出了linker(链接器)插件解决这个问题。当唤起这个插件时,将在2分钟内返回的URL参数中包含Client ID。当用户在2分钟窗口内访问另一个网站,都可被识别成跨域流量。

通常,我们通过autoLink功能实现linker插件加载。在使用autoLink功能时,只需要提供网站域名即可,autoLink将自动控制URL参数生成。

在Google Tag Manager中进行如下设置。在网站GA变量中的“自动链接网域”中添加需要跨域追踪的网站域名,以英文逗号间隔。修改完毕后发布。

当点击原网站中的目标网站超链接时,打开的网站URL中出现_ga=参数,说明添加成功。

四、设置网站接受allowLinker作为Client ID

经过第三步设定,已经可以将一个网站的Client ID添加到URL中,现在我们需要设定目标网站收到这类URL,可将其中的参数写入Client ID。

在目标网站GTM中找到Google Analytics设置变量,在“更多设置”——“要设置的字段”中新建字段,通过下拉找到“allowLinker”,值填入“true”。保存变量并发布。

以上设定完成后,点击原网站中超链接跳转到目标网站后,使用浏览器开发工具 (F12),验证下collect中的cid是不是有被写入原网站Client ID。如果出现则设置成功。

因为新版本Chrome浏览器安全要求,跨网站Cookie必须设置SameSite,因此跨域追踪Cookie时还可参考这篇文章中的方法进行设置:Google Analytics中的cookieFlags设置

这篇文章有用吗?

点击星号为它评分!

平均评分 5 / 5. 投票数: 1

到目前为止还没有投票!成为第一位评论此文章。

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

  • Post last modified:2020年10月24日

发表评论