仁慈娃娃义卖

在拉萨的张帆扎史永宗张罗着义卖娃娃为帮助拉萨的孤寡老人和麻风病人筹款。她们最先从从成都王府井开始义卖, 现在淘宝也开始了网上义卖, 本来有四款,但有一款已经卖没了,还有下面三款:(点击相应图片就进入淘宝购买页面了)

image  image image

这都是张帆和吴敬设计并由多个下岗女工制作的。价格分别是80,80,60。

张帆是俗名,她是噶举派的尼姑,现在拉萨的寺庙内修行的。她和别的修佛之人不同,她不是那种伴着青灯古佛求得一己内心清净,脱离尘世的出家人。她积极在尘世中去帮助那些需要帮助的人,除了帮助孤寡老人和麻风病人外,她还做了很多,大家可以去读读她的blog。她让我看到了国内佛教界的一丝希望,让我对国内佛教原先的坏印象有了一些好转。我始终相信,只有给人以希望的宗教才是有希望的宗教。

老外说中文

刚才在新帆看到有人贴<不要欺负老外不懂中文>, 想起自己遇到过的一次老外说中文的事。

当时在印度加尔各答, 我的印度visa快到期了,要去延期。第二天一大早就去加尔各答警察局,结果他们上班晚,等到10点多人才来。发现负责签证的是个中年男人,带着眼镜,看着挺文气的。硬着头皮操着蹩脚英文和他谈,结果他用英文相告,旅游签证是不能延期的。 我想再说些客套话,求求情,突然对方蹦出一句和刚才说的音调完全不同的话,没听懂,就说:”Beg pardon”。再听才明白,原来他说的是中文:“这是不行的”!狂晕!旁边的印度官员看见我震惊的样子都笑了。 旁边一个官员用英文告诉我,这位去中国留学工作过7年。 接着就用中文和他聊,他中文说的很不错,虽然有较重的口音,但交流完全没问题。 他和我更详细解释了一下为什么不行,本来还想说自己多么热爱印度,看看有没有希望通融,结果说了半天还是不行,只好道别了。

后记:后来在印度的Orcha遇到一个也是来旅游的云南美女,她在新德里就成功的把签证延期了一个月,她说其实中央政府的人往往比较好通融,地方的人不敢逾越规章制度,比较死板。不过我疑心因为她是美女的缘故所以得到分外的照顾:)。

相逢的人会再相逢

看到左岸写的相逢的人会再相逢让我有了很多感慨,就偷来标题也写一篇。其实也没啥特别:),只是又想起了当年与朋友相遇的小概率事件。 有两件当时忘写了,现在补写。

几年前和我妹一起去桑耶寺,要先坐船横渡雅鲁藏布江。当我们跳上那个船的时候,突然听到有人叫妹妹的名字,一看原来是和我妹一个龙舟队的xing‘ou。之前她们完全不知道对方来这里。当时她们每个周末在北京后海一起划龙舟,还一起参加国际龙舟比赛,没想到在千里之外又坐上了同一条船。

 

德钦我去过两次,第一次去的时候在季候鸟酒吧等着看梅里的真容,可惜一直雨雾缭绕,没见到卡瓦博格,只好搭车回去。当时就在路边拦车,刚好拦到一辆县政府的帕杰罗。司机师傅告诉我,县委书记刚好上午下乡视察工作,他要回县里办事,就先回来了。结果我运气好居然坐上了县委书记的座驾。

第二次去的时候,在季候鸟酒吧GPRS上网速度超慢,只好再拦车去县里找网吧。一上车后发现司机很面熟,突然想起他就是我上次拦到的司机,司机师傅也记起了我,两人都很高兴。当时车上还有其他人,一说他们也特别惊讶于这样的巧合。司机师傅姓龙,是纳西族,离开后很久没和他联系,不知道他是不是一切都安好,是否还记得那个雪山脚下的拦车人。

如何用Google Analytics跟踪出站点击

有时候我们需要知道用户是点击了站点中哪个外部链接离开了你的站点。比如当你的购买链接是指向第三方的收费代理,这时候就很有必要知道有多少用户是点击了购买链接离开了你的站点. 单靠平常的在线统计日志分析(Log Analysis)是不能跟踪的,因为很多时候外部站点不允许你插入统计代码,更不会给你看日志文件。这时候就需要我们动手加点东西来实现对出站点击的跟踪。

以前追踪出站点击的方法主要就是不直接链接到外部站点,而是链接到一个本地文件上,把用户的出站点击经这个文件中转一下。这样通过日志分析(Log Analysis)统计中转文件的访问,或直接由这个中转文件把统计结果写入数据库, 以此来实现对出站点击的跟踪。

那么用Google Analytics如何跟踪出站点击呢?有人要说可以在中转文件中插入Google Analytics的代码,实际上有个更简单的办法。 在普通网页统计插入的Google Analytics代码中,最后要调用不带参数的urchinTracker() 函数。其实这个函数是可以带参数的。查看http://www.google-analytics.com/urchin.js这个文件,你会发现这个参数名是page,再向下多看看你就很容易发现,这个page参数就是统计页面的url。 利用这个函数就可以实现对出站点击的追踪了,将每个出站链接加入如下代码:

<a href=”http://www.waibu.com” onClick=”javascript:urchinTracker(/outgoing/1);”>链接</a>

这个链接中给出的参数’/outgoing/1‘ 是可以根据自己需要定制的,并不是站点中必须要有的文件。urchinTracker 这个函数你只要给他什么参数他就统计什么,实际是否存在并不关心。 加入这段代码后,一旦用户点击,Google Analytics就会记录为一个对’/outgoing/1‘的访问。这样你只用每天看Top Content(最常见内容)报表中’/outgoing/1‘ 的访问数字就能知道点击这个外部链接的访问有多少了。 你还可以把’/outgoing/1‘ 定义为一个目标(Goal),在Google Analytics对目标的转化率Conversion Rate(转化率),Goal Path(目标访问路径)等进行分析。

注:

1.这种跟踪方法在不支持或禁止javascript的客户端是无效的
2.这种跟踪方法的前提是你必须在网页中安了Google Analytics统计代码

在线统计 vs 日志分析 ( Page Tagging vs Log Analysis )

网站流量分析(Web Analytics)的工具分为两大类, 一类是以Google Analytics为代表的在线统计系统, 英文称Page tagging。国内的武林榜,51yes,国外的Hitbox, Nielsen NetRatings, OneStat 都属于此类。这一类的重要特点是,分析时需要在里页面嵌入代码,这也是Page Tagging这个词的由来。 另一类就是日志分析,英文称Log Analysis, 特指web服务器的日志分析就是Web Log AnalysisNihuo Web Log Analyzer, awstats, analog 都属此类,这一类的特点是不用在页面嵌入代码,而是靠分析web 服务器产生的日志来生成统计报表。

经常有人问起这两种方法哪个更好,解释次数多了,自己都烦了,现在在这里统一回答一下。涉及到两类产品的比较时,就分别以Google Analytics( http://www.google.com/analytics/ )和Nihuo Web Log Analyzer( http://www.loganalyzer.net/ )为例了。

网站流量分析机制的差异

在线网站流量统计(Page tagging)的实现机制

Google Analytics需要在所有需要统计的页面中插入如下的Java Script统计代码,只有插入了代码的页面才能被统计,


这段Java script做的工作如下:

  • 判断用户是不是第一次访问这个网站。它是通过cookie来判断, 如果特定Cookie不存在它就会认为是新用户,它会种一个用户标识的cookie,并在cookie中记录下用户第一次访问时的Refrrer,即来源网站。 如果是从搜索引擎过来的,它还会分离出用户搜索用的关键词并记录下来
  • 判断用户是不是新的访问(New Visit),并获取当前浏览的页面URL,标题,Referrer(来源网址),客户端信息(如屏幕分辨率,语言,flash版本,是否支持java )
  • 创建一个image对象,调用http://www.google-analytics.com/__utm.gif,把上面所有的信息作为图像文件的参数传回去。这个图像文件其实就是1个像素的gif文件,而且这个像素还是透明的,在页面中是看不到的。

其他的在线统计系统与Google Analytic有些细微的差别, 比如Nielsen NetRatings要求嵌入的javascript代码中还包含有如下代码:

这确保了在javascript被禁止的客户端,用户的访问也能被统计。当然,这种情况下能统计的信息很有限了。关于这些在线系统实现方法上的一些细微差别做过专门研究,说起来就很长了,哪天有时间会单独写个文章讲这个话题。

日志分析(Web Log Analysis)的实现机制

Web服务器在工作时会把所有用户发过来的请求和相应情况记录在文件里,这个文件就是日志文件。下面就是从http://www.loganalyzer.net/log-analysis-tutorial/log-file-sample-explain.html 找到的一行日志:

111.111.111.111 – – [08/Oct/2007:11:17:55 -0400] “GET /support.html HTTP/1.1” 200 10801 “http://www.google.com/search?q=log+analyzer&ie=utf-8&oe=utf-8 &aq=t&rls=org.mozilla:en-US:official&client=firefox-a” “Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7”

在这一行里包含了客户端IP(111.111.111.111),时间([08/Oct/2007:11:17:55 -0400] ),请求方法(Get),请求文件(/support.html ),HTTP协议版本(HTTP/1.1),返回状态码(200,表示成功),文件大小(10801 ),Referrer信息(”http://www.google.com/search?q=log+analyzer&ie=utf-8&oe=utf-8 &aq=t&rls=org.mozilla:en-US:official&client=firefox-a”),Agent信息”Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7″)。具体如何详细解读日志会另文阐述,在这里只是展示一下日志中都包含什么信息。

Nihuo Web Log Analyzer就是靠读入日志文件在本地进行统计计算而得出最终报表的。在大部分Web日志文件中,都是靠IP来判断访问者。Nihuo Web Log Analyzer也可以通过Cookie识别用户,但需要在日志中首先输出Cookie信息。

在线统计日志分析的优缺点比较

上面费比较多的笔墨说两者的实现机制,就是为了大家能更好理解这一段,因为两种方法的优缺点都是由他们的实现机制决定的。

在线网站流量统计(Page tagging)的优点

  • 通过Cookie识别访问者,比依靠IP识别要更准确。因为通过IP识别用户在遇到很多用户通过代理服务器(比如网吧)时就会不准确。而且当用户过几天后再访问时,通过Cookie能很好的识别这是已经来过的用户。而日志分析以IP识别用户时,因为用户每次上网拨号可能会被动态分配不同的IP,就会比较难准确判断返回用户。
  • 能通过javascript搜集到一些通过日志不能搜集到的客户端信息,屏幕分辨率,语言,flash版本,是否支持java 等
  • 使用方便,只要在所有页面插入了统计代码,以后每次直接看报表即可
  • 可以做第三方统计, 比如你在blogspot.com开了一个blog,而blogspot是不可能把他们的web日志提供给你的,这时候没有别的选择,只能是用在线统计系统。

在线网站流量统计(Page tagging)的缺点

  • 当客户端禁止Javascript或禁止Cookie时,都会影响统计结果,要么是完全统计不到,要么是出现错误的统计
  • 存在一定误差,因为在线统计是通过javascript把客户端信息搜集起来再传回服务器实现统计,有时因为网络的延迟,会出现没有统计到的情况。而且和页面的载入速度也有关系,把代码加在页面代码顶部或尾部统计结果都是会有差异的。
  • 不能统计用户对图像,视频,音频等文件的访问,因为这些文件不能插入统计代码
  • 不能统计带宽信息
  • 统计信息被第三方掌握,有安全上的危险

日志分析(Web Log Analysis)的优点

  • 没有网络延迟的问题,统计准确
  • 可以统计网络蜘蛛(spider ,bot)的访问,这对于做SEO比较重要
  • 能够统计非页面文件,如图像,flash文件等等
  • 客户端禁止了Javascript和Cookie也不影响统计的结果
  • 能够采用丰富的过滤器(Filter)进行数据挖掘(Data mining),可以从多角度分析网站流量和用户的访问行为。一些在线统计也支持Filter, 比如Google Analytics,但是一旦应用过滤器最终数据就被改变,原始数据是找不回来的。
  • 可以多域名的日志放在一起分析,在线统计系统对用户的标识是基于Cookie的,而Cookie是不能跨域名的,在这方面日志分析有天然的优势。
  • 安全,分析数据是由你自己掌握的

日志分析(Web Log Analysis)的缺点

  • 使用比较麻烦,每次要分析日志,而且有的还要配置web服务器以输出合适的日志。
  • 用IP追踪用户不如Cookie准确。 不过这个问题可以通过在Web服务器上添加插件或模块来解决。Apache需要添加mod_usertrack模块,并在日志中输出cookie信息。IIS可以装ISAPI的插件(自己用VC6写了一个,可以从http://www.doyj.com/downloads/cookiefilter.dll 下载,不过这个当时只是写来测试的,出了什么问题可别怪我 )。也可通过javascript,php,asp等语言给客户端种植cookie,这讲起来就长了,大家可以google相关资料看看。
  • 搜集的客户端信息不如Page Tagging丰富,象flash版本,是否安装java之类从日志是看不出来的
  • 日志的存储管理也是挺头痛的事,尤其是当每天都产生几十G日志的时候。

经常有人问这两种方式哪个更好,应该选择哪种,这让我很难回答。 因为这两种方式都各有所长各有所短,只用一种方法很难准确完整的了解网站流量的的全貌,我自己做分析时两种工具都使用的,两个报告互相参考着看,也推荐大家采用这个方式。

注:这篇文章借鉴了一些 http://www.kichus.in/2006/09/23/log-file-analysis-page-tagging/ 的内容

网站流量分析 (Web analytics) 水平分级

记得自己最早的网站流量分析Web analytics) 是1997年左右的时候,当时网易开放40M免费个人网页空间的申请,自己也申请了一个,再去网上找了个免费的计数器挂上去。 然后每天看着计数器的跳动激动不已,其实一大半是自己刷出来的。这就算是最早的网站流量分析了吧。

开发日志分析软件这些年来,接触了不少国内的网站,对国内网站的流量分析有个大致的了解。下面据此对网站流量分析的水平划分出几个等级,大家可以对照看看自己属于哪个等级。

菜鸟级的网站流量分析 (No web analytics)

这个水平的就是什么统计分析都不做, 自己站点的访问量大约是什么数量级都不知道。对uv, pv, unique ip这些基础概念都一问三不知。一些个人站点这样还情有可原,可很多企业,政府网站居然也这样就说不过去了。

入门级的网站流量分析 (Junior web analytics)

到了这级已经知道了网站流量统计的基本概念,已经懂得在自己网页上插入武林榜( http://www.50bang.com ), 51yes ( http://count.51yes.com )之类的在线统计代码,或者隔三岔五看看虚拟主机用开源软件(比如awstat( http://awstats.sourceforge.net ), analog( http://www.analog.cx ), webalizer( http://www.mrunix.net/webalizer )) 分析出来的日志分析报表。这一级别的人知道光看pv不行,还要看uv和unique ip。 懂得看Referrer(来源网站)报表,研究Search Phrase(搜索关键词)报表。他们能根据看到的报告,及时调整自己网站的内容及经营策略。比如发现uv少了,就加大推广力度;发现搜索引擎过来的人少了,就做SEO;看地域统计报告,发现广东过来人少了,就赶紧安排一些针对广东的弹窗广告之类。国内的网站大都是这个级别。

高手级的网站流量分析 (Master of web analytics)

这个级别和入门级最重要的差别在于, 入门级的人关心有多少人到了自己的网站, 而高手级的人还懂得关心,甚至更关心:人们到自己的网站都干了什么。也就是说他们懂得用户行为分析 (Visitor behavior analysis) 的重要性。使用的工具中,国内那些简单的在线统计网站早就被剔除了,使用的是Google Analytics( http://www.google.com/analytics/ ),及收费的Nielsen NetRatings( http://www.nielsen-netratings.com/ )等在线统计系统, 同时还采用Nihuo Web Log Analyzer( http://www.loganalyzer.net/ )等专业的日志分析器,做到在线统计与日志分析相结合 。 他们分析的也不只是流量,而是包括网站内容,网站链接结构,SEO等多方面的数据;做的不再只是网站流量分析 (web traffic analytics) 而是进化成整体的网站分析 (web analytics)。他们关注用户的访问路径;关注每个关键词过来的流量在登录页面,Bounce rate弹出率),停留时间,访问路径等等指标上的细微不同;对一些重要页面进行单独的Tracking(跟踪),关注这些页面的每个细节; 他们还能熟练使用各种filter过滤器),能在几M到上百G的日志中进行数据挖掘工作,从中挖掘出有价值的数据;他们能轻易判断报表上反映的问题是技术问题,还是网页设计问题,还是网站推广问题。 他们的眼睛能透过报表上纷繁的数字,看到数字背后的真相。

专家级的网站流量分析 (Expert of web analytics)

专家级的人已经不满于现有的各种工具和指标,他们会针对自己的网站特点,提出一些很有针对性的新指标,他们会为自己的网站开发极有针对性的分析系统,甚至开发自己的日志系统。他们不只是看到数据背后的真相,而是会自己主动发掘新的数据,并把自己的网站变成数据驱动Data Driven)型的网站。网站的每个设计,每个推广活动,每个决策,不是拍脑子想出的结果,不是开无聊会议的结果,而都是有强大的分析数据来支持。 每个决策的效果又能及时统计分析,变成数据再反馈回来,让网站及时调整决策,乃至改进整个数据分析的流程和方法。

最高级 – 仙级的网站流量分析 (God of web analytics)

他们从专家级中走过来,从网站分析 (web analytics) 中看到的已不只是对过去的总结,还能从中能看到将来变化的趋势,并帮助网站提前把握这种趋势;他们不只是看自己网站的分析,还看竞争对手,同行业乃至整个互联网的情况,并根据掌握的这些情况对自己网站的流量做出更合理的分析解释,并做相应调整;他们有广博的知识,能把其他方面的知识应用到分析中来,了解社会及自然界发生的一些事情可能对网站流量的影响;他们对网站流量分析有着自己独到的见解;他们在公司里是传播分析思想与方法的中心人物;他们不只是对分析技术,而且对整个网站的机制和涉及到的技术都有深入的理解;他们是一个网站走向成功的重要保证。

国内这方面的水平还比较低。在国外很多公司在招专业的网站分析员Web analyst),而在国内的51job( http://www.51job.com )找不到这个职位的招聘。 国内很多网站把网站流量分析当作是网管附带的工作,不要说专职的部门,连专职的分析人员也没有。有时还不止是缺乏数据分析的问题,不少网站还热衷于制造数据,比如alexa( http://www.alexa.com )排名之类,对这些网站说重视数据分析,说从流量数据分析中挖掘出金矿无异于对牛弹琴。

但有理由对将来保持乐观,将来一个网站如果要成功,没有好的网站分析员是不可想象的。已经在国内见到有专家级甚至快成仙得道的大侠,见到过国内网站内部开发的超强统计分析系统,而且看到这样的大侠和这样有远见的网站有越来越多的趋势。国内将来不仅会有成批专职的网站分析员,而且这个职业可能成为下一个热门高薪职业。 登陆Google Analytics( http://www.google.com/analytics/ )的时候会看到有Analytic Authorized Consultant的标志,全世界已经有了很多获得这个认证的分析顾问( http://www.google.com/analytics/support_partner_provided.html ),其中中国已经有了一家,相信会越来越多。

终于准确知道顾客是从哪里来的了

说顾客从哪里来,不是指顾客居住的地理位置, 而是指顾客找到我的产品,我的网站的方式。 最终付费的顾客是通过搜索引擎找到的,还是通过在哪个站点投放的广告, 还是通过adwords。这是我一直最关心的问题,也用了各种方法去分析,比如网页里插入Google Analytic的统计代码,用web log analyzer 分析自己网站的日志,但因为自己的共享软件是通过regsoft, regnow等注册服务提供商来完成,当用户最终确认付款时,已经离开了我的软件站点页面,Google Analytic和日志都不能确认这个用户是否付款。 很多时候把钱扔到各种推广方式上,但对每种推广方式能有什么具体效果则心里一点数也没有,只要月底一算账收入增长了,就觉得推广的方式还是有用。 如果下降了, 就不管有用没用,所有推广方式全给砍掉。

前天痛感这种状态不能再继续,于是自己修改了一下google analytic的代码来实现对顾客来源的跟踪。 Google Analytic会在客户端种植几个cookie,最有用的是__utmz, 记录了用户的来源信息,通过搜索引擎过来的用户还能找出关键词。但有个问题是,不能区分正常搜索结果过来的用户和通过adwords广告过来的用户。 这就需要自己做点工作了。

1.adwords广告的目标url设置特殊参数, 我就设定为 /index.html?ref=adwords

2.在index.html加入如下javascript代码 ,种植_isadwords cookie


var _isadwords;

_isadwords= _uGC(document.cookie, ‘_isadwords=’, ‘;’);

//判断是否cookie中已经存在isadwords字段,如果不存在就设置此字段
if( !_isadwords|| _isadwords== “-” )
{

//判断是不是adwords过来的用户
if( window.location.href.indexOf( “/index.html?ref=adwords ” ) > 0 )
_isadwords= “1” ;
else
_isadwords= “0” ;

document.cookie=”_isadwords=”+_isadwords+ “; expires=” + _uNx()+”;”;
}


这其中 _uGC()和_uNx()都是google analytic 的 script中提供的函数。_uGC()是在第一个参数中寻找以第二个参数开头,第三个参数结尾的子串。 _uNx()则是返回当前时间一年以后的时间,用做cookie的过期时间。

种下了cookie,剩下的问题就是怎么读出来了。先下载http://www.doyj.com/images/a.gif, 上载到你的站点图像目录里。 a.gif是一个只有一个透明像素的gif图像文件。然后在产品购买页面嵌入如下代码:

var _urefgifpath=”http://www.doyj.com/images/a.gif”; //这里要换成你的图像链接

var zx = _uGC(document.cookie, ‘__utmz=’, ‘;’); //取出__utmz cookie
var _isadwords=_uGC(document.cookie, ‘_isadwords=’, ‘;’);

var i3=new Image(1,1);
i3.src=_urefgifpath+”?”+”utmz=” + zx + “_isadwords=” + _isadwords + “&utmn=”+_uu;
i3.onload=function() { _uVoid(); }

代码中的_uu是google analytic中生成的一个随机数,=Math.round(Math.random()*2147483647);, 这是为了保证每次url都是不一样,客户端不会缓存对这个图像文件的访问。代码中的_uVoid()也是google analytic中的一个空函数。

这段代码其实就是new 出一个图像文件, 把cookie信息做为这个图像的参数返回给服务器,这样在日志中就会留下用户的cookie信息。因为这个图像文件是一个透明像素,并且是在javascript中new出来的,所以在页面中是不可见的。

因为在订单中有用户的ip, 每收到一个订单, 就可以去日志中去查找这个ip, 再查找这个ip访问a.gif时留下的参数,就能知道这个用户从哪里过来的了。

后记:写在这里的方法已经比我当时采用的方法又改进了一些, 当初想的方法,那是…………相当的蠢。 改进后的方法依然不好,还要去看日志文件,很麻烦,但至少实现了追踪用户来源的功能。方法还有很多改进余地,我这是抛砖引玉,先提出这么个思路,欢迎大家指正。