本文面向需要使用同一 Google 代码衡量多个网域的开发者。本文将重点介绍 gtag.js 代码实现。您还可以在您 GA4 媒体资源的 Google 代码设置中配置其他网域。
借助跨网域衡量功能,您能够将多个独立网域上的两个或多个相关网站作为一个整体进行衡量。Google 代码为支持的产品提供了一种通用方式,可以在客户转化历程跨多个网域的情况下衡量活动。跨网域衡量功能适用于所有 Google 产品,包括 Google Analytics(分析)、Google Ads 转化衡量和 Floodlight 转化。
何时实现跨网域衡量
当您需要整合两个或多个网域的数据时,便可以实现跨网域衡量。
假设您的网站位于 example-petstore.com
网域,而您网站的电子商务版块由第三方购物车托管在另一网域 (example-commerce-host.com/example-petstore
) 上。
如果不使用跨网域衡量,那么当某位用户先访问您的网店,随后又进入您的第三方购物车时,系统会将该用户计为两位不同的用户,他们进行了两次时长不同的独立会话。如果使用跨网域衡量,系统会将活动作为单个用户所执行的活动进行捕获。
运作方式
网域链接器在来源网域和目标网域之间共享第一方衡量 Cookie。第一方衡量 Cookie 存储在网络浏览器中,只能由同一网域中的网页访问。
跨网域衡量的设置过程分为两个步骤:
- 来源网域调整指向目标网域的网址,使这些网址包含来源网域的第一方衡量 Cookie 值。
- 目标网域检查是否存在已链接的衡量 Cookie。
使用 Google 代码进行跨网域衡量时,会将链接器参数添加到指向目标网域的网址。系统使用 _gl
键在网址查询参数中标识该链接器参数:
https://www.example.com/?_gl=1~abcde5~
在目标网域上,代码配置为检查网址中的链接器参数。如果找到了有效的链接器参数,则代码将提取第一方衡量 Cookie 并保存下来。
设置跨网域链接
若要在来源网域上为指向目标网域的网址设置跨网域衡量,您需要创建 linker
对象。该链接器将监听对指向目标网域的链接的点击,并为这些链接的网址自动添加链接器参数。
linker
对象需要 domains
参数,该参数是包含一个或多个网域的数组。此代码会将链接器参数附加到网页上指向目标网域 'example.com' 的链接:
gtag.js
若要为 Google 代码设置跨网域衡量,请按以下方式向您的代码添加 linker
命令。将 example.com
替换为您的网域。
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('set', 'linker', {'domains': ['example.com']});
gtag('js', new Date());
gtag('config', 'TAG_ID');
</script>
您可以在 domains
属性中列出多个字符串值。如果 domains
属性具有至少一个值,那么 gtag.js 会默认接受收到的网域链接。您可以向 domains
属性添加多个值,并在每个网域上使用相同的代码段。
Google Analytics(分析)4 支持 gtag('set', 'linker', ...)
配置,前提是 linker
命令是在相关 config
命令之前设置的。不过,我们建议在 Google Analytics(分析)4 的“管理”页面上配置跨网域衡量。了解如何设置跨网域衡量
gtag('set', 'linker', {
'domains': ['example.com', 'example-b.com']
});
跟踪代码管理器
对于 Google Ads 代码和 Floodlight 代码
在跟踪代码管理器中,创建转化链接器代码,然后将该代码设置为自动链接网域。
- 依次点击代码 > 新建。
- 点击代码配置,然后选择转化链接器。
- 选择触发器。在大多数情况下,您应该选用可对所有网页浏览触发以进行跨网域衡量的触发器,或选用可对网站访问者点击广告后到达的特定转化页触发的触发器。
- 选择启用跨网域链接。通过此设置,该代码将能够处理包含链接器参数的入站链接。
- 在自动链接网域中,输入应与此代码链接的网域列表。指向此字段中所列网域的任何链接都将在网址后附加一个链接器参数。
- 保存并发布您的代码配置。
对于 Google Analytics(分析)4 代码
在 Google Analytics(分析)4 中,跨网域衡量通过 Google Analytics(分析)的“管理”界面进行配置。了解如何使用 Google Analytics(分析)4 设置跨网域衡量。
对于旧版 Universal Analytics 代码
若要在跟踪代码管理器中配置旧版 Universal Analytics 代码,以跨多个网域衡量用户互动情况,请执行以下操作:
- 在跟踪代码管理器中,打开要修改的 Google Analytics(分析)设置变量或 Universal Analytics 代码。
- 若要查找您的 Google Analytics(分析)设置变量,请点击变量,然后点击列表中的相应变量。
- 若要查找您的 Universal Analytics 代码,请点击代码,然后从列表中选择相应代码。
- 依次点击更多设置 > 跨网域跟踪。
- 在自动链接网域字段中,输入以逗号分隔的网域列表。
- 若要接收来自其他网域的入站链接,请依次转到更多设置 > 要设置的字段,然后添加一个“字段名称”为“allowLinker”、值为“true”的字段。
- 保存更改并发布容器。
链接器参数参考
参数 | 类型 | 已接受的值 |
---|---|---|
accept_incoming |
布尔值 | true (如果 domains 具有值,则默认为 true)、false |
decorate_forms |
布尔值 | true 、false (默认值) |
domains |
数组 | 包含一个或多个网域的数组,例如 ['example1.com', 'example2.com'] |
url_position |
字符串 | 'query' (默认值)、'fragment' |
accept_incoming
当用户到达目标网域中的某个网页而该网页的网址中包含链接器参数时,您的代码需要配置为解析该参数。
如果目标网域已配置为自动链接网域,则它会默认接受链接器参数。目标网域上不需要其他代码。
如果目标网域未配置为自动链接网域,则您可以指示目标网页查找链接器参数,将 accept_incoming
属性设置为 true
即可。
gtag.js
gtag('set', 'linker', {
'accept_incoming': true
});
跟踪代码管理器
适用于 Google Ads 转化和 Floodlight 转化的转化链接器代码
选中接受传入的链接器参数复选框。
Universal Analytics 代码
当您在自动链接网域字段(可在 Google Analytics(分析)设置变量或 Universal Analytics 代码中的更多设置 > 跨网域跟踪下找到)中添加相应值时,系统会自动设置 accept_incoming
。
decorate_forms
若要衡量在多个网域之间发送的表单数据,请将 decorate_forms
属性设置为 true
。
gtag.js
gtag('set', 'linker', {
'domains': ['example.com'],
'decorate_forms': true
});
跟踪代码管理器
适用于 Google Ads 转化和 Floodlight 转化的转化链接器代码
将装饰表单设置为 true。
Google Analytics(分析)4 代码和 Universal Analytics 代码
跟踪代码管理器中没有针对 Google Analytics(分析)代码的 decorate_forms
的控件。请转为参阅 gtag.js 指南。
domains
要链接的一个或多个网域的数组。
gtag.js
gtag('set', 'linker', {
'domains': [
'example1.com',
'example2.com',
'subdomain1.example3.com',
'subdomain2.example3.com'
]
});
跟踪代码管理器
适用于 Google Ads 转化和 Floodlight 转化的转化链接器代码
- 选择“启用跨网域链接”
- 在“自动链接网域”字段中,输入以逗号分隔的网域列表。
Google Analytics(分析)4
通过 Google Analytics(分析)中的管理页面设置跨网域衡量。
Universal Analytics 代码
当您在自动链接网域字段(可在 Google Analytics(分析)设置变量或 Universal Analytics 代码中的更多设置 > 跨网域跟踪下找到)中添加相应值时,系统会自动设置 accept_incoming
。
url_position
某些内容应用会要求您使用片段/哈希字符 (#
) 作为网址字符串中的分隔符以指示查询参数,而不是更常用的问号字符 (?
)。若要将链接器参数配置为在网址中的 #
字符之后显示(例如 https://example.com#_gl=1~abcde5~
),请将 url_position
设置为 fragment
。
gtag.js
gtag('set', 'linker', {
'domains': ['example.com'],
'decorate_forms': true,
'url_position': 'fragment'
});
跟踪代码管理器
适用于 Google Ads 转化和 Floodlight 转化的转化链接器代码
如果需要告知跟踪代码管理器从片段 (#
) 而不是标准查询 (?
) 中读取唯一参数,请将网址位置设置为“片段”。否则,请保留此选项的默认设置“查询参数”。