• Feeds

  • Facebook平台设计(一)

    为了研究Facebook platform的设计, 我们可以从最早的第一个版本f8 07开始了解,当时是由Facebook创始人兼CEO Mark Zuckerberg 在2007年5月f8开发者会议上发布的。根据当时的数据是,50%以上的Facebook用户会每天都访问Facebook,超过同行3倍以上。

    为了理解Facebook平台,我们可以从Facebook相册说起。Facebook相册虽然只提供了最简单的特性,比如不能存高像素原图,没有编辑工具等,非常简单,但是Facebook的相册流量是是其他所有相册(Flickr, Picasa…)流量之和的2倍以上。为什么?这就是Mark介绍的Social Graph的力量。

    1. 用户A上传图片,他所有好友都能看到。

    2. 用户A继续在图片上tag people(标注图片上的好友),这个tag的图片会出现在被tag好友B profile wall上,接着B的好友接着可以看到这个图片(受privacy设置控制,默认开启)。

    特别是第2点它扩大了传播范围,在Facebook认为,第2点比1更为重要,Facebook平台的意义就是在这里。”we build the platform optimize for build apps for social graph”,开放平台的意义就是让扩展应用将social graph发扬光大。

    “在Facebook开放平台以前,social network封闭式平台,但是今天这种情况结束了”

    Facebook Platform的三大目标

    1. Apps深度整合到Facebook平台(Deep Integration Into Facebook Website)

    • app可以集成到用户profile
    • app拥有独立的首页(canvas page),首页完全是应用自己控制的,可放任何内容,包括广告。
    • app可以以用户身份发布feed
    • app可以发送消息,邀请,提醒等

    一个应用只要被用户授权访问他的profile之后,应用就可以调用api获取到比如user/friend/application/privacy information,Facebook API接口也值得各种平台设计者学习。比如用户API接口

    2. 病毒式的传播(Mass Distribution through the Social Graph)

    传播的核心是feed体系(从09年的眼光来看,Twitter的feed可能比它做得更出色,甚至造成了威胁,并进一步引发它最近的homepage改版)。App可以发布3种不同类型的Feed

    • application story,相当与应用添加提醒,比如A添加了某应用。
    • simple story, feed里面表现为一行文本。
    • full story, 详细,可以预览图片,视频等。

    关于feed可参看另外一篇技术分析文章:Facebook的feed格式设计

    App可以发送notification(提醒),request(邀请)。Facebook还提供平台级别的工具如friend selector供app使用。Facebook还通过应用嵌入到Profile通过exposure让更多的用户来使用,比如用户看到好友Profile某个应用有趣也会立即add。

    通过以上途径,促进应用的传播,促进信息的传播,促进人的社会化交流。

    3. 商业机会(New Business Opportunity)

    canvas page可以放任何广告,也可以进行电子商务进行销售,app可以获得所有收入。对于这两种方式,Facebook都是持支持态度。

    视频:Mark Zuckerberg Keynote Speech f8 2007
    http://www.facebook.com/video/video.php?v=28202665043&ref=mf

    老二应该怎样生存

    通常,对于有互斥关系的竞争产品如IM, 门户网站, SNS社交网站等,可替代性很强,有一个基本就满足用户需求了。而另外一些产品如游戏、社区、论坛等类型产品则相对共处能力比较强,大家基本可以和睦相处,就像看电影一样,用户需要看多部电影,需要经常看电影。

    对于有互斥竞争关系的产品,在产品设计和技术上并不难赶上对方。比如Office市场上,老二WPS Office在界面和操作上据说就和MS Office完全一致,除了Windows Title之外你可能感觉就像是在用Word。但是只凭这一点并不能明显带来用户数改善。因此可以认为简单copy并不能带来新用户。老二想要在市场占有率方面赶上老大则相对复杂,除了天时、地利、人和之外可能还需要一些其他因素。

    思考:
    1. Google为什么放弃独立发展Jaiku,而是有意去收购Twitter
    2. Microsoft/Yahoo!为什么搜索始终赶不上Google,或者根本没有带来丝毫威胁
    3. 腾讯的soso为什么动摇不了baidu

    上面的案例老二都不差钱,因此说明这不是钱的问题,那淘宝为什么又凭借免费战胜了易趣,后者与前者有什么区别呢,还是由于淘宝推出的时候市场还未饱和,淘宝抢占了蓝海?

    一些快乐的老二的例子:
    Mac OS X vs. Windows, 最近几年,Mac OS市场占有率在快速上升。
    Firefox vs. IE,Firefox吸引用户的可能有安全性,Tab浏览,完善的插件体系,而有些如安全性是IE的硬伤。

    或许只有凭借创新,老二才能在市场上脱颖而出,而简单copy可能是不够的。

    Facebook的feed格式设计

    SNS平台通常有各种格式的feed,如果考虑到feed需要在平台自身、扩展应用及第三方应用或客户端展示的话,通常需要一个统一的规范,而不是发布者本身随意输出最终展示的文字。而且也需要考虑图片、视频等在feed中的统一定义。在facebook它是这样实现的

    • feed是自描述的,即它不是由生产者决定最终格式,也不是前端决定。而是通过template机制来进行。
    • template在平台中可以由开发者注册,注册时需要定义字段及最终展示样式,如
    {*actor*} 在斗地主游戏中升到 {*credit*} 级
    • 发布的feed内容仅包含字段数据,也就是变量的值,json格式。
    {"credit": "80"}
    • 前端需要显示feed时候调用feed模板,再替换字段得到feed内容
    Tim 在斗地主游戏中升到 80 级
    • 模板需要定义两个,模板标题及模板内容(展示feed详细内容),前端根据需要决定只显示标题还是全部都显示。
    • “target”, “actor”是系统保留字段,代表目标对象和当前用户,{*actor*}必须放在模板标题开始位置。
    • “images”, “flash”, “mp3″, “video” 是系统保留字段,无需在模板中定义。但这些内容只会在详细feed界面输出。即只要feed内容里面有这个字段值,界面就会自动显示。
    • facebook文档中没有规定feed长度限制。
    • 每个开发者最多只能注册100个模板。

    参考资源:http://wiki.developers.facebook.com/index.php/Feed