IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Webtrekk代码部署指南之高级篇——特殊情况下数据收集

    Tony Song发表于 2014-04-24 08:11:07
    love 0

    在网站分析工具的代码部署过程中,总需要考虑不同情况下的业务和技术需求。本篇介绍特殊情况下的代码部署,包括针对不支持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.net:Webtrekk分配的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进行分类)、自定义参数(会话、页面、事件、电子商务、营销活动、独立参数)等非常多的内容。以后会慢慢跟大家分享。

    &&&&&



沪ICP备19023445号-2号
友情链接