[GA4] 设置跨网域衡量

本文面向需要跨多个网域(例如跨客户网站和单独的购物车网域)进行统一衡量的网站所有者。本文描述的内容针对的是 Google Analytics(分析)4 媒体资源;如果您使用的是 Universal Analytics,请参阅这篇文章

通过跨网域衡量,可以在用户跨网域浏览的情况下,将这些活动准确归因于同一用户。使用增强型衡量功能时,出站点击一般会触发事件;而如果对应的出站链接指向您列为要进行跨网域衡量的网域,那么这些出站点击将被忽略。

视频概览

Cookie 与跨网域衡量

在征得用户同意后,Google Analytics(分析)会使用第一方 Cookie 为每个唯一身份用户和每个唯一会话设置 ID。

  • 如果不使用跨网域衡量,系统会为用户访问的每个网域创建带有新 ID 的新 Cookie。因此,如果同一个用户在同一台设备上访问不同的根网域(例如 www.example.com 和 www.anotherexample.com),系统会将其识别为两位用户和两个会话,而不是一位用户和一个会话。
  • 如果使用跨网域衡量,当用户通过链接或表单浏览不同网域时,这些 Cookie 会经由网址参数 (_gl) 从一个网域传递至另一个网域,从而保留相同的 ID。因此,Google Analytics(分析)仅会识别一个用户和一个会话。
注意:子网域不需要进行此设置,因为子网域与根网域共享相同的 Cookie(除非您更改了默认的 Cookie 网域配置)。

如果您还有 Universal Analytics 媒体资源

对于 Universal Analytics 媒体资源,您可以通过代码配置跨网域衡量(通过 analytics.jsgtag.js 在源代码中配置,或通过 Google 跟踪代码管理器进行配置)。对于 Google Analytics(分析)4 媒体资源,您将通过“管理”页面进行配置。请按照下文中的说明添加您在 Universal Analytics 网页代码中指定的那些网域。

如果您已为 Universal Analytics 媒体资源配置 Google 代码,则它也将应用于您的 Google Analytics(分析)4 媒体资源。您在代码中或通过“管理”页面指定的任何网域都将应用于您的 Google Analytics(分析)4 媒体资源。不过,我们建议您仅在“管理”页面中进行配置。

通过“管理”页面设置跨网域衡量

您需要拥有“编辑者”角色才能设置跨网域衡量,并且最多可以创建 100 个条件。

检查您希望纳入跨网域衡量范围内的各个网域上的代码(例如每个 HTML 网页上的 Google 代码)。每个网页上的代码都必须使用来自同一网站数据流的同一代码 ID(即相同的“G-”ID)。

  1. 管理界面中,点击“数据收集和修改”下方的数据流
  2. 点击网站,然后点击相应网站数据流。
  3. 在“网站数据流详情”中,点击底部的配置代码设置
  4. 在“设置”部分,点击配置您的网域
  5. 如果您在不同的网域中使用相同的 Google 代码,则系统会自动检测这些网域,并将其显示在建议部分中。若要接受建议,请点击添加
    若要手动添加网域,请点击“包含符合以下条件的域名”下的添加条件
    • 选择匹配类型。
    • 在“域名”下方,输入您要匹配的网域的标识符(例如 example.com)。
    • 添加您希望纳入跨网域衡量范围内的每个网域。
    各项条件彼此之间是按照 OR 逻辑进行评估的。
  6. 点击保存

手动设置

建议通过 Google Analytics(分析)界面配置跨网域衡量。不过,有些情况下,您可能需要通过衡量代码来实现自定义解决方案。对于此类情况,您可以通过使用 gtag.js API 的 get 和 set 命令跨网域存留 ID,手动设置跨网域衡量。不妨详细了解如何手动设置跨网域衡量

示例

要在来源网域上获取 Client-ID,您可以使用 get 方法:

  
gtag('get', 'TAG_ID', 'client_id', (client_id) => {
  // 将 Client-ID 存储在变量中。
});
gtag('get', 'TAG_ID', 'session_id', (session_id) => {
  // 将会话 ID 存储在变量中。
});

  

在获得 Client-ID 和会话 ID 后,将其添加到指向目标网域的链接中:

<a href="https://example.com/?clientId=XXXXX&sessionId=YYYYY">example.com</a>

 

在目标网页上,读取网址中的 ID 并使用 config 命令设置这些 ID:


gtag('config','TAG_ID', {
'client_id': getClientIdFromUrl(),
'session_id': getSessionIdFromUrl()
});
  

确认跨网域衡量能否正常运行

跨网域衡量的运作方式是将参数附加到您网站的网址中。在极少数情况下,您的 Web 服务器可能会遇到错误,例如返回 5xx 错误响应代码或无法开始下载。

若要确认跨网域衡量能否正常运行,请执行以下操作:

  1. 从您的网站上选择一个网页打开,所选的网页需包含一个链接或表单,而且该链接或表单需指向您配置为进行跨网域衡量的网域。
  2. 点击该链接或提交该表单,以跳转到目标网域。
  3. 确认网页是否正确加载。
  4. 确认目标网域中的网址是否包含链接器参数 _gl,例如 https://www.example.com/?_gl=1*abcde5*
  5. 如果您的网站提供任何下载项目:请前往网址中包含链接参数的网页,然后开始下载。确认下载作业是否已成功开始。

如果您遇到错误,请尝试对跨网域衡量进行问题排查

问题排查

如果您按上述步骤操作后仍不能确认目标网域中的网址是否包含参数 _gl,请仔细检查您在界面中配置的网域是否与您的网站所指向的网域一致。

还有一种可能是,您的网站的配置方式阻碍了跨网域衡量正常工作。您可以在经验丰富的 Web 开发者的帮助下,调查您的网站是否受到以下问题的影响。

网址重定向

如果目标网页发生重定向或不支持任意指定的查询参数,那么即使 Google Analytics(分析)在上一个网页的网址中附加了参数 _gl,它最终也可能被移除(通常这一过程非常快,无法用肉眼观察到)。要确认您的网站是否存在此问题,请使用 Chrome 开发者工具检查上一个网页发出的网络请求。要解决此问题,请将您的网站配置为在重定向过程中保留 _gl 参数。

与其他脚本冲突

跨网域衡量的工作原理是,在网页的文档节点上创建事件监听器。当用户点击链接时,点击事件会向上传递到文档节点,然后参数 _gl 便会添加到链接网址中。此过程在下列情况下无法正常进行:

  • 当通过 JavaScript 触发导航(而不是通过直接响应用户操作)时。
  • 当网页中相互竞争的脚本在事件到达文档节点之前停止事件传播时,例如,当使用 Event.stopPropagation() 时。

该内容对您有帮助吗?

您有什么改进建议?
搜索
清除搜索内容
关闭搜索框
主菜单
12336610613325694706
true
搜索支持中心
true
true
true
true
true
69256
false
false