您可以在 Google 跟踪代码管理器中创建用户定义的自定义网页变量,以满足可能不在内置变量涵盖范围内的特定要求。
要新建用户定义的变量,请执行以下操作:
- 在左侧导航栏中,点击变量。
- 在“用户定义的变量”部分中,点击新建。
- 点击变量配置,然后选择所需的变量类型。
- 为所选变量类型输入配置选项。
- 为该变量命名。命名方案应当能够体现变量的作用,例如“数据层变量 - 产品名称”。
- 点击保存。
跟踪代码管理器支持下列由用户定义的网页变量类型:
导航
HTTP 引荐来源网址
其值设置为 HTTP 引荐来源网址,即用户访问的前一个网页的网址。例如,如果用户从您的首页前往某个产品页,则引荐来源网址即为首页。跟踪代码管理器会自动创建一个此类型变量的实例;不过,如果您想公开引荐来源网址的不同部分,可以再创建一些实例。
网址
您可以使用这种类型的变量来解析和公开网址的组成部分。您还可创建更多实例来公开网址的不同部分,可供选择的网址组成部分包括完整网址、协议、主机名、端口、路径、文件扩展名、查询和片段。针对此类变量设置的输入值是用户当前所在页面的网址(可从 document.location 获取)。您可以调整网址来源来要求跟踪代码管理器使用另一个变量作为网址值的来源。
网页变量
第一方 Cookie
此值设置为名称为用户当前所在网域的第一方 Cookie 的值。如果在同一网域中部署了多个具有相同名称的 Cookie,系统会选择第一个值。该值与您从网页中调用 document.cookie 后选取的第一个结果相同。
自定义 JavaScript
该值设置为 JavaScript 函数的结果。JavaScript 的形式必须是可返回值的匿名函数。例如,可以创建一个自定义 JavaScript 变量,用于将预定义 {{url}} 变量的所有实例转换为小写形式:
function () {
return {{url}}.toLowerCase();
}
数据层
该值是在通过以下 dataLayer.push() 调用将数据推送到数据层时设置的:
dataLayer.push({"Data Layer Name": "value"})。
您可以指定跟踪代码管理器如何解读键名中的句点(“.”):
- 方式 1:允许在键名中使用句点。例如,对于
dataLayer.push("a.b.c": "value"),将键的名称解读为“a.b.c”(即{"a.b.c": "value"})。 - 方式 2:将句点解读为嵌套值。例如,将
dataLayer.push({"a.b.c": "value"})解读为三个嵌套层:{a: {b: {c: "value"}}}。
JavaScript 变量
将该值设置为您指定的全局 JavaScript 变量。如果所需的值未在数据层中设置(请参阅数据层变量),而且在 DOM 中不可见(另请参阅:DOM 元素变量),则或许可通过 JavaScript 变量获取该值。如果您可以在网页的源代码中找到用作全局 JavaScript 变量的值,请使用此变量类型。
页面元素
自动事件变量
捕获有关触发事件(例如,点击、表单提交、元素可见性等)的项目的信息
- Element(元素):返回元素对象。对于自定义 JavaScript,可将其视为一个对象(例如
{{Element}}.title);也可以在 CSS 选择器中使用(例如 {{Element}} 匹配 CSS 选择器div.foo)。 - Element Type(元素类型):返回
element.tagName的值(例如“A”“BUTTON”“IMG”)。 - Element Attribute(元素属性):指定属性名称,此选项将返回该属性的值。
- Element Classes(元素类):返回元素
class属性中的一系列类。 - Element ID(元素 ID):返回
id属性的值。 - Element Target(元素目标):返回
target属性的值(例如“_blank”)。 - Element Text(元素文本):返回元素的文本内容的值。
- Element URL(元素网址):返回从
href或action属性收集的元素的网址。 - History New URL Fragment(历史记录新网址片段):返回浏览器历史记录中的新网址片段(例如“#summary”)。
- History Old URL Fragment(历史记录旧网址片段):返回浏览器历史记录中的旧网址片段(例如“#intro”)。
- History New State(历史记录新状态):新的历史记录状态对象,由网站对
pushState的调用控制。 - History Old State(历史记录旧状态):旧的历史记录状态对象,由网站对
pushState的调用控制。 - History Change Source(历史记录更改来源):返回导致历史记录发生更改的事件(例如“pushState”“replaceState”等)。
DOM 元素
该值设置为文档对象模型 (DOM) 元素的文本或指定的 DOM 元素属性的值。如果所需值未在数据层(请参阅数据层变量)中设置,则可能是因为这个值可以从 DOM 获取。如果您可以在 DOM 中找到该值,请使用此变量类型。
如果已设置可选属性名称,则该变量的值将从该属性返回指定的值(如 data-food="cupcake");否则,该值将是 DOM 元素中的文本。
元素可见性
该值需根据指定 DOM 元素的可见状态设置。与“元素可见性”触发器不同的是,单个“元素可见性”变量只能报告单个元素的可见性。您可以选择是根据元素 ID 还是 CSS 选择器来选择元素。如果特定 CSS 选择器匹配多个元素,则系统将使用第一个匹配的元素。
您可以为此变量选择输出类型:
- True/False:这是一个布尔值,表示在引用该变量时所选的元素是否可见。
- 百分比:这是一个介于 0 到 100 之间的百分比值;表示在引用该变量时所选的元素有多大比例在屏幕上可见。
如果选择 True/False 作为输出类型,您还可以指定最低可见百分比,以表明为使该变量返回 true,所选的元素必须有多大比例在屏幕上可见。
实用程序
Analytics 存储空间
“Analytics 存储空间”变量类型是一种自定义变量选项,可用于以可靠的方式访问重要的 Google Analytics 标识符。
创建自定义 Analytics 存储空间变量时,您可以选择以下数据字段:
- 客户端 ID:假名用户或设备的唯一标识符。
- 会话 ID:用户会话的唯一标识符。
- 会话编号:用户的当前会话的编号。
该变量还包含“更多设置”部分,其中根据所选的数据字段提供了可选的配置:
| 数据字段 | 衡量 ID | Cookie 前缀 | 说明 |
| 客户 ID | 不适用 | 可选 | 允许按特定 Cookie 前缀进行过滤(如果需要)。 |
| 会话 ID | 可选 | 可选 | 如果提供了衡量 ID,Google 跟踪代码管理器将返回与该衡量 ID 对应的单个会话 ID。如果未提供衡量 ID,则返回一个复合字符串,其中包含所有相关的 Google Analytics 会话 Cookie 中的 ID。 |
| 会话编号 | 可选 | 可选 | 如果提供了衡量 ID,Google 跟踪代码管理器将返回与该衡量 ID 对应的单个会话编号。如果未提供衡量 ID,则返回一个复合字符串,其中包含所有相关的 Google Analytics 会话 Cookie 中的编号。 |
通过将读取和解析各种 Google Analytics Cookie 的复杂过程抽象化,Google Analytics 存储空间变量可确保获得的标识符稳健可靠,并且可用于 Measurement Protocol 等环境。
常量
该值设置为您提供的字符串。当有多个代码使用同一账号时,系统通常使用常量字符串变量。另请参阅:Google Analytics 设置。
自定义事件
该值设置为推送到数据层的自定义事件的名称。
环境名称
返回在预览模式下查看的环境的名称。
Google 代码:配置设置
通过此变量,您可以在 Google 代码加载时指定配置级参数。
举例来说,假设您用多种语言发布了您的网站,并且希望根据受众群体所用语言对受众群体进行细分。这种情况下就可以创建一个带language 参数的配置变量,然后在所有 Google 代码中使用该变量,而不必手动更新每个代码。
Google 代码:事件设置
通过此变量,您可以设置事件级参数,以便随 GA4 事件发送更多数据。
例如,假设您拥有一家网店,正在开展促销活动。现在,您想要跟踪有多少用户使用您提供的折扣代码。这种情况下,您就可以利用 Google 代码:事件设置变量来重复使用 discount 参数,而无需手动为每个代码添加该参数。
对照表
该值根据对照表中的说明进行设置。对照表包含两列(下表中不包含任何数据,数据的使用方法在下文中介绍):
| 如果 [选定变量] 等于 | 将 [此变量] 设置为 |
|---|---|
通过对照表,您可以创建一个值随另一个变量的值而变化的变量。如果您的网站的设置方式是使相应的值(例如,转化 ID)能够映射到网址、DOM 元素或网页的其他部分,那么这就非常有帮助。在此示例中,系统会创建一个名为“Conversion ID”的变量。如果网址包含“/thanks/buy1.html”,则将该值设置为“12345”;如果网址包含“thanks/buy2.html”,则将该值设置为“34567”。
| 如果 {{url}} 包含 | 将 {{Conversion ID}} 设置为 |
|---|---|
| /thanks/buy1.html | 12345 |
| /thanks/buy2.html | 34567 |
| /thanks/buy3.html | 56789 |
随机数字
该值设置为介于 0 到 2147483647 之间的一个随机数字。
正则表达式表格
正则表达式表格变量类似于对照表变量,除对照表的功能外,它还可以针对您希望匹配的项运行正则表达式模式。
对于下面的正则表达式表格配置:
| 模式 | 输出 |
|---|---|
.*/page[1-3]\.html.* |
foo |
.*/page[4-6]\.html.* |
bar |
.*/page[7-9]\.html.* |
baz |
变量的输出值将如下所示:
| 匹配的结果 | 值 |
|---|---|
| http://example.com/page1.html | foo |
| http://www.example.com/page1.html | foo |
| http://example.com/page2.html#detail | foo |
| http://example.com/page5.html | bar |
| http://example.com/page5.html?status=new | bar |
| http://example.com/page6.html | bar |
| https://example.com/page9.html | baz |
正则表达式表格对照操作按从上到下的顺序针对列表运行。找到匹配项时,系统会返回相应的输出值。
选择设置默认值可设置未找到匹配项时的输出值。
默认情况下,模式必须与整个输入字符串匹配,并且不区分大小写。可根据需要在高级设置中调整这一行为:
-
忽略大小写:模式会与大小写匹配项匹配,而无需将此显式编写到正则表达式中。
-
仅限完全匹配的行为:如果启用此选项,模式必须与整个输入内容匹配。其效果与开头和结尾隐含起始符 (
^) 和终止符 ($) 相同。如果停用此选项,则在输入内容的任何部分找到模式时都算匹配成功。 -
捕获组和替换功能:启用此选项后,您可以使用美元符号替换语法在输出中包含部分输入内容(例如来自匹配的模式中捕获组的内容)。例如,如果匹配的正则表达式为
/(news)/page(2)\.html,您可以使用$1引用第一个捕获组 ("news"),使用$2引用第二个捕获组 ("2")。
用户提供的数据
收集联系表单信息,例如邮箱、电话号码、姓名和地址。请使用以下任一模式来指定要捕获的信息:
- 自动配置:自动检测您网站上的表单字段和新条目。
- 手动配置:让您可以将现有的跟踪代码管理器变量映射到用户提供的数据字段(例如邮箱、电话号码、姓名和地址)。
- 代码:让您可以指定返回用户提供的结构化数据对象的数据层变量或自定义 JavaScript 变量。
容器数据
容器 ID
返回跟踪代码管理器容器的 ID(例如“GTM-101010”)。
容器版本号
当容器处于预览模式时,容器版本变量会返回容器的预览版本号。在其他情况下,此变量将返回容器的实际版本号。
调试模式
如果容器处于预览和调试模式,该值将设置为 true,否则设置为 false。