在网站分析工具的代码部署过程中,总需要考虑不同情况下的业务和技术需求。本篇介绍特殊情况下的代码部署,包括针对不支持JS用户的信息跟踪、多账号跟踪设置、跟踪线下交易数据、SSL下的信息采集、禁用预渲染跟踪、自定义参数发送顺序、页面JS加载的安全措施。

webtrekk-特殊情况数据收集

1. 针对不支持JS用户的信息跟踪

虽然大多数情况下用户的浏览器都会启用JS跟踪功能,但由于很多原因针对不启用JS的用户,我们也想做数据跟踪。Webtrekk提供了一个1×1硬图片的跟踪方式,代码如下:

  1. <img src=“http://track.wt-eu02.net/111111111111111/wt?p=325,0“ height=”1“
  2. width=”1“ alt=”“>

整段代码只需放置在上篇文章提到的标准跟踪代码之下即可。其中的参数意义如下:

  • track.wt-eu02.netWebtrekk分配的trackDomain
  • 111111111111111:Webtrekk分配的trackId
  • p=325:Pixel的版本,根据具体实施的脚本填写
  • 0:ContentId,0表示留空,根据系统规则填写

上面参数为必填参数,是系统在收集信息阶段根据账号需要必须进行采集的信息。而有些信息是可选的参数,如:

  1. <img    
  2. src=“http://track.wt-eu02.net/111111111111111/wt?p=325,de.startseite,1,1280x
  3. 1024,32,1,  
  4. 1208964116364,0,1234×784,1&amp;la=&amp;ov=&amp;cr=&amp;oi=&amp;ba=&amp;co=&a  
  5. mp;  
  6. qn=&amp;ca=&amp;st=&amp;cd=&amp;is=&amp;mca=&amp;mc=&amp;mcd=&amp;lp=&amp;  
  7. cp1=&amp;cs1=&amp;ck1=&amp;cb1=&amp;cg1=” height=“1” width=“1” alt=“”>  

Webtrekk这些可选参数能帮助我们进行几乎所有支持js端的数据采集项目,具体会在之后的文章中详细介绍。

2. 多账号跟踪设置

通常大公司由于体系划分的原因,可能需要把数据在底层采集时即进行分账号(区分Profile,当然Webtrekk也支持一个账号内按照内容区分用户权限,这在其他工具中很难实现) ,此次在底层跟踪时同一段信息需要发送到2个甚至更多的账号中,在Script和NoScript代码中,在TrackId部分只需要将不同的ID以逗号进行分隔填入即可。

如果两个账号中发送的信息一致,可以采用以下配置代码:

  1. <script> code:
  2. wt.trackId=”111111111111111,222222222222222”;
  3. <noscript> code:
  4. <img src=“http://track.wt-eu02.net/111111111111111,222222222222222/wt?p=325,
  5. homepage” …>

如果两个账号中发送的信息不一致,则采用以下配置代码:

  1. „<script>“ segment:
  2. var wt1 = new webtrekkV3(); // Generates the first instance
  3. wt1.trackId=”111111111111111”; // Sets the TrackID for the first instance
  4. wt1.sendinfo(); // Sends the tracking request for the first instance
  5. var wt2 = new webtrekkV3(); // Generates the second instance
  6. wt2.trackId=”222222222222222”; // Sets the TrackID for the second instance
  7. wt2.sendinfo(); // Sends the tracking request for the second instance
  8. „<noscript>“ segment:
  9. <img src=“http://track.wt-eu02.net/111111111111111/wt?p=325,homepage” …>
  10. <img src=“http://track.wt-eu02.net/222222222222222/wt?p=325,homepage” …>
文章转自:数据研究与商业应用(宋天龙Tony Song),转载请注明。
3. 跟踪线下交易数据

Webtrekk提供针对线下交易的跟踪机制,这个机制的本质叫做server to server,是一种noscript请求 ,即数据是直接从数据产生的服务器发送到Webtrekk服务器,中间不经过客户电脑,因此这种机制可以跟踪很多线下数据。

如下是一段典型的数据请求记录:

  1. http://track.wt-eu02.net/111111111111111/wt?p=325,offline.callcenter.germany   
  2. &oi=M-12345&ov=12.99&cd=372d1a04d003eebc09e17330d5d3117c&ba=girokonto   
  3. &st=conf&tty=offline  

上述变量以及更多的部分变量意义为:

cbwt.自定义电子商务参数电子商务参数 [cb2, cb3…]
ccwt.自定义营销活动参数营销活动参数[cc2, cc3…]
cewt.自定义时间参数独立参数 [ce2, ce3…](参考章节6.6.2)
ckwt.自定义点击参数事件参数 [ck2, ck3…]
cpwt.自定义参数页面参数 [cp2, cp3…]
cswt定义会话参数会话参数[cs2, cs3…]
ovwt.订单数值订单数值
oiwt.订单标识符订单标识符
bawt.产品购物车产品
cowt.产品成本产品成本
qnwt.产品数量产品数量
cawt.产品分类产品分类 [ca2, ca3…]
stwt.产品状态购物车状态[添加| 配置 | 浏览 ]
cdwt.自定义标识符客户标识符
4. SSL下的信息采集

很多时候出于安全考虑,公司在某些特定页面范畴内会有安全措施SSL,Webtrekk对这些都是支持的。方法非常简单,只需要将之前的http换成https即可:

  1. //NoScript脚本   
  2. <img src=“https://track.wt-eu02.net/…
  3. //JS引用脚本  
  4. <script type=”text/javascript” src=”https://www.website.com/webtrekk.js”></script>  

注意:页面代码中的script对象部分无需变化。

5. 禁用预渲染跟踪

很多浏览器比如Google Chrome在展示网页时都有预渲染功能,即页面加载会在用户实际看之前完成,比如常见的页面标签,当用户通过标签拖出一个页面,但实际上用户并未进入到那个页面浏览,这就是预渲染。Webtrekk识别这个过程,因此自动抑制预渲染下数据的发送,这通常会真实的反映用户“真的浏览”的页面情况,但对应的是页面的流量比稍稍比所有页面加载的情况低。如果要禁用这个功能,直接用如下代码即可:

  1. wt.ignorePrerendering = true;  
 6. 自定义参数发送顺序

所有的网站分析工具的每条请求都是有长度限制的,Webtrekk的限制为7000个字符,对于90%以上的情况是足够用的,但是如果出现特殊情况,比如页面的名称长度非常非常长,可能会形成发送信息过载,直接导致7000个字符之后的数据不被发送,要改变这个问题,可以通过自定义发送参数顺序的形式优化。优化后,系统将优先发送我们指定顺序的参数值,其次是未指定的参数值。

  1. 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脚本

  1. if(typeof(webtrekkV3) == “function”){   
  2. var webtrekk = {   
  3. contentId : “”,    
  4. linkTrack : “link”,   
  5. linkTrackAttribute : “id”,   
  6. heatmap : “1”,    
  7. form : “1”,    
  8. formAttribute : “id”    
  9. };   
  10. var wt = new webtrekkV3(webtrekk);   
  11. wt.sendinfo();   
  12. }   

第二种是延迟加载,如下是在上面基础上定义了生成Webtrekk对象会被延迟3000毫秒,意为3秒之后加载,这会保证其他的加载预先完成。注:这样可能会导致收集到的数据比实际数据少很多,尤其是作弊情况下,作弊机和用户可能在3秒内已经退出页面。

  1. function createWebtrekkPixel(){   
  2. if(typeof(webtrekkV3) == “function”){   
  3. var webtrekk = {   
  4. contentId : “”,    
  5. linkTrack : “link”,   
  6. linkTrackAttribute : “id”,   
  7. heatmap : “1”,    
  8. form : “1”,    
  9. formAttribute : “id”    
  10. };   
  11. window.wt = new webtrekkV3(webtrekk);   
  12. wt.sendinfo();   
  13. }    
  14. }   
  15. window.setTimeout (“createWebtrekkPixel()”, 3000);  

以上情况基本可以满足日常和特殊情况下的部署需求。当然,Webtrekk还提供了更多的功能,比如使用JSON做代码部署跟踪、排除特定页面的参数、针对Flash和媒体的跟踪、类别(将产品、页面、媒体、时间、CRM进行分类)、自定义参数(会话、页面、事件、电子商务、营销活动、独立参数)等非常多的内容。以后会慢慢跟大家分享。



除非注明,本博客文章均为 数据研究与商业应用(TonySong) 原创.
转载请注明本文地址: http://www.searchmarketingart.com/webtrekk-code-implementation-instruction-4.html