|
以下内容是知乎看到的,转载过来。4 `& b* p6 n; v$ U/ h) W* ^
8 m% Q4 Z5 n' j; W1 c感觉这个实现起来好像也不难。过完年折腾下。
. @1 h$ \* W+ Z3 V; O* C0 U. R- K9 R0 D: p) u0 E' K" V; W: v9 H
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 J* B' e, @0 |, S: C3 f! p& _; K这几个月在一家为客户在Facebook上做广告的加拿大公司工作。简单说说他们对于数据的态度吧。这是一家小型Startup公司,总共不到20个人。其中4个人(包括我)是技术,剩下的除了CEO都是Account Manager。当然CEO很多时候也在做Account Manager的事情。
8 u. y' s1 T2 G! h4 a4 y' ?/ L8 _/ _; a. r, `% v6 u; e% @8 U% {
刚到这个公司的时候,觉得他们的code很烂,他们的数据库设计也很烂。后来才知道,当初startup的时候,是找了印度公司做外包的,他们对这个外包很不满意,所以一期项目搞定之后,就全部拿过来自己搞了。但是后遗症也留下了。 ( B- ]+ L1 P2 `4 I& d
: u y6 H4 L6 h( F! h7 _这个公司的数据模型很清楚,只要通过低于广告主给出的CPA价格能赚到钱,就想办法增加广告覆盖率。但是常识大家都明白,增加覆盖率很可能导致转化率下降。但是如果接受这个假设,那么就没有什么赚钱的机会了。恰恰是因为他们相信,除了常识之外,还有一些事情是经验之外的。
8 G- s) m' n4 u' F5 u0 `- W' S/ V H/ \8 P! u( z
比如说关键词……有些关键词对某些人有用,对另外一些人没用。如果不做数据挖掘,生想广告词或者关键词的组合,累死了也赚不到什么钱。
: L+ N. z& S! H3 n& Y/ V
6 c& c! H4 T! i所以……这个公司在代码中设计了几个基本核心算法: * w8 i6 c* _, a9 a
1. 一种止损的trigger,对于任何亏钱的广告,自动停止。 4 \/ K6 ~* y4 D6 P% b0 Q" o3 ]) o
2. 一个自动发布广告的cron,程序一直在扫描。一旦发现一些广告能赚钱,就自由组合这些广告元素再自动发布到广告系统里面。这样,就能出乎意料的发现一些更加赚钱的广告形式。
# h8 [' v8 Q w0 B3. 做了很多广告更新的算法,搞了一个自动化的A/B测试策略来针对Facebook广告价格的浮动,来更新广告的价格。
3 L, P4 h: \0 _* k" h/ k7 q; p. E" q) T% i% K! ~, Y" x- O6 ^
通过阅读这些算法让我感受很深。所谓的数据分析,不是一个产品经理跑到运维,数据库管理员或者工程师那里说:我现在要跟踪什么什么数据,你帮我出一下吧。然后再对着跑出来的数据琢磨这些数据是否合理。
4 k! W# J' ~( _" s6 k( k/ ]! o9 m+ L5 N3 j% y, ^6 J# L
在这个公司里,只要发现一个数据模式对收入有影响,就会直接编码到系统里,变成自动执行的代码。基于这样的数据导向原则,代码面临无穷多次的重构,因为谁也不知道,下一个数据模式会发生在哪个层面,哪几个数据之间会发生关系。
- m" D0 G, a3 o' E# F, Y8 x# D: x- K8 C' j0 C/ W: H
我觉得国内的不少公司,还在以daily report分析数据,还在说数据只是为了验证产品经理想法的阶段。这动作是不是太慢了? " ~6 ], m3 d& U/ ~9 t* N
. X/ ^ W& y1 c- U. f! H3 B M0 Z接下来的话,随便说说,不一定有参考价值:
- p( S' _! p; l. `0 }4 A
6 V* d& k4 @1 ]! g' z9 [; O- O1. 对于大多数网站,如果你想用数据为导向,必须建立系统级的A/B测试机制。对于界面层面的重构,一个产品经理+一个工程师,一天用这个系统一天至少能做3-4个。系统级别的A/B测试要能够保证快速上线,第一时间看到数据,一旦超过临界值直接结束测试、保留数据并生成报告(直接邮件发送,而不是让产品经理想起来跑到后台再查)
9 p# D) l% Y6 k4 J9 V+ C
9 `, n( F _7 s8 X) O) v+ T" A2. 对于做社交网站,或者有复杂用户数据模型的公司,要在界面呈现和用户数据之间建立匹配系统。这样产品经理可以设计几种呈现模式,丢到匹配系统中,过不了多久,就能发现用户对不同呈现的数据反映的不同,然后系统性地固化这种机制。
0 ?7 V6 N( ^0 D- ^+ {( P* C: A8 j% g5 z
" `+ O: v4 P& m! m! B2 n; w3. 通过cookie或者用户登录信息,建立针对不同用户的内部tag系统,看这些tag在系统2里有没有明显差异。如果有就可以固化下来,用来提高关键指标。
$ L4 K) _, i g( _) x0 v, @
& ]. @2 q* Q, ]* j所以,我现在对于数据分析的感觉是: % r% a3 s: W0 {; H6 O4 C/ z
1.要提高一个数据指标,盯着它是没有用的。必须找到影响这个数据的另几个可操作性更强的数据指标,调整它们。 9 A: J: w5 n; T2 W, S; [. ?4 F
2.分析数据的可能性要充分,充分分析的基础是测试充分多的可能性。如果你想测试图标的颜色从绿色变成红色会不会更好。那为什么不测试一下蓝色,紫色和黄色呢? 0 x8 j T2 {" Y2 E
3. 如果小规模数据已经可以说明问题,就没有必要延长测试时间,也没有必要扩大测试范围。
5 w! N8 I- p; ?8 ^" f( G4. 要充分利用计算机来帮你做数据采集和分析,缩短数据分析的周期,降低数据分析的成本。 ! ]+ H0 x* A& k1 m0 n+ H
5. 有必要的时候,可以让计算机帮你找pattern,因为计算机没有偏见。
+ ?! w$ o/ ?& c; t. S( k/ s编辑于 2011-08-16 |
|