Data Elements、数据元素,是key-value结构,用于收集、组织和传递数据,被规则和插件引用,跟GTM中的变量是一样的作用。Launch中的数据元素内置有10种类型。
数据元素设置
数据元素的设置界面如下:
各设置字段的解析和用法如下:
字段 | 解析 |
Name | 自定义数据元素名字,必填。 |
Extension | 基于哪个插件的,默认选Core,这个是基础通用的。 |
Data Element Type | 数据元素的类型,默认的Core有10种。 |
Default Value | 默认值的,这个可以用于测试,看是否数据正确传递。 |
Force lowercase value | 强制转为小写格式。 |
Clean Text | 使用此选项可以标准化元素值以便于匹配。“清洁文本”选项从开头和结尾删除任何空格,并用单个空格替换中间的任何成功空格。就是自动去除多余空格的功能,建议勾选。 |
Storage Duration | 就是保存期,有四种None、Page view、Session和Visitor,需要根据数据变量的生命周期选择不同的类型,一般直接选择None就可以,不要去修改它。 o None:就是这个数据元素不存储。 o Page view:这个数据变量跟着页面流量,用户访问不同的页面,每次都会更新,可能会不同,比如Title、UTL、Path这些。 o Session:表示这个数据变量存在于浏览器的Session中,整个访问过程都可用,直到关闭页面。 一般是流量类的。 o Visitor:表示这个数据变量跟Visitor绑定,一般是用户属性的数据,存储在local Storage。 |
右侧的主区域,设置具体的值。
上述设置中保存期是一个重点和难点,保存期的设置遵循这个数据变量的周期是多长时间和变化的频率,如每次都会变化的,页面一变化就变,那就是Page View,如果永远不变的,固定的,如用户属性的数据,那就是Visitor,跟流量渠道相关的,如广告信息,那就是Session。
设置好后点击SAVE即可,然后就可以在规则和插件中直接引用。
创建数据元素
接着上一步,对其做如下设置:
这个设置是创建一个固定值为99,默认值为0,名为Fix Value的常量数据元素。
数据元素的引用
数据元素的作用就是被规则和插件引用,只要你在规则和插件的设置过程中看到有个像数据库的图标,这个就是可以引用数据变量的:
点击它就会弹出一个数据元素选择框:
点击它就是选择,选择后的效果如下:
数据元素的两边是百分号,结构如%Data Elements%,也可以直接手动输入。
数据元素的调试
设置好数据元素后,有时候需要调试看获取的值是否准确,调试的原理是将设置包的库打包发布到Staging环境,然后在浏览器开发者工具的控制台通过命名_satellite.getVar检查。
发布到Staging环境中
点击右上的Select a working library快速创建一个库,命名为Fix Value Test,环境选择Development(development),然后点击底部的Add Changed Resources:
点击右上角的Save& Build for Development生成库,生成后就可以在发布流程中看到:
然后在开发环境中生成库,点击右侧的三个点会弹出一个框,选择Build for Development:
然后在开发环境中的库提交到测试环境中,点击右侧的三个点会弹出一个框,选择Submit for Approve:
发布到测试环境中,可以看到在Submitted中看到如下:
这时候的Environment还是None,需要编译到测试环境中去,点击右侧的三个点会弹出一个框,选择Build for Staging:
看到Environment是Staging表示测试环境已经编译准备好了。
然后就可以去测试了。
具体的发布流程看后面的发布管理章节。
Launch Switch切换到Staging
在Chrome中打开http://www.ichdata.com,然后打开Launch Switch插件,这是免费的Chrome插件,使用前先需要在Chrome的插件市场安装这个插件。将环境选择为Staging:
刷新一下页面后模拟相关的操作,如果页面浏览的就直接刷新即可,如果是特定行为的,那么需要模拟特定行为后,数据元素才能准确获取响应的值。。
更多关于Launch Switch的内容请看常用工具和插件那一章。
控制台调试
浏览器中打开浏览器开发者工具在控制台输入__satellite.getVar(“Fix Value”),所有的数据元素都可以通过这种方式获取:
可以看到输出的数值就是设置的99,选用注意,这里的99是数值型,它的格式类型有些特别,具体原因请看Constant里的详细介绍。
数据元素管理
点击左侧到导航栏的数据元素进入数据元素管理页面,如图所示:
从上图可以看到有两个搜索功能,中间的那个是全局搜索,可以搜索这个容器的规则、数据元素和插件,而左上角的搜索只能搜索数据元素,右侧的Select a working library就是快速创建一个库。
下面的数据元素列表,显示有数据元素的NAME(名字),DURATION(期间),LAST MODIFIED(最后修改日期)和STATUS(状态)。
勾选对应规则前面方框就可以对该数据元素做调整:
就会出现一些操作选项:Enable(开启)、Disable(关闭)、Copy(复制)和Delete(删除),作用就是字面的意思。
需要注意:删除数据元素跟删除规则一样,先需要将数据元素关闭后发布新版本才可以删除,已经发布出去正在使用的数据元素是删除不了的。
如果要对数据元素的设置做修改,直接点击想要修改的数据元素即可。
常用数据元素
为了方便使用,不同的插件都内置有一定数量的数据元素,直接使用系统内置的变量能降低你使用数据元素的错误,其中最常用的是Core插件,这个是所有都共用的,Core插件有以下10个数据元素,下面来逐个讲解这些的作用。
Constant
Constant,常量,常量数据元素,需要设置一个固定值的时候会用它,一般是你当要设置广告账户ID或配置参数的时候会用常量,如用Adobe Launch布署Google Analytics的时候要用到Tracking ID ,Tracking ID就可以通过Constant去存储,而且我也推荐大家这么做。
需要注意,如果你在设置常量的时候,直接设置为一个数字,它既不是字符串,也不是数值,如果你需要一个数值常量,那么需要用一个自定义js存储数值,然后在引入到Constant,这时候的常量就是数值。
Cookie
Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。
Cookie分为第一方Cookie和第三方Cookie,第一方Cookie就是自己主域名下的Cookie,第三方Cookie是其他第三方域名,第三方Cookie通常用于广告跟踪,但只有第一方Cookie能被Launch读入。
我们可以将第一方Cookie里面的一些信息传入到Launch面去,比如将Adobe Experience Cloud ID传递到Launch里面去,我们先在Cookie里面找到Adobe Experience Cloud ID:
可以看到Domain中是ichdata.com的Cookie就是第一方Cookie,其他的就是第三方Cookie,我们找到AMCV_开头的这个就是Adobe Experience Cloud ID,然后复制NAME里面的名字,就是这个Cookie的名字。
在Data Element中创建一个Data Element Type为Cookie 的数据变量,将Cookie的名字复制到Cookie Name,其他的设置如下图:
这样就将Adobe Experience Cloud ID 传递到Launch里面了,数据元素名为Cookie Experience ID,后面就可以在Rules或Extensions中引用。
Custom Code
Custom Code,就是自定义代码,Data Element里的自定义代码支持JavaScript,每个自定义代码返回一个值,代码输入界面跟其他的输入界面一样,都会高亮提示错误。
跟GTM不同的是,你不需要将包封装在函数内部,但不支持$(this)方法。
运用Custom Code对字段做判断处理,如截断,分类。
代码部署如:
这里的示例是生成网站区域,通过页面的URL去判断的,同理还可以生成页面层级的。
Dom Attribute
DOM Attribute的作用是从DOM中获取一些值,我们先来看一个例子,如下代码,现在的需求是需要获取id中的writer,该怎么操作呢?
<a id=”writer” href=”/About-me.html”>关于作者</a>
我们可以通过CSS选择器去定位,如 div > a 或.classy a 定位锚点,告诉Launch找到这个位置,下一步就是告诉Launch去抓取什么的值,这里直接选择id,这个DOM Attribute就会返回writer,具体的设置界面如下:
- Name:就是自定义这个数据变量的名字。
- Extensions:默认选择Core。
- Data Element Type:选择DOM Attribute。
- From the DOM element matching the CSS Selector:CSS选择器,这个可以通过直接通过浏览器复制得到:将鼠标移动到需要跟踪的位置,然后点击右键审查,将光标定位到需要跟踪的位置,然后点击右键就会看到有CSS选择的,直接复制即可,不需要自己去找。
- Use the value of:就是要获取什么属性的值,这里有id、href、class、src、alt、HTML、text、name、value、type、other attribute.
简单理解,Attribute就是dom节点自带的属性,例如html中常用的id、class、title、align等,这个在作为事件定位的时候必须用到的,使用方法就是在需要跟踪的位置点击右键查看选择CSS复制即可。
JavaScript Variable
Js变量就是全局变量了,在页面用一个变量去存储,然后就可以通过这个数据元素去获取,跟GA是一直的,比如页面代码如:
<script> var userid=“haran.huang@ichdata.com”; </script>
这时候在在Data Element做如下配置:
但JavaScript Variable对Launch或Adobe有另一层特殊的意义,它同时也是数据层变量,Launch的数据层本质就是js全局变量,这跟GTM中的数据层是完全不同的。
使用数据层的时候需要注意,数据层要在launch跟踪代码的前面,以便跟踪代码一加载的时候能获去相关的值。
Local Storage
Local Storage,局部存储器。它是html5新增的一个本地存储API,所谓local Storage就是一个小仓库的意思,它有5M的大小空间,存储在浏览器中,我们可以通过js来操纵local Storage。解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k)
Local Storage的优势
- local Storage拓展了cookie的4K限制
- local Storage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的
local Storage的局限
- 浏览器的大小不统一,并且在IE8以上的IE版本才支持local Storage这个属性
- 目前所有的浏览器中都会把local Storage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换
- local Storage在浏览器的隐私模式下面是不可读取的
- local Storage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡
- local Storage不能被爬虫抓取到
Local Storage在Cookie的上面,如下图:
这里就是Local Storage,里面的所有的key都可以获取传递进去Launch。
Key下面所有的信息都是Local Storage的,假设现在需要将_tab_ids传递到launch该如何设置呢? 在Launch中新建一个Local Storage的Data Elements,然后将_tab_ids填到即可。
Page Info
主要是页面信息相关的量度
对于网址https://www.ichdata.com/index.html?utm_source=Admin&utm_medium=Admin&utm_campaign=Admin
- URL:网址的,这里就是https://www.ichdata.com/index.html
- Hostname:主机名,就是网站的域名,这里就是www.ichdata.com
- Pathname:路径,页面在服务器的路径,这就是/index.html?
- Protocol:新协议,这里就是https。
- Referral:引荐来源,就是上一级的网站来源的,比如通过百度搜索过来的,referral就是www.baidu.com。
- Title:标题,就是网站的标题了。
Query String Parament
如网址https://www.ichdata.com/index.html?utm_source=Admin&utm_medium=Admin&utm_campaign=Admin,这里的utm_source,utm_medium,utm_campaign就是查询参数看,一般是问好后面的A=***,A就是查询字符参数,能够将这个参数的值转成一个data element,然后在其他地方使用,如:
这个维度一般放广告维度的参数。
上面的示例的写法是Google Analytics的UTM写法,实际上Adobe的写法不是这样的,Adobe的写法一般是用cid,所有的广告渠道的数据都放到cid,后面可以自定义js去拆分它。
另一个需要注意的是:查询字符串参数类似就是截取,所以特殊字符最好不要用到URL上,如?、&或=,避免参数丢失。
Random Number
生成一个随时数量,在AB测试时候可能会用到
Session Storage
Session Storage 是HTML5新增的一个会话存储对象,用于临时保存同一窗口(或标签页)的数据,Session Storage 与 local Storage 的接口类似,但保存数据的生命周期与 local Storage 不同,在关闭窗口或标签页之后将会删除这些数据。
Session Storage在浏览器的这个地方,其实就在cookie的上面,跟查看cookie的方法是一样的。
Key下面的字段就是存放在Session Storage的,关闭页面的时候就自动会清空了。
假设要将com.adobe.reactor.core.visitorTracking.pagesViewed传递到Launch里面改如何设置呢?
这个字段的意思是这个会话的PV是多少,就是看了多个页面。
在Launch里面新建一个Data Element,然后选择Session Storage,然后将com.adobe.reactor.core.visitorTracking.pagesViewed复制到Session Storage Item Name即可,具体的配置如:
然后点击SAVE保存即可。
Local Storage,Session Storage,Cookie的不同在于:
- localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。
- sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存,不参与和服务器的通信。源生接口可以接受,亦可再次封装来对Object和Array有更好的支持。
- Cookie的生命期为只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。 存放数据大小为4K左右 。有个数限制(各浏览器不同),一般不能超过20个。与服务器端通信:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题。
Visitor Behavior
访客行为,主要是跟常用访客相关的变量,如着陆页、流量来源、总会话数……直接使用系统内置的变量能降低你使用数据元素的错误,访客行为有以下变量:
- Lading Page,就是着陆页了
- Traffic Source:流量来源
- Minutes on Site:在网站的时间
- Session Count:会话数
- Session Page View Count:总的会话数
- Lifetime Page View Count:总的页面访问数,
- is New Visitor:是否新访客
可以从上图知道,这些data element有些就是Local Storage或Session Storage。