您可以在 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 选择器中的对象(例如与 CSS 选择器div.foo
相符的 {{Element}})。 - 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,有多少百分比的所选元素必须在屏幕上可见。
实用工具
常量
将该值设置为您提供的字符串。当有多个代码使用同一账号时,系统通常使用常量字符串变量。另请参阅:Google Analytics(分析)设置。
自定义事件
该值设置为推送到数据层的自定义事件的名称。
环境名称
返回在预览模式下查看的环境的名称。
Google Analytics(分析)设置
在网页版和移动版 (Firebase) 容器中,Google Analytics(分析)设置变量用于在 Universal Analytics 代码内集中配置和共享跨多个代码使用的常见 Google Analytics(分析)设置。当您使用 Universal Analytics 创建 Google Analytics(分析)代码时,跟踪代码管理器会提示您选择或创建 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。