邵珠庆の日记 生命只有一次,你可以用它来做很多伟大的事情–Make the world a little better and easier


35月/11

使用Google Analytics跟踪下载等事件

发布在 邵珠庆

在前面的《如何在Google Analytics下设定下载目标》中,我们将下载对象模拟成对一个普通的HTML页面的访问来跟踪下载链接被点击的次数(将register.zip的访问模拟成对页面/downloads/register_zip这个页面的访问),下面我再介绍一下如何在GA里面使用它的事件跟踪方法来追踪事件。

GA里面提供了一个方法_trackEvent(category, action, opt_label, opt_value),用于跟踪页面里面的事件。它有四个参数,这四个参数分别表示:

  • category (必须)

用于给你需要跟踪的对象组命名。例如:按钮、Banner等等。

  • action (必须)

和每个分类匹配的字符串,通常用于定义用户和网页对象的交互类型。

  • label (可选)

一个可选的字符串,用于给事件数据提供附加的维度。

  • value (可选)

一个可选的数字类型参数,可以用于提供关于用户事件的数字数据。

在设置了事件跟踪后,可以在GA控制台的“内容(Content)”->“事件追踪(Event Tracking)”中看到相关的跟踪数据。

下面看一个例子。在这个博客的上面,有一个超链接,指向博客首页,如下图:


头部链接

另外,在页面的底部,为了更好的优化首页的2个关键字:SEO实践和SEM实践,我加了2个次导航,也是链向首页。


底部次导航

现在我想看一下这2个地方的点击情况到底有什么区别(当然在这里实际上肯定点页面头部的人多),那么我可以分别给头部和尾部的链接加上跟踪代码,如下:

  • 头部:

<a href=”http://www.seo-sem-blog.com/” onclick=”JavaScript:pageTracker._eventTrack(‘IdxPg’,'Lnk’,'TopLnk’);”&gt;SEO、SEM实践博客</a>

  • 底部:

<a href=”http://www.seo-sem-blog.com/” onclick=”JavaScript:pageTracker._eventTrack(‘IdxPg’,'Lnk’,'BtmLnk’);”&gt;SEO实践</a>

<a href=”http://www.seo-sem-blog.com/” onclick=”JavaScript:pageTracker._eventTrack(‘IdxPg’,'Lnk’,'BtmLnk’);”&gt;SEM实践</a>

这样后续我就可以在GA中看到各自的点击情况统计了。

总体来说,GA里的事件跟踪方法适用于:

  • 跟踪下载等事件
  • 跟踪播放器播放、暂停、停止等按钮。
  • 跟踪某个页面内各个Call In Actions的对象的点击,从而评估这些对象的效果和价值。
  • 其他事件。

更详细的说明,请参考:http://code.google.com/apis/analytics/docs/tracking/eventTrackerGuide.html

注意这个说明文档中的举例都是GA的最新的异步代码方式,其调用方法的格式是:

_gaq.push([方法名, 该方法对应的参数])
35月/11

Google Analytics虚拟页面和事件追踪的区别

发布在 邵珠庆

今天在蓝鲸的网站分析笔记中,看了Google Analytics虚拟页面和事件追踪这两个功能的介绍文章,两者是事件跟踪(用来记录不产生页面浏览的用户交互行为)的两种方式。但是仔细对比后却有所区别,具体总结如下:

       1、实现原理和方式:
虚拟页面是通过_trackPageview()函数来完成的。而事件追踪则是调用pageTracker._trackEvent()函数。两者都是在函数中设置参数值,当访问者执行事件时,并将预先设定的值发送会google服务器,并最终显示在报告里。

       2、函数的变量值:

_trackPageview()的变量值只有一个,只需填写标识不同跟踪事件的变量值就行。例如:_trackPageview(“/virtual/outgoing/twitter.com”)记录点击网站twitter链接事件,参数值的层次划分建议有两级以上,一级目录统一标识虚拟页面,二级目录标识链接地址。

而pageTracker._trackEvent()函数要设置4个变量值,按顺序分别为:事件类别,用户行为,事件标签和事件价值。前三个是必须填写的值,第四个事件价值可以可选的。例如:pageTracker._trackEvent(“music”, ”Play”, ” 日光倾城”)。

关于事件跟踪的行为可分以下三类有,具体可以作为函数参数值的目录划分:

站内行为:下载文档,提交评论等。不会产生页面浏览或不同URL页面的行为。

站外行为:友情链接,广告点击等。统称为出站链接。

其他行为:文档加载,页面停留等。与JS事件有关的组合。

        3、报告的显示结果:

两者记录的数据报告都是Google Analytics的“内容”中,具体显示报告效果如下:

报告中的事件价值和平均价值是根据pageTracker._trackEvent()函数内第四个可选值计算得出的。

       4、实现效果:

虚拟页面会产生一个副产品——虚拟浏览量,因为这些虚拟页面实际上并不存在,但虚拟页面也会在报告中产生浏览量,影响报告的准确性。所以是为了保持网站流量的真实性,应该有一个不包含虚拟流量的配置文件,来分隔虚拟浏览量。

而事件追踪在报告中比虚拟页面灵活的多。可以分别查看不同类别,不同行为的表现情况。所以在追踪下载行为和其他类似行为的时候建议使用事件追踪。

       5、具体操作:

由于GA的统计代码分传统和异步,所以虚拟页面分别有两种添加方式:

  1. <a href="http://www.zzhblog.com/.../" onClick="javascript:pageTracker._trackPageview('/virtual/twitter.com');">Follow me</a>(虚拟页面传统版)
  2. <a href="http://www.zzhblog.com/....../" onClick="javascript:gaq.push(['_trackPageview','/virtual/twitter.com']);">Follow me</a>(虚拟页面异步版)
  3. <a href="http://www.zzhblog.com/ Cookie_Sheet.pdf" onClick="pageTracker._trackEvent('GA_res', 'download', 'Cookie_Sheet');">下载</a>(事件追踪传统版)
  4. <a href="http://www.zzhblog.com/ Cookie_Sheet.pdf" onClick="javascript:_gaq.push(['_trackEvent', 'GA_res', 'download','Cookie_Sheet']);">下载</a>(事件追踪异步版)

以上就是总结的,如果大家还有新的发现,可以指出、分享一下。

74月/11

关于API和OAuth授权验证

发布在 邵珠庆

前两天有事去市里了,发现火狐便携版仍然那么杯具。。

订阅什么的就没管,积了好多。。

博客更新是回来后再补的,订阅的童鞋应该发现的。。

这几天有折腾腾讯微博的API,(刚蓝屏一次,话说用win7快一年了,蓝屏不到10次,MS还不错),SDK什么的都没有ASP的,而吾辈偏偏就只会一点ASP。。。

只好自己试着搞定,经过多方Google,终于明白点oauth是什么了,可是运行时总是失败。。。。。

两篇和API相关的文章:

OAuth是什么?:http://www.99ria.com/blog/?p=340

OAuth认证步骤:http://isouth.org/archives/286.html

还有就是新浪的API文档吧,腾讯的只是给出了需要的接口地址而已。。

比较麻烦的是oauth_signature(签名),我的理解就是好比你写了封信,你在信中表明了自己的身份(App Key),然后写了其他需要的内容,但是这封信是不是你写的呢?

你需要将已经写好的内容(base string)以及一个Key(App Secret)作为参数,按照指定的签名方法(oauth_signature_method)进行运算,得出一个oauth_signature值(HMAC-SHA1 [Key,base_string])写在信的未尾作为签名;

收信人在拿到信后,需要找出信中所述App Key对应的App Secret,然后自己进行下签名运算,看得出的oauth_signature值是不是和你写的一样。

App Key和App Secret就相当于帐号密码,但是oauth授权验证大部分都是跨站进行或者使用GET方式传递数据,为了安全而采用oauth_signature作为一次性密码。

base_string里包含了一个表明当前时间的时间戳(oauth_timestamp,自1970年1月1日00:00:00 GMT以来的秒数)和一个32位的的随机字符串(oauth_nonce),想要逆向算出App Secret…………

上边说了OAuth授权的安全机制,现在再来看授权过程:

API通过以下四个步骤来完成认证授权并访问或修改受限资源的流程

1. 获取未授权的Request Token(temporary credentials)

2. 请求用户授权Request Token

3. 使用授权后的Request Token换取Access Token(token credentials)

4. 使用 Access Token 访问或修改受保护资源

其中1~3步使用https方式, 第4步使用http方式。

我们注册并使用腾讯微博,帐号密码及所发布的信息都保存在腾讯微博的服务器上,但是可以通过API接口将数据拿到站外使用,

所以第一步,应用方帮用户向腾讯服务器进行“预约”,同时也是对应用方资格的一个验证,

二、三步对用户身份进行验证,“办理”将数据拿到站外使用的其他“手续”,最后就可以在应用方 “访问或修改受保护资源”。

和OpenID挺像的,,只是OpenID应用中,对用户身份进行验证的一方只负责验证,不提供资源。

关于API和OAuth授权验证《关于API和OAuth授权验证》 http://www.wdssmq.com/post/ZuoWanDeMengHaiZhenShiXuanYiJiaKeHuanTuCaoChuMei.html

64月/11

50个Web设计师超便利的工具

发布在 邵珠庆

作为一个 Web 设计师并不容易,不仅考虑设计与架构,还要时刻注意各种小细节,设计师的工作被各种各样的问题包围,你需要一套超级便利的工具帮你解决各种消耗时间和精力的问题。我爱互联网在这里给您介绍了50个非常强大的工具,包括正则表达式、在线图片处理、截图工具……你会发现,其中的一些工具会让你感到很是惊奇。x2G平坦软件园
LaunchList

站点发布前的工作清单,预设了28个需要检查的事项,也可以自定义。同类工具:Ultimate Website Launch Checklist 以及 The Ultimate Website Prelaunch Checklist。x2G平坦软件园

x2G平坦软件园
Pencil Project: Sketching and Prototyping with Firefox

一个开源 GUI 原型设计工具。x2G平坦软件园

x2G平坦软件园
Zootool

一个非常漂亮的书签工具,可以将你收集的各种素材,图片,文档,链接,视频等在线组织到一起。x2G平坦软件园

x2G平坦软件园
Bounce (推荐)

输入一个站点地址,该程序会给该站点截图,然后,你可以在上面批注,加评论,并和朋友分享。非常适合用来和您的客户在线就某个站点的设计进行讨论。x2G平坦软件园

x2G平坦软件园
Ninite Batch Installer

这个站点可以将很多免费的流行软件(最好的版本)打包在一起,一次性安装到你的机器,支持 Windows7,Vista 和 XP。x2G平坦软件园

x2G平坦软件园
Support Details (强烈推荐)

假如你想让你的用户提供他/她所使用的浏览器环境,比如 flash 版本,操作系统,屏幕分辨率,Cookie,javascript 状态等,可以让他/她访问一下这个站点,这个站点或自动将这些内容探测出来,并允许用户现场通过邮件将报告发送给你。x2G平坦软件园

x2G平坦软件园
MugTug’s Darkroom

一个在线图片处理程序,可以调整对比度,白平衡,曝光,饱和度等,可以从 Picasa 及 Flickr 上传图片,同类产品:Pixlr 及 Sumo Paint。x2G平坦软件园

x2G平坦软件园
Visual Website Optimizer (强烈推荐)

Visual Website Optimizer 绝对是你所能见到的最好的 A/B 测试工具。x2G平坦软件园

x2G平坦软件园
Keyonary

这个简单的在线工具可以帮你列出 Mac OS X, photoshop 等工具的快捷键清单。x2G平坦软件园

x2G平坦软件园
gridr buildrrr

一个在线网格设计工具,选择你希望使用的网格布局,帮你预览并生成 css 代码。x2G平坦软件园

x2G平坦软件园
Instant Blueprint – Create a web project framework in seconds.

帮你瞬间生成一个 Web 项目框架,基于合法 html/XHTML 和 CSS。x2G平坦软件园

x2G平坦软件园
Hummingbird

一个实时的(真正的实时,每秒刷新20次)站点流量分析工具,基于 Node.js.x2G平坦软件园

x2G平坦软件园
jsFiddle

在线 Web 编辑器,支持 javascript, MooTools, jquery, Prototype, YUI, Glow, Dojo, html 以及 CSS。x2G平坦软件园

x2G平坦软件园
String: create a multi-language website or app

帮你创建多语种 Web 应用的资源文件,x2G平坦软件园

x2G平坦软件园
Titanpad

可以多人同时编辑同一个文档,别的改动会实时以不同颜色标识,可以是同一个办公室的多个用户,也可以是地球另一边的多个用户。x2G平坦软件园

x2G平坦软件园
Pixelnovel Timeline: Version Control for Adobe Photoshop

该工具通过插件方式集成 Subversion 客户端,可以在 photoshop 中实现版本控制。非免费工具。x2G平坦软件园

x2G平坦软件园
0to255

给出一种颜色,会帮你列出这种颜色由浅入深的各种颜色变化,并特别针对 Web 做了优化。x2G平坦软件园

x2G平坦软件园
Load Impact: Website load/stress test

一个在线压力测试工具,模拟多用户同时访问你的站点,并出具报告以分析你的站点可以支撑的访问者数量。x2G平坦软件园

x2G平坦软件园
Ideone: Online IDE & Debugging Tool

一个在线 IDE 和调试工具,支持多达40种语言,包括 C++, Java, javascript, Perl, PHP, Python and Ruby,同类产品:PHP Anywhere 以及 CodeRun 。x2G平坦软件园

x2G平坦软件园
Online Dummy Image Generator

快速帮你生成一个在线虚拟图片,以便您进行某些测试。x2G平坦软件园

x2G平坦软件园
HiFi RegExp Tool

在线正则表达式工具。x2G平坦软件园

x2G平坦软件园
Tableizer (推荐)

将你 Excel 表格中的内容复制粘贴到这个站点,它会帮你生成 HTML 格式的表格(HTML Table)。x2G平坦软件园

x2G平坦软件园
FollowUpThen: Easy Email Reminder

-假如你希望有人提醒你什么时候该做什么事,你可以给比如 1day@followupthen.com 一类的地址发个邮件,1day 表示一天后,这样,一天后,你会收到他们的提醒邮件,1day 可以改成人和别的时间间隔。x2G平坦软件园

x2G平坦软件园
Divine: Conversion tool from PSD to HTML

这个工具是一个 Photoshop 插件,可以将你的 PSD 转换成 wordpress 主题。(译者:有待验证)x2G平坦软件园

x2G平坦软件园
Kaleido

为你的代码创建视觉化标识。来自麻省理工。x2G平坦软件园

x2G平坦软件园
Sketchpad

一个强大的在线图像编辑器。难能可贵的是,这是基于 HTML5 的。x2G平坦软件园

x2G平坦软件园
Unicode code converter

虽然界面有些乱,但这个工具能把一段文字转换成各种编码形式。x2G平坦软件园

x2G平坦软件园
Grid System Generator

另一个网格设计生成器。x2G平坦软件园

x2G平坦软件园
ud.com namecheck (强烈推荐)

这个看似简单的工具,可以帮你查询某个名字是否还可以注册域名,商标,已经社会媒体网络入口。x2G平坦软件园

x2G平坦软件园
Typograph — Scale & Rhythm

这个工具可以帮你即时预览各种不同的 Web 排版效果,并生成代码。x2G平坦软件园

x2G平坦软件园
ColorBrewer Intro – Selecting Good Color Schemes for Maps

适用于地图的配色工具。x2G平坦软件园

x2G平坦软件园
CSS Inliner Tool (推荐)

将独立的 CSS 定义转换为 Inline CSS。假如你使用电子邮件进行营销,会发现这种工具非常实用,因为邮件客户端常常会将你独立的 CSS 代码过滤掉,而 Inline CSS 不会被过滤。x2G平坦软件园

x2G平坦软件园
HTML Purifier – Filter your HTML the standards-compliant way!

这个使用 PHP 设计的工具,可以对你的 HTML 代码进行过滤,去除其中的恶意代码,并按 W3C 标准对代码进行净化。x2G平坦软件园

x2G平坦软件园
Rendera

在线编写 HTML5 和 CSS 代码,现场看到效果。x2G平坦软件园

x2G平坦软件园
RegExr

又一个在线学习,体验,测试正则表单式的地方。x2G平坦软件园

x2G平坦软件园
try ruby! (in your browser)

Ruby 在线体验。x2G平坦软件园

x2G平坦软件园
Google Command Line

使用命令符访问 Google 的一些产品和服务。x2G平坦软件园

x2G平坦软件园
Tiny Fluid Grid

又一个网格设计工具,很小巧。x2G平坦软件园

x2G平坦软件园
Fonolo.com

这个很别致的站点,可以帮你快速接通那些大公司的免费技术电话,不过目前只能用于美国和加拿大。x2G平坦软件园

x2G平坦软件园
Producteev: Creating To-Do Lists with Emails (推荐)

把重要的工作安排发到 task@producteev.com,他们会帮你生成一个任务列表,以便安排你的日程。x2G平坦软件园

x2G平坦软件园
AddUse – User research made easy

一个在线用户测试或调查管理工具。x2G平坦软件园

x2G平坦软件园
bookwhen (推荐)

帮助你的用户在线预订你的展会,课程等服务,免费版支持150个项目以及每月300个预订。x2G平坦软件园

版权声明:本文为博主原创文章,未经博主允许不得转载。

43月/11

垂直搜索引擎发展的几个方向

发布在 邵珠庆

《电子商务世界》  文/张晓宁

互联网发展至今,其间历经浮躁、追捧、泡沫、寒冬,现在正逐步向人们的日常生活消费、工作空间延伸。人们对互联网的需求也从最初的娱乐、聊天日益转为更加实际的衣、食、住、行、求医、求职等。人们获取信息的渠道从最初的几大门户发展到习惯使用Google、Baidu、Yahoo这些通用的搜索引擎。然而这些行业通用的搜索引擎能满足用户更加个性化、细化的信息需求吗?
最近很多人在讨论搜索引擎的发展趋势,普通认为垂直搜索将是下个潜力市场。从Yahoo推出旅游搜索、Goolge的本地搜索、Baidu的地图搜索、可以看出这些通用搜索巨头所面临的竞争和搜索引擎的发展趋势。如果说搜索引擎的发展方向是垂直搜索,那么垂直搜索的发展方向又是什么?

什么是垂直搜索?

所谓垂直搜索,是针对某一特定领域、某一特定人群或某一特定需求提供的有一定价值的信息和相关服务。其特点就是专、精、深,且具有行业色彩。它是与通用搜索引擎截然不同的引擎类型。垂直搜索引擎专注具体、深入的纵向服务,致力于某一特定领域内信息的全面和内容的深入,这个领域外的闲杂信息不收录。比如:用户搜索上海长宁区的可带宠物就餐的川菜馆的电话、菜单价格、交通指路等这就是一种垂直搜索。

搜索领域有句名言:就是用户无法描述知道他要找什么,除非让他看到想找的东西。微软研究院一名技术专家说:“75%的内容通用搜索引擎搜索不出来”。而垂直搜索引擎的诞生则是为了更大程度的提高搜索的“查全率”和“查准率”。正如一句英文所说的“Anything you can search at google you can buy on eBay”。垂直搜索引擎通过对行业领域内的信息模型和用户模型结构化的搜集或再组织,提供更多、更专业、个性化的行业相关服务。

垂直搜索引擎的特点

垂直搜索引擎的数据来源于哪里?其一来源于所处行业的相关站点,比如:找酒店、旅游信息的搜索引擎www.qunar.com 的数据来源于:www.ctrip.com www.elong.com、,www.24-hotel.com 等。
其二 来源于自身平台。
可能很多人认为来源于自身平台的搜索只能称为站内搜索,不应该定义成垂直搜索。我不同意这种观点。事实当某一平台上的信息达到足够量大的时候,比如eBay、taobao上的商品数量达上百万种你能说他的搜索不是垂直搜索吗?况且垂直搜索本身就是从这些行业站点提取出数据的。
比如:找餐馆的搜索引擎 www.Gudumami.cn (咕嘟妈咪) 的数据全部来源于它的加盟商户所发布的信息。
当然,eBay、taobao、Alibaba也属于垂直搜索引擎,从用户使用的行为过程来看也是先有搜索动作而后才会有交易,不过更多时候人们愿意称他们为b2b、c2c交易平台。
跟通用搜索引擎相比,垂直搜索引擎有哪些数据特性?垂直搜索引擎的数据倾向于结构化和格式化。比如在某个购物类的垂直搜索引擎上输入“mp3”就会出现,该产品的相关属性如:内存、尺寸、大小、电池型号、价格、生产厂家等相关技术属性,有的还提供比价服务。在某餐饮搜索引擎的高级搜索针对一家餐馆的搜索属性设置多达300个选项,把你想到和没想到都列出来了,这就把搜索服务专业化、细致化、个性化了。
当然,垂直搜索引擎的广告模式也不会再仅是通用搜索引擎的那些套路。除了排名和竞价之外,还很多种广告营利模式。比如,加盟收入、订单提成、会员会费收入、交易费用收入等。由于垂直搜索引擎能提供更为集中的受众群体,因此它的“单次点击有效率”相比通用搜索引擎更为有效,风险更小。

垂直搜索引擎的几个发展方向

更深化发展后,垂直搜索未来将发展到哪几个方向,是很多业内人士都在讨论的问题。笔者认为,它今后会向这几个方向发展。
首先,目录再分类。与早期的网址分类搜索引擎相似,垂直搜索引擎只选定了某一特定行业或某一主题进行目录的细化分类,结合机器抓取行业相关站点的信息提供专业化的搜索服务。这种专业化的分类目录(或称主题指南、列表浏览),很容易让用户迅速知道自己要找的是什么,并且按目录点击就能找到。
最近Looksmart在日本推出了专门搜索饮食方面文章的垂直搜索引擎LooksmartJapanesefood,这是Looksmart第一个国外垂直搜索引擎。Looksmart甚至一口气推出了多达19个独立的垂直搜索引擎,分别涉足汽车、城市、教育、健康、家庭生活、赚钱、音乐、娱乐、运动、时尚、科技游戏、 旅行。另个五个teenja.com、gradewinner.com、21hoursholar.com、Parentsufr.com、gobelle.com分别针对青少年 、大学生、tweens、父母、女性。
其次,垂直搜索引擎的第二个发展方向是深度挖掘型搜索,其特点是“元数据模型再组织、再整合、深度数据挖掘、互动性”。
通过对元数据信息进入深度加工,该类垂直搜索引擎为用户提供网页搜索引擎无法做到的专业性、功能性、关联性、有的加入了用户信息管理以及信息发布互动功能,能很好地满足了用户对专业性、准确性、功能性、个性化的需求。 Healthline是医疗行业垂直搜索引擎它保证网上所有医疗信息都在你掌握之中。进入healthline的网站,你会发现他简直就是一个无所不知的医生。
Healthline 的医疗医疗垂直搜索平台使用使用组合语义查寻技术和全面消费健康分类学 。Healthline分类数据由超过850,000项医疗相关元数据, 和50000 条相互关连的医疗概念组成。 这些独特资源使Healthline 翻译每天用户使用语言以便精确地匹配医疗术语,使得消费者能迅速从结果中判断确切的需要信息。第三,垂直搜索可以向本地搜索拓展,其特点是借助于地图元素来发展。
到目前为止,各大搜索引擎Google、Yahoo、msn都推出了本地搜索而且都相对成熟。国内很多人把本地搜索理解等同于地图搜索,这是一种观念上错误。地图搜索只是本地搜索的一个功能元素,就像本地的天气预报一样。本地搜索的关键需求在于人们大多是在本地购物、就餐、娱乐、健身、修车、喝咖啡、工作等。简单地说,去一个什么样地方吃饭要比怎么去重要,地图只是确定和帮助你找到这个地方的工具。如果你不知道一家餐馆是否有你喜欢的菜,也不知道他的消费水平,更不知道他的服务水平及顾客评论,但你知道乘什么车能到达这家餐馆,那么你会选择这家餐馆吗?Map 不等于 local,但local一定包括map。不信你打开map.yahoo.com和Local.yahoo.com比较一下。国内的几大搜索引擎的本地搜索从2005年初开始到现在却仍停留在地图+黄页+公交指路的地图搜索水平阶段。只有中搜的“搜索北京”有点接近本地搜索,可惜没有加地图定位功能,仍停留在文本、图片展示的时代。国内做本地搜索的还有citysee等同样没提供地图定位功能。总体来说国内的本地搜索在数据挖掘、开放接口、信息共享方面和国外比存在很大差距,国外的垂直搜索已经形成了事实上的数据供应链关系。
第四种可能,垂直搜索引擎可以向搜索交易平台发展。
垂直搜索引擎由于自身对行业的专注,使得它可以提供行业信息深度和广度的整合提供更加细致周到的服务。对消费领域可以推出针对某一行业的搜索交易平台。比如美容搜索、餐饮搜索、购物搜索、机票旅游搜索。这种交易平台针对的是小型商家,比如一家川菜馆,一个只有几个人机票代理商,一家美容院。他们甚至没有自己的站点,有些电话号码都是用的是私人的,你114根本查不到,但他们确实需要通过开展电子商务来获得更多的顾客。

最近,healthline垂直搜索获得了1400万美元的融资,强力地刺激了人们对垂直搜索市场认可和期待。相信在未来几年的互联网搜索市场垂直搜索引擎一定会得到更大的发间和机会

 

微软MSN副总裁刘振宇也曾用一组数据说明了中文搜索的不足:

目前有35%的用户对搜索结果不满意并感到失望;50%的搜索结果不能满足用户的搜索需求;搜索结果中,有25%指向了毫不相关的网站。

一边是巨大的市场,一边是同质化环境下难以体现优势,二线搜索运营商们不约而同地盯上了垂直搜索领域。“相对综合搜索引擎的信息量大、查询不准确、深度不够等不可避免的缺陷,垂直搜索引擎则可以通过针对某一特定领域、某一特定人群或某一特定需求提供有一定价值的信息和相关服务。相比较综合搜索引擎的海量信息无序化,垂直搜索引擎则显得更加专注、具体和深入。”

271月/11

十天让你网站ip流量从十增至一万

发布在 邵珠庆

         1 搜索引擎网站推广法。如今的新手 站长,最热衷的就是这个短平快的方法。搜索网站的功能就是整合网络 资源,给网民找到最适合的网站内容,给其他网站带去流量 是其意想不到的副作用。
2 qq群网站推广法。用几十个qq,每个qq加入几十个群,每天发一遍网站。平均 50个qq*每个qq加入50个群*每个群50个人=75000人观看。如果qq更多,加入的群更多,加入的是大群,每个群的人数更多,则宣传效果更好。
3 软文网站推广法。写文章,或者引用好文章,里面巧妙地加入自己的网址 。一个是发到论坛 ,文章站,一个是发到博客 里。发到博客里有个好处,不会被乱删。
4 手机 网站推广法。wap网站、群发短信、彩铃提示等。手机的功能越来越强,小巧容易携带,以后手机的上网人数肯定超过电脑 人数。
5 论坛网站推广法。注册 几十个几百个论坛,每个论坛注册几十个帐号,把签名设为自己的网站。发表热门内容,自己顶自己帖子。注意换马甲,发布有争议性的标题内容。好的标题是论坛推广成败的100%。这里说的论坛是指泛论坛,包含留言本、论坛、贴吧等等一切网民可能聚集的地方。
6 邮件列表网站推广法。就是定期不定期的给网民发送电子杂志。
7 限制内容网站推广法。给网站内容分出访问等级,设置访问条件。给网民一个推广链接 ,网民只有推荐够一定访客或者注册会员后,才能访问该内容。非主流色彩爱情网站多用此方法,效果奇佳。
8 bt电驴哇嘎资源网站推广法。可以在音视频 文件里放入自己的网站,特别是在一些需要证书才能收看的视频文件里,甚至可以弹出网站。一些站长使用这种方法,借助最新的电影 上映时机,发布一个视频文件,就能搞到几十万的ip,效果绝对一流。
9 视频源flash网站推广法。如今的视频网站,都提供外部的访问接口。在别的网站、日志引用这些视频的同时,直接宣传了网站,扩大了网站的影响力。
10 提交到网址网站推广站,网站导航 站,网站目录站。
11 交换友情 链接网站推广法。这是最原始的网站推广网站。
12 无偿单向链接网站推广法。无偿给其他网站做链接,既能丰富自己网站的信息,而且在网民搜索别的站的时候,又可能出现自己的网页结果。
13 网站推广同盟网站推广法。单打独斗出不了英雄好汉,一个人的精力时间和聪明才智毕竟太小,因此,要懂得借用外力。几个站长联合在一起,达成宣传共识。在宣传自己网站的时候,顺便也捎带上别的网站。用同样的劳动,得到更多的收获。
14 流量统计网站推广法。在网站的所有页面上放置一个iframe页面引用代码 ,在所引用的页面上放上其他网站的统计器,用程序 代码控制变换统计id,当其他站长查看统计,浏览访问来路来源的时候,你的网站就出现了。一般的站长都会点击查看的,这种宣传方法效果很好,属于密不外传的绝招,很多人知道百度google 的威力就是从网站访问来路知道的。
15 内容联盟网站推广法。这个方法适合有服务器 资源的站长。提供一个平台 ,可以绑定其他网站的域名 ,把网站的头尾广告 位置送给其他站长,吸引其他网站加入。看似是为其他网站做嫁衣裳,实际上是在宣传自己的网站,扩大了网站知名度和影响。
16 做大做强网站推广法。比如门户站。让小网站以加自己网站的链接为荣。尽管很少有站从门户网站得到一星半点的好处,但是对强者天然的崇拜心理,仍然让无数站长不由自主地献身链接,并以此为光荣。至于人家是否留意和领情,则是另外一回事了。
17 客户端软件 插件网站推广法。有技术含量的站长可以采用此法。开发流行的网民常用的客户端软件,比如聊天工具 类软件qq,网络游戏 类工具,下载 工具类网站迅雷等等,都可以弹出窗口。效果奇好。

18 收费资源免费网站推广法。比如长久提供软件注册码,注册号,序列号,免序列号版软件,提高网站粘性。比如操作系统的ghost版本,养活了好几个日访问量几十万ip的网站。雨林木风番茄花园jujumao等。
19 在电子邮件落款里加入网址网站推广法。在电子邮箱的设置里,设置一下。以后写信就会自动加上,自己就省事不少。
20 网上竞赛网站推广法。比如美女评比、网站评比等等各种资格赛的评比。
21 付费推广网站推广法。如果一些方法免费行不通。只要性价比合适,出去一个,可以收回两个,不妨付费推广。舍得舍得,舍不去的还会跑回来的。
22 设为主页和加入收藏网站推广法。如果你站的内容足够好,访问者也许愿意长期访问你的网站。在这一点上,要多费点心思提醒网民哦。
23 广场效应网站推广法。在身上衣服上画上网址,去人多的地方引人瞩目。最好是在记者出没的地方,容易产生新闻效应。因为记者整天没事干,最喜欢这类八卦事情。
24 事件连锁反应网站推广法。炒作。具体就是挑战人们的心理承受底线,锻炼人们的心理承受能力。
25 问答网站推广法。在一些知识类、知道类网站,回答别人的问题。或者自问自答。
26 百科网站推广法。去网上的百科全书添加内容。
27 站长交流网站推广法。多和其他站长交流,探讨推广方法。说不定什么时候就有意外惊喜。在和别人的经验交流中也往往会有灵感的火花跳跃。不要吝啬你自己的经验,在告诉别人的时候,也是地自己经验的一次提纯。
28 网页病毒网站推广法。利用其他网站的dns漏洞、服务 器漏洞,程序漏洞等,直接挂上自己的网站,迅速提高网站普及率。这是最强悍的另类推广方法。属于被清理的方法之列。
29 过路费网站推广法。如果你有电信等方面的资源,掌握了网页的传输通道,可以将每个网页都进行完善,加进你想加入的内容。
30 聊天室网站推广法。在各种聊天室推广。注意给出一个必须发链接的理由。
31 特殊资源网站推广法。比如高考查询 ,英语四六级查询等资源,是利益相关者不得不访问的。
32 模仿网站推广法。处处留心皆学问。学习其他网站的推广方法,看看其他网站的链接都出现在了什么地方,想办法依葫芦画瓢。模仿是创新的基础,创新是模仿的升华。创新=模仿+经验积累+批量化+自动化。
33 被动推广网站推广法。提高网站质量,做一个对网民有独特帮助的网站,让网民喜欢你的网站,让网民自发地传播你的网站,是效果最好的推广方法。

191月/11

Gmail SMTP example

发布在 邵珠庆

31月/11

Git一分钟上手

发布在 邵珠庆

2412月/10

一个优秀的研发团队应该具备什么特征

发布在 邵珠庆

1、计划执行:计划安排得当,不要老加班,不要老是现实和计划不匹配。不要做到哪儿计划就推后到哪儿。

2、研发成果:成功产出几个重影响力级别的、完整成块的、有成就感自豪感的产品或项目

3、团队氛围:这个团队每个人都相处的很融洽

4、团队协作:每个人都能找到自己擅长并喜欢做的事情。团队允许发出不同声音,不打击不反击。团队允许各种性格和背景的人都能存在并融洽存在。

5、团队协作:团队不要造成老是关键几个人忙死,其他人都在等这几个关键人完成核心事情后才能工作

6、团队氛围:团队有向往的发展愿景,有积极向上、努力拼搏的精神

7、团队氛围:团队有鼓励创新思考、尝试创新的机会和时间耐心

8、能力提升:部门经理注重团队每个成员的能力随时随地的指导、培养、给机会、给鼓励,给与做事方向和方法上的指导,给与心态上的主动慰问、沟通、倾听、理解、疏导

9、团队分享:部门经理注重团队成员之间的经验分享、每个人都在研究什么产出什么都在干什么的信息同步分享,产出成果大家共享,每个项目后的总结、交流、反思

10、方法论研发:积极探索研究更简化、更快速准确、更有效果提升开发效率、开发质量,缩短开发周期,降低开发难度、开发成本的分析方法、设计方法、架构方法、自动化工具、测试方法。

11、上下游协作:积极探索研究上下游紧密协作方法:让上下游分工明确,目标一致;让上游产出就是下游输入;让上下游计划、进展、变更、异常信息互相透明;

团队满意度、团队幸福感,皆来自于此。

2511月/10

A/B测试:实现方法

发布在 邵珠庆

上文介绍了 A/B 测试的基本概念 ,接下来我们继续探讨如何实现 A/B 测试

我们先来看一个图:

A/B testing 部署概念图
(注:感谢Algo 提供本图。)

上图展示了 A/B 测试的实现原理。从左到右,四条较粗的竖线代表了 A/B 测试中的四个关键角色:客户端(Client)、服务器(Server)、数据层(Data)、数据仓库(Data Warehouse)。从上到下代表了三种访问形式:无 A/B 测试的普通访问流程(Non AB test)、基于后端的 A/B 测试访问流程(Back-end AB test)、基于前端的 A/B 测试访问流程(Front-end AB test)。

一般情况下,用户在一次浏览中,会从客户端(Client)发起一个请求,这个请求被传到了服务器(Server),服务器的后台程序根据计 算,得出要给用户返回什么内容(Data),同时向数据仓库(Data Warehouse)添加一条打点信息,记录本次访问的相关信息。这个过程也就是图上横向的流程。数据仓库收集到足够的数据之后,就可以开始进行分析 (Analytics)了,这也即是图中右上角的部分。

A/B 测试需要将多个不同的版本展现给不同的用户,即需要一个“分流”的环节。从上图中我们可以看到,分流可以在客户端做,也可以在服务器端做。传统的 A/B 测试一般是在服务端分流的,即基于后端的 A/B 测试(Back-end AB test),当用户的请求到达服务器时,服务器根据一定的规则,给不同的用户返回不同的版本,同时记录数据的工作也在服务端完成。

基于后端的 A/B 测试技术实现上稍微简单一些,不过缺点是需要技术部工程资源介入,另外收集到的数据通常是比较宏观的PV(Page View)信息,虽然可以进行比较复杂的宏观行为分析,但要想知道用户在某个版本的页面上的具体行为往往就无能为力了。

基于前端的 A/B 测试则可以解决上面的问题。它的特点是,利用前端 JavaScript 方法,在客户端进行分流,同时,可以用 JavaScript 记录下用户的鼠标行为(甚至键盘行为,如果需要的话),直接发送到对应的打点服务器记录。这样的好处是不需要技术部(如果你们和我们一样,前端工程师与后 端工程师分属不同部门的话)参与,并且可以比较精确地记录下用户在页面上的每一个行为,甚至包括后端方法难以记录到的无效点击!

下面,我将重点介绍一下我们在基于前端的 A/B 测试上的一些实践。

一、分流

首先遇到的问题是如何分流的问题。对于大部分需求来说,我们希望各个版本的访问人数平均分配。解决办法有很多种,比较简单的一种即是前面提到过 的,根据某一个 Cookie ID 来划分用户,前提是你的网站上每一位访客在第一次访问时就要有一个不重复的 Cookie ID,比如“123.180.140.*.1267882109577.3”。然后,可以根据这个 Cookie ID 的最后一位(在本例中是“3”)来划分人群,比如单数的显示 A 版本,偶数的显示 B 版本。

因为 Cookie ID 一般设定后不会轻易改变,基于 Cookie ID 的好处是我们能很好地对访客保持一致性,某个用户如果第一次看到的是 A 版本,那他刷新后看到的还是 A 版本,不会一会儿看到 A 版本一会儿看到 B 版本。但不足之处就是如果用户浏览器不支持 Cookie 的话,分流就不能正常进行了。不过,现代浏览器默认情况下都是支持 Cookie 的,如果真有用户的浏览器不支持 Cookie ,那也应该是极少数特殊情况,对结果的影响非常微小,对于这些特殊情况,我们一般可以安全地忽略掉。

还有一点需要注意的是,A/B 测试的页面必须有较高的 UV (Unique Visitor,独立访客数),因为分流带有一定的随机性,如果页面 UV 太小,分到每一个版本的人数就更少,结果很有可能被一些偶然因素影响。而 UV 较大时,根据大数定理,我们得到的结果会接近于真实数据。就像想知道一个地方的成年人的平均身高,当然是取的样本越大结论越可信。

二、展示

决定向当前访问者显示哪个版本后,怎么用前端的方法加载对应的版本呢?这需要分情况处理。

一般情况下,如果两个版本只有一个较小的区域不一样,我们可以同时将两个区域的 HTML 都加载到当前页面中,先用 CSS 把它们隐藏起来(也可以默认显示一个版本),等 JS 判断出该显示哪个版本后,再控制对应版本的 CSS 显示。

有时候,测试区域比较大,代码比较多,或者需要后台较多的计算资源,如果一开始就把两个版本的 HTML 全加载到当前页面中,就会需要比较大的开销(比如带宽、后台计算量)。这种情况下,我们可以先把测试区留空,之后再用 Ajax 的方式延迟加载。

还有的时候,测试区域非常大,几乎占了整个页面,或者完全就是不同的页面,这时,用 Ajax 方式加载也不适合了,可以将不同的版本做成不同的页面,然后再用 JS 跳转。不过这样的方式并不是很好,因为前端 JS 跳转需要一定的时间,这个过程很有可能被用户感受到,并且留下不好的体验。对这个问题,似乎没有很好的解决办法,至少在前端层面很难完美解决,所以并不是 非常推荐这种跳转方式,如果真的需要跳转,最好是在服务器端由后端代码来操作。

三、数据采集

正确展示对应的版本后,就要开始采集需要的数据了。有一个可选的数据,是当前版本有多少 PV (Page Views,访问量),如果需要记录这个数据的话,在正确版本加载完成之时就要发送一个打点信息。不过很多需求中,具体版本的 PV 的精确数值可能不是很重要,而且要收集这个信息需要多一次打点操作,所以一般情况下这个数据是可选的。

必须的数据是测试区域内用户的点击信息。当用户在测试区域点击了鼠标左键(无论这个点击是点击在链接、文字、图片还是空白处),我们就需要发送一条对应的打点信息到打点服务器。一般来说,这个打点信息至少需要包含以下数据:

当前 A/B 测试以及版本标识
点击事件的位置
点击时间戳(客户端时间)
当前点中的URL(如果点在非超链接区域,此项为空)
用户标识(比如 Cookie ID)
用户浏览器信息

为了尽可能精确地还原用户的点击位置,我们的页面对前端有比较高的要求,要求页面在不同的浏览器下有基本一致的表现,至少在IE6、7、8以及 Fiefox 下,页面横向的元素要精确一致,纵向上很难做到完全一致,但也要尽可能保持统一。另外,这样的测试也不太适合自适应宽度的页面,比较适合定宽 的页面,为了避免不同分辨率下页面左右空白不同导致鼠标点击位置的不同,点击位置取的应该是相对于测试区域 左上角的位置。除此之外,最好再记录一下测试区域相对于页面内容左上角的位置,在后面还原点击分布图以及绘制热区图时会用到这个数据。

这一阶段的流程大致如下图所示:

A/B 测试打点生命周期

数据打点该如何发送以及如何存储呢?这要取决于你的打点服务器如何存储信息。

四、数据存储

我们使用了一台专用的服务器收集打点信息,为了能支持尽可多尽可能密集的打点请求,这台服务器的 apache 服务网站目录下只有两个静态文件,分别是 abtest.html 和 abtest.gif ,两者都是非常小的空白文件(空白图片)。访客端进行打点时,只需要以 GET 的方式带上相关的参数请求两个文件中的任意一个即可。比如:

http://abtest.xxx.com/abtest.gif ?abid=1-a&clickBlockX=244&clickBlockY=372&clickBlockW=392&clickBlockH=76&clickTime=1263264082137&clickRX=233&clickRY=47&clickURL=&clickBeaconID=123.180.140.*.1267882109577.3&browserType=FireFox

这个请求可以通过 Ajax 的方式发送,也可以通过 JS 在页面上创建 new Image() 对象的方式完成。

对打点服务器来说,这只是一条普通的 HTTP 请求,它会在日志里留下一条普通的日志记录,形如:

123.180.140.* - - [13/Jan/2010:15:21:15 +0800] "GET /abtest.gif?a=123&b=456&c=789 HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.6 (KHTML, like Gecko) Chrome/4.0.266.0 Safari/532.6"

可以看到了,除了 JS 发送给我们的信息外,Apache 还帮我们记录了一些信息,比如访客 IP 、服务器时间、用户浏览器信息。

对于数据记录和存储来说,到这一步就足够了。Apache 静态文件 + 日志的方式足够高效,基本不用担心性能的问题。剩下的,就是另外一个问题,如何从 Apache 日志中读取打点信息并加以分析,这已经和前端无关了,并且是一个比较复杂的问题,将在后续日志中介绍。