, c8 n) I$ Y$ Q) x, e, J所以……这个公司在代码中设计了几个基本核心算法: 5 F' E# [4 l1 h I. Q; s f
1. 一种止损的trigger,对于任何亏钱的广告,自动停止。 8 w B8 C( O6 |0 v6 z' L
2. 一个自动发布广告的cron,程序一直在扫描。一旦发现一些广告能赚钱,就自由组合这些广告元素再自动发布到广告系统里面。这样,就能出乎意料的发现一些更加赚钱的广告形式。 5 F" m) i F# S2 z, f% D1 P
3. 做了很多广告更新的算法,搞了一个自动化的A/B测试策略来针对Facebook广告价格的浮动,来更新广告的价格。 2 V; P( B. k, W8 m6 T4 z9 e5 o, F 4 U9 z" n: `, J$ R* u: `* E, F- P通过阅读这些算法让我感受很深。所谓的数据分析,不是一个产品经理跑到运维,数据库管理员或者工程师那里说:我现在要跟踪什么什么数据,你帮我出一下吧。然后再对着跑出来的数据琢磨这些数据是否合理。 : T4 _+ M0 X* s2 R3 b8 S2 {8 d
. y& F, x5 B, _4 C- ? ~ ?9 X在这个公司里,只要发现一个数据模式对收入有影响,就会直接编码到系统里,变成自动执行的代码。基于这样的数据导向原则,代码面临无穷多次的重构,因为谁也不知道,下一个数据模式会发生在哪个层面,哪几个数据之间会发生关系。 q7 C T0 l) ?6 p E. K. r, E. j% {- z5 Z5 Z
我觉得国内的不少公司,还在以daily report分析数据,还在说数据只是为了验证产品经理想法的阶段。这动作是不是太慢了? % |) ?, H q5 w$ y$ N u# g6 H! U2 r$ W+ O: a# [
接下来的话,随便说说,不一定有参考价值: 0 `" V8 ^1 t) Q8 j! u+ a1 `% v$ ~( h. D) x
1. 对于大多数网站,如果你想用数据为导向,必须建立系统级的A/B测试机制。对于界面层面的重构,一个产品经理+一个工程师,一天用这个系统一天至少能做3-4个。系统级别的A/B测试要能够保证快速上线,第一时间看到数据,一旦超过临界值直接结束测试、保留数据并生成报告(直接邮件发送,而不是让产品经理想起来跑到后台再查) * U: p+ V; g" _' ]$ V. Z# H! _0 I8 \+ a) t1 W
2. 对于做社交网站,或者有复杂用户数据模型的公司,要在界面呈现和用户数据之间建立匹配系统。这样产品经理可以设计几种呈现模式,丢到匹配系统中,过不了多久,就能发现用户对不同呈现的数据反映的不同,然后系统性地固化这种机制。 ; P! A, v6 |* D! J; A2 }% N9 Q6 f2 t, e# c6 d) W
3. 通过cookie或者用户登录信息,建立针对不同用户的内部tag系统,看这些tag在系统2里有没有明显差异。如果有就可以固化下来,用来提高关键指标。 & L* p! H& H1 v& q- V, S" A
" E& J4 K T% w- ^4 ^& d" f所以,我现在对于数据分析的感觉是: ' V- o/ Y$ f- K' r6 O4 Y& A1 d1.要提高一个数据指标,盯着它是没有用的。必须找到影响这个数据的另几个可操作性更强的数据指标,调整它们。 - \! B& `: D# R [$ N2 D+ {
2.分析数据的可能性要充分,充分分析的基础是测试充分多的可能性。如果你想测试图标的颜色从绿色变成红色会不会更好。那为什么不测试一下蓝色,紫色和黄色呢? 3 Z1 r l8 N$ m' |" `
3. 如果小规模数据已经可以说明问题,就没有必要延长测试时间,也没有必要扩大测试范围。 8 B4 l7 B5 _$ m9 \9 Y4. 要充分利用计算机来帮你做数据采集和分析,缩短数据分析的周期,降低数据分析的成本。 3 C0 t! }$ @+ I J$ p" F l0 Z9 }
5. 有必要的时候,可以让计算机帮你找pattern,因为计算机没有偏见。 ( X% D v$ b. B% A+ j7 y编辑于 2011-08-16