在网站分析工具的代码部署过程中,总需要考虑不同情况下的业务和技术需求。本篇介绍特殊情况下的代码部署,包括针对不支持JS用户的信息跟踪、多账号跟踪设置、跟踪线下交易数据、SSL下的信息采集、禁用预渲染跟踪、自定义参数发送顺序、页面JS加载的安全措施。
1. 针对不支持JS用户的信息跟踪
虽然大多数情况下用户的浏览器都会启用JS跟踪功能,但由于很多原因针对不启用JS的用户,我们也想做数据跟踪。Webtrekk提供了一个1×1硬图片的跟踪方式,代码如下:
- <img src=“http://track.wt-eu02.net/111111111111111/wt?p=325,0“ height=”1“
- width=”1“ alt=”“>
整段代码只需放置在上篇文章提到的标准跟踪代码之下即可。其中的参数意义如下:
- track.wt-eu02.net:Webtrekk分配的trackDomain
- 111111111111111:Webtrekk分配的trackId
- p=325:Pixel的版本,根据具体实施的脚本填写
- 0:ContentId,0表示留空,根据系统规则填写
上面参数为必填参数,是系统在收集信息阶段根据账号需要必须进行采集的信息。而有些信息是可选的参数,如:
- <img
- src=“http://track.wt-eu02.net/111111111111111/wt?p=325,de.startseite,1,1280x
- 1024,32,1,
- 1208964116364,0,1234×784,1&la=&ov=&cr=&oi=&ba=&co=&a
- mp;
- qn=&ca=&st=&cd=&is=&mca=&mc=&mcd=&lp=&
- cp1=&cs1=&ck1=&cb1=&cg1=” height=“1″ width=“1″ alt=“”>
Webtrekk这些可选参数能帮助我们进行几乎所有支持js端的数据采集项目,具体会在之后的文章中详细介绍。
2. 多账号跟踪设置
通常大公司由于体系划分的原因,可能需要把数据在底层采集时即进行分账号(区分Profile,当然Webtrekk也支持一个账号内按照内容区分用户权限,这在其他工具中很难实现) ,此次在底层跟踪时同一段信息需要发送到2个甚至更多的账号中,在Script和NoScript代码中,在TrackId部分只需要将不同的ID以逗号进行分隔填入即可。。
如果两个账号中发送的信息一致,可以采用以下配置代码:
- <script> code:
- wt.trackId=”111111111111111,222222222222222”;
- <noscript> code:
- <img src=“http://track.wt-eu02.net/111111111111111,222222222222222/wt?p=325,
- homepage” …>
如果两个账号中发送的信息不一致,则采用以下配置代码:
- „<script>“ segment:
- var wt1 = new webtrekkV3(); // Generates the first instance
- wt1.trackId=”111111111111111”; // Sets the TrackID for the first instance
- wt1.sendinfo(); // Sends the tracking request for the first instance
- var wt2 = new webtrekkV3(); // Generates the second instance
- wt2.trackId=”222222222222222”; // Sets the TrackID for the second instance
- wt2.sendinfo(); // Sends the tracking request for the second instance
- „<noscript>“ segment:
- <img src=“http://track.wt-eu02.net/111111111111111/wt?p=325,homepage” …>
- <img src=“http://track.wt-eu02.net/222222222222222/wt?p=325,homepage” …>
文章转自:数据研究与商业应用(宋天龙Tony Song),转载请注明。3. 跟踪线下交易数据
Webtrekk提供针对线下交易的跟踪机制,这个机制的本质叫做server to server,是一种noscript请求 ,即数据是直接从数据产生的服务器发送到Webtrekk服务器,中间不经过客户电脑,因此这种机制可以跟踪很多线下数据。
如下是一段典型的数据请求记录:
- http://track.wt-eu02.net/111111111111111/wt?p=325,offline.callcenter.germany
- &oi=M-12345&ov=12.99&cd=372d1a04d003eebc09e17330d5d3117c&ba=girokonto
- &st=conf&tty=offline
上述变量以及更多的部分变量意义为:
4. SSL下的信息采集
很多时候出于安全考虑,公司在某些特定页面范畴内会有安全措施SSL,Webtrekk对这些都是支持的。方法非常简单,只需要将之前的http换成https即可:
- //NoScript脚本
- <img src=“https://track.wt-eu02.net/…
- //JS引用脚本
- <script type=”text/javascript” src=”https://www.website.com/webtrekk.js”></script>
注意:页面代码中的script对象部分无需变化。
5. 禁用预渲染跟踪
很多浏览器比如Google Chrome在展示网页时都有预渲染功能,即页面加载会在用户实际看之前完成,比如常见的页面标签,当用户通过标签拖出一个页面,但实际上用户并未进入到那个页面浏览,这就是预渲染。Webtrekk识别这个过程,因此自动抑制预渲染下数据的发送,这通常会真实的反映用户“真的浏览”的页面情况,但对应的是页面的流量比稍稍比所有页面加载的情况低。如果要禁用这个功能,直接用如下代码即可:
- wt.ignorePrerendering = true;
6. 自定义参数发送顺序
所有的网站分析工具的每条请求都是有长度限制的,Webtrekk的限制为7000个字符,对于90%以上的情况是足够用的,但是如果出现特殊情况,比如页面的名称长度非常非常长,可能会形成发送信息过载,直接导致7000个字符之后的数据不被发送,要改变这个问题,可以通过自定义发送参数顺序的形式优化。优化后,系统将优先发送我们指定顺序的参数值,其次是未指定的参数值。
- wt.paramFirst = “ov;oi;st;co;qn;ba;cd;cs15;cs16;cs17;cs18;cs19;cs20;”;
7. 页面JS加载的安全措施
某些时候,可以由于其他问题导致Webtrekk的JS代码无法正确加载。此时页面会被JS“堵住”,为了防止JS由于错误问题影响整个页面的加载问题,Webtrekk提供了两种解决方案:
第一种是防止错误的功能,根据typeof的返回值是否是function来决定是否加载webtrekkV3脚本
- if(typeof(webtrekkV3) == “function”){
- var webtrekk = {
- contentId : “”,
- linkTrack : “link”,
- linkTrackAttribute : “id”,
- heatmap : “1″,
- form : “1″,
- formAttribute : “id”
- };
- var wt = new webtrekkV3(webtrekk);
- wt.sendinfo();
- }
第二种是延迟加载,如下是在上面基础上定义了生成Webtrekk对象会被延迟3000毫秒,意为3秒之后加载,这会保证其他的加载预先完成。注:这样可能会导致收集到的数据比实际数据少很多,尤其是作弊情况下,作弊机和用户可能在3秒内已经退出页面。
- function createWebtrekkPixel(){
- if(typeof(webtrekkV3) == “function”){
- var webtrekk = {
- contentId : “”,
- linkTrack : “link”,
- linkTrackAttribute : “id”,
- heatmap : “1″,
- form : “1″,
- formAttribute : “id”
- };
- window.wt = new webtrekkV3(webtrekk);
- wt.sendinfo();
- }
- }
- window.setTimeout (“createWebtrekkPixel()”, 3000);
以上情况基本可以满足日常和特殊情况下的部署需求。当然,Webtrekk还提供了更多的功能,比如使用JSON做代码部署跟踪、排除特定页面的参数、针对Flash和媒体的跟踪、类别(将产品、页面、媒体、时间、CRM进行分类)、自定义参数(会话、页面、事件、电子商务、营销活动、独立参数)等非常多的内容。以后会慢慢跟大家分享。