3.1.5 GTM中的重要概念
GTM中有很多字段对于您可能是很陌生的,不知道这个字段到底是什么意思,接下来,本书将逐个讲解每个字段的意义和作用。
代码:代码是控制向那里发送数据,一个代码至少有一个触发器结合使用。
触发器:触发器是控制什么情况下才执行,作为代码的条件,符合的时候代码才触发。
变量:变量存储一些值,主要用于代码和触发器中的设置。
数据层:数据层是一种对象,可以配置您希望通过GTM传递的一些信息。
1.代码(Tag)
代码指的是向第三方(比如 Google)发送信息的 JavaScript代码段。如果您不使用诸如 GTM这样的代码管理解决方案,则需要将这些 JavaScript 代码段直接添加到网站的源代码中。相反,凭借 GTM,您无需再在源代码中维系每个 JavaScript 代码段,您只需在GTM用户界面中指定您希望触发的代码,以及希望其触发的时间。
(1)部署类型
代码类型 | 模板部署 | GA、AdWords和DoubleClick等 |
自定义代码 | 自定义图片代码 | |
自定义HTML代码 | ||
函数调用代码(APP) |
GTM提供很多提供了强大的代码模板系统,以帮助简化跟踪代码的发布并消除错误。除了适用于 GA、AdWords 和 DoubleClick 等 Google 代码的模板之外,还提供了适用于不断增加的认证供应商的模板。要使用模板,请直接选择所需的模板并填入必要的详细信息,GTM会自动生成正确的代码,并使用您指定的触发器来触发这些代码。
下面看如何通过内置模板部署统一版GA跟踪代码:
1、GTM中单击“代码”→“新建”,可以看到如图3-10所示页面
图3-10 新建Tag
“未命名代码”这个地方是给这个代码命名,这里命名为“GA默认跟踪代码”
代码配置:选择对应的模板设置代码
触发条件:选择对应的触发器
2、单击“选择一个代码类型以开始设置”后可以看到有很多代码模块可以选择,如图3-11所示:
图3-11 代码模板选择
下拉还有很多模块,也可以用右侧的搜索功能去搜索您想要的部署模块。
3、这里要部署统一版跟踪代码,所以选择Universal Analytics,可以看到代码的“代码配置”已经跟之前的是不同的,如图3-12所示,有一些设置需要您填。
图3-12 统一版跟踪代码配置
由于是默认跟踪,所以这里的跟踪类型选择“网页浏览”,然后单击“在此代码中启用替代设置”,将GA的跟踪ID填入即可。
4、选择触发器All Pages,具体完整配置如图3-13所示:
图3-13 统一版跟踪代码完整配置示例
就这样通过内置模板配置完了统一版的跟踪代码,接下来只要单击右上角的“提交”就可以。
如果模板不支持您希望部署的代码,可以创建自定义图片代码或自定义 HTML 代码。利用自定义代码,可以通过 GTM部署几乎所有的代码。
下面来看看如何通过自定义模板部署百度统计跟踪代码:
1、在GTM中选择“代码”→“新建”→“选择一个代码类型以开始设置”→“自定义HTML”,再将百度统计跟踪代码复制进入,如图3-14所示,将这个代码命名为“百度跟踪代码”:
图3-14 自定义HTML部署百度统计
2、触发器选择All Pages,然后就可以“提交”。
(2)Universal Analytics配置详解
可以看到代码的使用是很简单的,但是看回用内置模板部署统一版GA跟踪代码示例中的第三步图3-13,可以看到里面有“选择设置变量”、“高级设置”等选项,这些是统一版跟踪代码做个性化的配置,比如跨站,跨域,电子商务,自定义维度,抽样等的设置都是通过这些设置去完成的,接下来详细讲解统一版里面的配置信息,如图3-15所示:
图3-15 Universal Analytics配置
这里将Universal Analytics的配置分为三个模块,分别是跟踪类型、GA(分析)设置和高级设置。
1)跟踪类型
跟踪类型就是指跟踪什么类型的数据,GTM中默认支持数据类型如表3-5所列:
表3-5 GTM跟踪类型
跟踪类型 | 解析 |
页面浏览 | 应该在网站的每个网页上触发的基本GA代码 |
事件 | 用于跟踪特定的操作或事件,如按钮单击 |
交易 | 用户跟踪电子商务交易 |
社交 | 用于跟踪社交互动 |
计时 | 用户跟踪网页的加载速度 |
装饰链接 | 跨网域跟踪 |
装饰表单 | 跨网域跟踪 |
前两个比较常用,我们常说的PV都是通过页面浏览这个类型跟踪的,事件就是一些特定的行为,如用户单击某个按钮。
2)Google Analtyics(分析)设置
Google Analtyics(分析)设置是“变量”中“实用工具”的一种,但是这个类型主要是在代码中使用,所以将这个拿到前面来,
Google Analtyics(分析)设置这个是2017年年中才推出的功能,这个是指的作用是将统一版跟踪代码里面的原有部分常用设置作为一个变量,在做统一版跟踪代码配置的时候直接引入就可以,在没有这个之前,统一版跟踪代码的设置页面是很长的,每个事件跟踪都是需要重复的配置一些基础信息,通过这个可以简化不少工作,也能够帮助您防止因为少配置信息而引起的数据误差问题。您可以给普通、跨站,电子商务分别设置一个Google分析设置变量,使用到的时候直接引入。这个变量称为Google分析设置变量。
您可以在“变量”中的“实用工具”去新建一个Google分析设置变量,也可以在统一版跟踪代码中单击“选择设置变量”中选择“新建变量”,打开后您会看到Google分析变量的设置界面如图3-16所示:
图3-16 Google分析设置变量设置界面
未命名变量:给Google分析设置变量命名
跟踪ID:就是GA的Tracking ID,“UA-”的结构,您可以直接填入,也可以通过常量引入。
Cookie网域:就是将Cookie设置在域名的哪个级别下面,一般设置为auto,会启用自动 Cookie 网域配置,它指是 analytics.js 自动确定要使用的最佳 Cookie 网域。也就是顶级域名了,这个设置的效果等同于GA跟踪代码了中 ga('create', 'UA-XXXXX-Y', 'auto');
3)更多设置
要设置的字段:是GTM代码模板的拓展选项,配置这些字段将是您更好的管理代码,传递值,实现高级,个性化的精准跟踪,下面列举一下常用的字段设置用法,如表3-6所列:
表3-6“要设置的字段”常用设置
字段 | 解析 |
allowLinker | 可选值是true或false,当选择true是表示开启跨站跟踪 |
CookieDomain | auto表示设置Cookie在最高级的域名,用于跨站的唯一性用户识别;none表示Cookie没有制定域名,这个与前面的“Cookie网域”作用是一样的 |
legacyHistoryImport | 可选值是true或false,当选择true表示允许analytics.js使用ga.js的Cookie数据 |
page | 页面路径,以'/'开头,通常设置虚拟页面的时候需要 |
sampleRate | 指定跟踪多大比例的用户,默认是100% |
siteSpeedSampleRate | 指定网站数据的计算时间时候的抽样比例,统一版默认10% |
title | 页面标题,通常设置虚拟页面的时候需要 |
userid | 用户跨站,跨浏览器的唯一性识别 |
forceSSL | 默认情况下,从HTTPS网页发送跟踪数据时使用HTTPS,从HTTP网页发送信标时使用HTTP。如果将forceSL设为“true”,将强制HTTP网页也使用HTTPS发送所有信标。Google分析搜索数据的服务器是HTTPS的,如果您的站点是HTTP的,这个需要开启,否则会有个307跳转 |
更多字段设置与方法可以访问谷歌分析官方去获取。
自定义维度:就是GA里面的自定义维度了,其中“索引”就是一个数字,对应GA中的自定义维度的“索引”,维度值就是传入的变量。
自定义指标:就是GA里面的自定义指标了,其中“索引”就是一个数字,对应GA中的自定义指标的“索引”,指标值就是传入的变量。可以看到,自定义维度和自定义指标在GTM中的实现都是通过传递变量的形式。
内容组:就是GA中的内容组,这个一般直接在GA设置。
广告:与其他产品的数据打通,提供GA里面的受众报告,一般开启。
电子商务:增强型电子商务的配置,里面比较复杂,不在这一版讲解,对于不开启增型电子商务模块的,这个地方不做设置。
跨网域跟踪:用于跨站设置的。
高级配置:用于个性化跟踪和多媒体资源跟踪,如数据向多个GA发送需要配置此处。
4)高级设置
高级设置可以使用代码触发选项控制代码触发优先级、触发方式和触发顺序。
触发优先级是指优先级更高的代码会先触发。如果未指定优先级,则默认为 0。代码仍会以异步形式触发,即:无论上一个代码是否完成,下一个代码都会正常触发。触发优先级中还可以控制代码的生效时段。
触发方式可以设置为“触发次数不受限制”、“每个事件触发一次”和“每次网页加载触发一次”;
触发顺序设置在“高级设置”→“代码触发顺序”中,可以控制代码在某些代码触发之前之后才触发,表示这个代码要在另一个代码之前之后触发才有可能触发此代码,这个是与触发优先级最大的区别。
(3)Google分析设置变量使用的三种类型
1、只用Google分析设置变量 2、不使用Google分析设置变量,直接设置“高级设置” 3、混合使用,适用Google分析设置变量,其中部分设置通过“高级设置”去覆盖
下面看看具体的设置过程:
1)如果要添加您的设置到代码,直接单击Google(分析)设置下拉后会有您已经创建的变量,您也可以在下拉菜单中直接创建新的变量,如图3-17所示:
图3-17 创建Google分析设置变量
正如您看到的,您仍然可以给这个代码配置“高级设置”,这个是因为高级设置是不会影响Google分析设置常量,GTM的所有代码都会包含高级设置的内容。
您仍需要给每个代码添加触发器,再次强调,触发器是跟代码不同的,Google分析设置变只是将Google常规设置信息看做是一个变量配置。
正如我前面介绍的,在统一版跟踪代码中有三种使用Google分析设置变量的方法,其中一种就是如上图,直接应用变量里的所有配置,这种方法也是最常用的。
2)第二种方法是完全忽略该变量,而是在每个代码中配置属于该代码的专属配置,这种方法的的做法需要注意两点:一是不选择Google分析设置变量;另一个是勾选,开启将这个代码的设置覆盖的选项,如图3-18所示:
图3-18 启用替代设置
如果您已经做了以上两个操作,下方会出现“更多设置”这个选项,那么您就可以独立的为每个代码做个性化的配置,在您做快速发布的时候这种做法仍然非常有用。
3)第三方法的做法是融合了前面两种做法,这种做法是既希望通过设置好的变量去简化工作,又希望在写个性化的设置,例如,我可能想用“GA Settings”这个设置用于事件跟踪,,所以我可以导入这个配置变量,但是我需要做一些调整,我可能需要用一个自定义的js变量DLV-ecommerce给增强型电子商务模块存储数据,而不是使用数据层,修改的方式如图3-19所示:
图3-19 覆盖的设置
如果您使用了Google分析设置变量,所有的设置都会是一样的,您可以将一些设置给覆盖掉,图3-19中标记部分就是覆盖的配置,这种方法更灵活。
2.触发器(Trigger)
触发器是指在运行时结果为“true”或“false”的条件,用于控制该代码在何时触发或不触发。代码必须至少有一个触发器才能触发。
(1)触发器的类型
大类 | 触发器 | 解析 |
网页浏览 | DOM已准备就绪 | 浏览器完成完整页面DOM的构建后 |
窗口已加载 | 页面完全加载后,包括图片和脚本等嵌入资源都已加载 | |
网页浏览 | 浏览器开始解析页面时 | |
单击 | 仅链接 | 仅监听用户对常规链接的单击 |
所有元素 | 仅监听用户对页面上所有HTML元素的单击 | |
其他 | JavaScript错误 | 用来在发生未捕获的JavaScript异常(使用window.onError)时触发代码 |
Youtube视频 | 用于跟踪内嵌YouTube视频的播放情况 | |
历史记录更改 | 如果网址片段(哈希)发生更改或网站使用HTML5 pushstate API,基于历史记录更改事件的触发器将会触发代码 | |
定时器 | 允许自定义的间隔向Google跟踪代码管理器发送事件 | |
自定义事件 | 定义一个事件名 | |
表单提交 | 在用户提交表单时触发代码 |
1)网页浏览
触发器中网页浏览类型有3种,分别是DOM已准备就绪、窗口已加载和页面浏览。这三个在网页打开的过程中是越来越靠后的,可以理解为:单击链接—DOM已准备就绪—窗口已经加载—页面浏览,其中比较常用的是页面浏览。
在配置GA默认跟踪代码时候选用的All Pages就是指所有的网页浏览了。
2)单击
原则上,只要有GA基础跟踪代码的页面的单击都是可以通过GTM跟踪到的。单击分为两种,一种是有链接的单击,这种表示单击后页面会跳转走;一种是所有元素单击,包含第一种的所有单击。
有链接的单击设置的时候有两个选项,如图3-20所示,一个是“等待代码触发完毕”,这个是表示事件触发成功后或一定时间超时后才跳转其他页面,确保事件被跟踪到;一个是“检查验证结果”,表示页面有效跳转的才触发时间,确保成功的跳转才跟踪。
图3-20 单击的配置
用户单击的时候,GTM会将单击最近的元素填充到以下变量,这也就是为什么在定位用户单击位置的时候需要查看页面的元素,需要注意,下面的这些变量要在触发器能够使用,还需要在变量中的内置变量中将其勾选,GTM默认是没有启用这些变量的:
变量 | 解析 |
Click Element | 用户单击的HTML元素 |
Click Clases | 元素类属性中的一系列值 |
Click ID | 用户单击的元素的ID属性 |
Click Target | 用户单击的元素的目标属性 |
Click URL | 用户单击的元素的HREF属性(如有) |
Click Text | 用户单击的元素内部的可见文本 |
例如,如果要对站点www.ichdata.com的头部“GA小站”做单击事件跟踪,那么通过页面查看元素可以知道Click Clases就是g-mono了(这里的Click Text是“GA小站”),如图3-21所示。
图3-21 审查页面元素
那么触发器的设置应该如图3-22所示:
图3-22 触发器设置
告诉您,上述的触发条件是不会生效的,因为在做单击事件的时候要有一个必须的规则,那就是需要限定单击事件触发的URL,如果是所有页面都可以触发这个事件,那么配置如图3-23所示:
图3-23 正确的触发器设置
如果只是在特定的页面上触发,那么Page URL就要严格限制为该页面。
通常来说触发条件有时候并不是只选取一个Click Classes或Click Text就能够触发的,如果触发器没有生效,这时候一般的原则是寻找该为位置的上一级元素做跟细致的定位,如Click ID这类唯一性比较强的。
3)其他
其他里面就自定义事件是最常用的,自定义事件就是手动定义的事件,通常发送事件形式会是dataLayer.push({'event': 事件名}),只要将事件名填入事件名称,这个触发器就设置完了,如图3-24所示。
图3-24 自定义事件
自定义事件的功能很强大的,可以配合数据层变量做嵌套定位。
4)Youtube触发器
Youtube视频触发器是2017年9月才增加一个新触发器,给您跟踪YouTube视频播放提供了丰富的支持,您需要再使用复杂的自定义js就可以跟踪很多的Youtube播放情况,如可以知道多少人播放视频,播放多长时间或播放进度,多少人完整看完,缓冲等情况。
在GTM中选择“触发器”→“新建”→“选择一个触发器类型以开始设置”→“Youtube视频”就可以打开YouTube触发器的设置界面,具体界面如图3-25所示:
图3-25 YouTube触发器设置界面
下面是可以配置的选项: 截图-开始:收集用户单击开始播放视频 截图-完成:收集用户播放视频到结束的 截图-暂停、跳转和缓冲:收集用户暂停视频、跳转和缓冲视频的操作。 截图-进度:收集视频的播放进度,可以是25%,50%和75%,或10秒,30秒,1分钟 高级-为所有视频添加 JavaScript API 支持:如果您的嵌入Youtube链接缺少必须的参数enablejsapi=1,那么开启这个功能将自动的给您的视频添加,需要注意的是,这个是通过加载iframe,所以用户可能在第一次加载的时候可能会感觉到闪速,配置这个的前提是页面需要加载这个库。
Youtube可以向数据层传递很多的事件,这些事件都已经在内置变量里面,需要使用到的时候,只需要单击勾选即可,具体的各个内置变量请看变量那一节的内容。
需要注意的是,使用YouTube视频触发器,您需要内嵌视频播放的页面加载Youtube的API,也就是<scrIPt src="">
(2)触发器的用法
触发器有两类用法,一种是在什么时候触发,一种是在什么时候不触发,也就是排除的。设置的位置在代码中,如图3-26所示:
图3-26 触发器的用法
上图中的“例外”就表示不触发的,这种用法主要是在页面浏览,如某些页面不触发。
3.变量(Variable)
变量是“名称-值”对,其中的值在运行时填充。例如,名为“URL”的预定义变量已定义为其值是当前网页的网址。
变量分为内置变量和用户自定义变量,内置变量是指一系列预先设定且不可自定义的特殊变量,要使用的时候,您需要将其勾选开启,不同容器类型的内置变量不同的;自定义变量是GTM提供一些变量的格式,根据根据自己的需要去创建。
(1)内置变量,
图标3-7所列:
表3-7 内置变量
分类 | 变量 | 解析 |
网页 | Page Hostname(网页主机名) | 提供当前网址的主机名部分,如www.ichdata.com就是主机名 |
Page Path(网页路径) | 提供当前网址的路径部分,如/google-analytics | |
Page URL(网页网址) | 提供当前网页的完整网址,如www.ichdata.com/google-analytics | |
Referrer(引荐来源网址) | 提供当前网页的完整引荐来源网址,表示从哪里来 | |
实用工具 | Container ID(容器ID) | 提供容器的公共ID。示例值:GTM-XKCD11 |
Container Version(容器版本) | 以字符串的形式提供容器的版本号 | |
Environment Name(环境名称) | 如果通过环境“共享预览”链接或通过环境代码段发出容器请求,则返回用户提供的当前环境名称。对于内置环境,将返回“已发布”、“最新”或“正在修改”。在包括非环境容器请求的其他所有情况下,会返回空字符串 | |
Event(事件) | 访问dataLayer中的“event”键,是当前dataLayer事件的名称(如gtm.js、gtm.dom、gtm.load或自定义事件名称) | |
HTML ID | 允许自定义HTML代码表明其已触发成功或失败;与代码触发顺序结合使用 | |
错误 | Error Mesage(错误消息) | 访问dataLayer中的“gtm.errorMesage”键,由JavaScript错误触发器设置。这是一个包含错误消息的字符串 |
Error URL(错误网址) | 访问dataLayer中的“gtm.errorURL”键,由JavaScript错误触发器设置。这是一个包含出现错误的网址的字符串 | |
Error Line(错误行) | 访问dataLayer中的“gtm.errorLine”键,由JavaScript错误触发器设置。这是一个出现错误的网址中的行号 | |
Debug Mode(调试模式) | 如果容器当前在预览模式下运行,将返回true | |
单击 | Click Element(单击元素) | 访问dataLayer中的“gtm.element”键,由“单击”触发器设置。这是对发生单击的DOM元素的引用 |
Click Clases(单击类) | 访问dataLayer中的“gtm.elementClases”键,由“单击”触发器设置。这是被单击的DOM元素的类属性的字符串值 | |
Click ID(单击ID) | 访问dataLayer中的“gtm.elementId”键,由“单击”触发器设置。这是被单击的DOM元素的ID属性的字符串值 | |
Click Target(单击目标) | 访问dataLayer中的“gtm.elementTarget”键,由“单击”触发器设置 | |
Click URL(单击网址) | 访问dataLayer中的“gtm.elementURL”键,由“单击”触发器设置 | |
Click Text(单击文字) | 访问dataLayer中的“gtm.elementText”键,由“单击”触发器设置 | |
表单 表单 | Form Clases(表单类) | 访问dataLayer中的“gtm.elementClases”键,由“表单”触发器设置。这是表单的类属性的字符串值 |
Form Element(表单元素) | 访问dataLayer中的“gtm.element”键,由“表单”触发器设置。这是对表单的DOM元素的引用 | |
Form ID(表单ID) | 访问dataLayer中“gtm.elementId”键,由“表单”触发器设置。这是表单的ID属性的字符串值 | |
Form Target(表单目标) | 访问dataLayer中的“gtm.elementTarget”键,由“表单”触发器设置 | |
Form Text(表单文字) | 访问dataLayer中的“gtm.elementText”键,由“表单”触发器设置 | |
Form URL(表单网址) | 访问dataLayer中的“gtm.elementURL”键,由“表单”触发器设置。 | |
历史记录 | History Source(历史记录来源) | 访问dataLayer中的“gtm.historyChangeSource”键,由“历史记录更改”触发器设置 |
New History Fragment(新历史记录片段) | 访问dataLayer中的“gtm.newURLFragment”键,由“历史记录更改”触发器设置。这是发生历史记录事件后相应网页网址的片段(即哈希)部分的字符串值 | |
New History State(新历史记录状态) | 访问dataLayer中的“gtm.newHistoryState”键,由“历史记录更改”触发器设置。这是网页推送到历史记录以触发历史记录事件的状态对象 | |
Old History Fragment(旧历史记录片段) | 访问dataLayer中的“gtm.oldURLFragment”键,由“历史记录更改”触发器设置。这是发生历史记录事件前相应网页网址的片段(即哈希)部分的字符串值 | |
Old History State(旧历史记录状态) | 访问dataLayer中的“gtm.oldHistoryState”键,由“历史记录更改”触发器设置。这是发生历史记录事件前处于活动状态的状态对象 | |
视频 | Video Provider(视频提供商) | 'Youtube'定义跟踪哪个视频平台,类似的您可以跟踪其他平台,前提是该平台支持这个视频触发器 |
Video Status(视频状态) | 定义触发事件的视频状态,可以是'start', 'complete', 'pause', 'buffering',和'progres' | |
Video URL(视屏网址) | ||
Video Title(视频标题) | 内嵌视频的名字 | |
Video Duration(视频时长) | 视频长度,按秒算 | |
Video Current Time(视频当前播放时长) | 标记事件触发的时间 | |
Video Percent(视频百分比) | 标记事件触发的播放比例 | |
Video Visible(视频可见性) | 设置为true或false,视频事件发生是在浏览器是否可见 |
内置变量中使用比较多的是网页和单击这两个模块的变量,其中单击就是前面触发器里面讲到的用户单击的时候GTM会自动填充的变量,这两类变量在部署GTM的时候将其全部勾选开启。
其他的内置变量就比较少用了,根据个人需求去开启。
(2)用户定义变量
GTM中用户自定义变量提供了5中大类19个变量类型,5大类分别是导航、网页变量、DOM变量、实用工具和容器数据,其中常用的是网页变量和使用工具,如表3-8所列:
表3-8 用户定义变量
分类 | 变量 | 解析 |
导航 | HTTP引荐来源网址 | 该值设置为HTTP引荐来源网址,即用户访问的前一个网页 |
网址 | 可以利用此类型的变量解析网址的组成部分并加以公开显示,利用此原理可以实现类似UTM的功能 | |
网页变量 | JavaScript变量 | 该值设置为指定的全局变量 |
数据层变量 | 接受收数据层中的变量 | |
第一方Cookie | 该值设置为名称与用户当前所在网域匹配的第一方Cookie | |
自定义JavaScript | 该值设置为JavaScript函数的结果JavaScript的形式必须是可返回值的匿名函数 | |
页面元素 | DOM元素 | 该值设置为文档对象模型(DOM)元素的文本或指定的DOM元素属性的值 |
自动事件变量 | 页面加载时,GTM自动填充的一些元素,使用的时候需要配置 | |
实用工具 | GA(分析)设置 | Google分析设置常量,参考代码中部分内容 |
对照表 | 该值根据对照表中的说明进行设置,批量做事件跟踪时使用 | |
常量 | 值设置为您提供的字符串。因为此字符串永远不变 | |
环境名称 | 容器的类型,如Live | |
自定义事件 | 手动设置的事件 | |
随机数字 | 该值设置为介于0到2147483647之间的一个随机数字 | |
容器数据 | 容器ID | 该值为该容器的公共ID(如GTM-ABC42) |
容器版本号 | 容器处于预览模式时,容器版本变量会返回容器的预览版本号。在其他情况下,此变量将返回容器的实际版本号 | |
调试模式 | 如果在调试模式下查看容器,该值设置为true |
下面介绍一些用户自定义变量中一些比较常用的用法:
1)JavaScript变量
这个的作用是将页面中的全局变量读取进GTM,如在页面上有这样一段代码:
<scrIPt>
UserID=“haran.huang@gmail.com”;
</scrIPt>
那么就可以通过JavaScript变量将UserID读进GTM里面,在GTM中选择“变量”→“用户定义变量”→“JavaScript变量”,具体设置如图3-27所示:
图3-27JavaScript变量
2)数据层变量
这个是用于接收数据层变量的,例如数据层的格式是:
dataLayer.push({'event': 'Page','data1': 'a', 'data2': 'b'})
里面的data1和data2就是数据层变量了,对应的值分别是a和b,要接收a和b就需要用到数据层变量,在GTM中选择“变量”→“用户定义变量”→“数据层变量”,具体设置如图3-28所示:
图3-28 数据层变量
现在默认使用的数据层版本都是版本2的,data2的同理可以设置。
3)第一方 Cookie
这个的作用是将主域下面的Cookie抓取到GTM里面,如www.ichdata.com的主域下Cookie有个IPnum,是存储访客IP的,如图3-29所示:
图3-29 Cookie
在GTM中选择“变量”→“用户定义变量”→“第一方Cookie”,具体设置如图3-30所示:
图3-30 第一方Cookie
4)常量
常量就是将一个固定的值用变量存储,后续在触发器和代码中直接使用这个变量,如果要修改直接修改该变量的值就可以了,通常的用户是用常量存储跟踪ID,如我的GA的跟踪ID是UA-69988360-1,那么配置如下图3-31所示:
图3-31 常量
这个就是前面部署基础跟踪代码的时候,能够用一个变量替代跟踪ID的原因,需要提前用一个常量去存储跟踪ID。
4.数据层
(1)什么是数据层
数据层简单的说就是用于存储或发送信息给GTM的一个js数组。
定义一个空数据层:
代码清单3-1
<scrIPt>
dataLayer = [];
</scrIPt>
定义一个包含变量的数据层:
代码清单3-2
<scrIPt>
dataLayer = [{
‘event’: ‘click’,
‘positon’: ‘high-Banner’
}];
</scrIPt>
如果要更好的理解数据层这概念,您需要明白js的数据和对象。数据层也常常被称为数据序列,数据对象和数据采集层。
(2)为什么需要用数据层?
在GTM的文档中,数据层是用来收集网站数据的。GTM可以直接在页面的html中通过js遍历html dom提取数据,如图3-32所示:
图3-32 数据收集
默认情况下,GTM是通过页面的html提取数据,再把它推送到营销或分析的代码中,现在这种方法的问题是:HTML(HTML DOM)可能在您不知情的情况下在任何时间改变,网站也可以在任何时间更新,代码可能在没有事前通知的情况下停止工作。 若要解决这个问题,我们创建和使用数据层,存储我们想要收集关于 Web 页面的所有信息。一旦您设置了一个数据层,容器代码从其 HTML 页面的数据层提取数据 所以无论HTML DOM发生什么事,数据层将保持不变,您的代码将继续工作 (除非当然有人破坏数据层本身),能够确保数据准确传输。
数据层更多的是应用在增强型电子商务的里面。
(3)什么是数据层变量
数据层中的变量格式是:“key:value”,以下是示例数据层,其中包含三个变量︰
代码清单3-3
<scrIPt>
dataLayer = [{
‘page’: ‘Statistics’,
‘visitor’: ‘high-value’,
’event’:’customizeCart’
}];
</scrIPt>pt>
上面的Page, visitor和 event 就是数据层变量,Statisitcs, High Value和 customizeCart分别是它们的值。数据层变量就是数据层中的key。
Last updated