Dont trust the HiPPOs: A/B Testing Online Games Steve Collins CTO - - PowerPoint PPT Presentation

don t trust the hippos
SMART_READER_LITE
LIVE PREVIEW

Dont trust the HiPPOs: A/B Testing Online Games Steve Collins CTO - - PowerPoint PPT Presentation

Dont trust the HiPPOs: A/B Testing Online Games Steve Collins CTO / Swrve Me, me, me. 1986 1998 2007 2010 The HiPPO Highest Paid Persons Opinion http://www.kaushik.net - Occams Razor Blog Example #1 A B


slide-1
SLIDE 1

Steve Collins CTO / Swrve

Don’t trust the HiPPOs:

A/B Testing Online Games

slide-2
SLIDE 2

Me, ¡me, ¡me.

1986 1998 2007 2010

slide-3
SLIDE 3

The ¡HiPPO

Highest Paid Person’s Opinion

http://www.kaushik.net ¡-­‐‒ ¡Occam’s ¡Razor ¡Blog

slide-4
SLIDE 4

Example ¡#1

A B +218%

www.abtests.com ¡and ¡skritter.com ¡

slide-5
SLIDE 5

Example ¡#2

A B +102%

www.abtests.com ¡and ¡diythemes.com ¡

slide-6
SLIDE 6

“One ¡accurate ¡measurement ¡is ¡worth ¡1,000 ¡expert ¡opinions.” ¡

Admiral ¡Grace ¡Murray ¡Hopper

slide-7
SLIDE 7

Game Service

Game ¡Service

Dev. Beta

LAUNCH

Design

3 - 6 months

Minimum Viable Product Tune Dev

Update

Tune Dev

Update

Tune Dev

Update

Tune Dev

Update
slide-8
SLIDE 8

What is testing?

slide-9
SLIDE 9

A/B ¡Testing ¡Overview

  • 1. Split population
  • 2. Show variations
  • 3. Measure response
  • 4. Choose winner
  • 5. Deploy winner
slide-10
SLIDE 10

What ¡not ¡to ¡do...

Inflexible Error prone Complex Forces app update

slide-11
SLIDE 11

Solution: Data Driven Approaches

http://bit.ly/oWVvX3

slide-12
SLIDE 12

Serial ¡Cycles

Measure Dev

Update

Measure Dev

Update

Measure Dev

slide-13
SLIDE 13

Meta-data

button-­‑style 3D-­‑bevel call-­‑to-­‑action “Add ¡to ¡cart” colour Orange

!""#$%#&'($# =

ENG ART

!"#$%&'(&)*' !"#$%&'(&)*' !"#$%&'(&)*'

PM

slide-14
SLIDE 14

Serial ¡Cycles

Measure / Adapt Develop

ART ENG PM

00111011 10001110 00010000 01010101

Meta-data

slide-15
SLIDE 15

Dev

Update

Tune

Update

00111011 10001110 00010000 01010101
  • 1. Observe
  • 2. Tune
  • 3. Observe

Dev Tune

Meta-data

Parallel ¡Cycles

slide-16
SLIDE 16

Sessions

!"#$%$#$& '(&

!""#$% &'% !"#$% &'%

Build

Game Server

V2.3 V2.4

14 days

CDN / AppStore

slide-17
SLIDE 17

Sessions

!"#$%$#$& '(&

!""#$% &'% !"#$% &'%

Build

Game Server

V2.3 V2.4

2 days 12 days

Session 1 Session 2

!"#$%&$'()$

Session n

!""#$%#&'($# !""#$%#&'($#

CDN / AppStore

slide-18
SLIDE 18

Implementing Testing

slide-19
SLIDE 19

State ¡Hypothesis

Sales Before Sales After

slide-20
SLIDE 20

Agree ¡OEC ¡(overall ¡evaluation ¡criterion)

%age of players who purchase

slide-21
SLIDE 21
  • 1. ¡Split ¡population
slide-22
SLIDE 22

User ¡-­‐‒ ¡Bucket ¡Assignment

md5_hash(UUID ¡+ ¡testID) Consistent Unbiased Efficient Ensure users are bucketed independently for each test

slide-23
SLIDE 23

Split ¡population ¡(into ¡independent ¡groups)

!"#$ !"#$

Control Variant

!"#$ %"#$ %"#$

Control Variant 1 Variant 2

slide-24
SLIDE 24
  • 2. ¡Show ¡variations
slide-25
SLIDE 25

Testing ¡Architecture

!"#$%&$'()*$%

+$,"-","% ./%

0"12% 3% /%

!"#$%&'((#&)"% ! !"#$*+% !" ! ! !"#$%&'( )*( !"#$%&'()*)+) ! !"#$% &#'()*'% !
slide-26
SLIDE 26
  • 3. ¡Measure ¡response
slide-27
SLIDE 27

Statistics ¡of ¡testing

A n i n c r e d i b l y b r i e f s u m m a r y

  • f

. . .

slide-28
SLIDE 28

Conversions

Conversion ¡Event{

Item ¡Purchase Buy-­‐‒in Completed ¡Tutorial Fired ¡in-­‐‒game ¡event Added ¡a ¡friend Watched ¡movie ...

#players ¡= ¡n #conversions ¡= ¡r conversion ¡rate ¡= ¡r/n ¡= ¡p

slide-29
SLIDE 29

Binomial ¡Distribution

P[r, n] = n! (n − r)!r! pr(1 − p)n−r

Probability ¡of ¡r ¡successes ¡given ¡n ¡trials and ¡probability ¡of ¡success ¡p ¡per ¡trial

n ¡= ¡5, ¡p ¡= ¡0.3 n ¡= ¡100, ¡p ¡= ¡0.1 n ¡= ¡100, ¡p ¡= ¡0.1 n ¡= ¡1000, ¡p ¡= ¡0.05

slide-30
SLIDE 30

Binomial ¡Distribution

µ = np σ =

  • np(1 − p)

Run ¡100 ¡“experiments”, ¡n ¡= ¡1000, ¡p ¡= ¡0.05 and ¡compute ¡the ¡average ¡“conversion ¡rate” Expected ¡value ¡is ¡50 x ¡= ¡49.96

slide-31
SLIDE 31

Binomial ¡Distribution

Repeat ¡this ¡process... x ¡= ¡49.96 x ¡= ¡50.30 x ¡= ¡49.98 x ¡= ¡50.36

slide-32
SLIDE 32

Binomial ¡Distribution

10 ¡runs 100 ¡runs 1000 ¡runs 10000 ¡runs

Keep ¡repeating ¡this ¡process ¡and ¡plot ¡the ¡averages... These ¡are ¡sampling ¡distributions ¡of ¡the ¡mean

slide-33
SLIDE 33

Central ¡Limit ¡Theorem

As ¡n ¡increases, ¡the ¡sampling ¡distribution ¡of ¡the ¡mean ¡becomes ¡ “normal”, ¡independent ¡of ¡the ¡underlying ¡distribution

slide-34
SLIDE 34

The ¡Normal ¡Distribution

f(x) = 1 √ 2πσ2e− (x−µ)2)

2σ2

πσ2

−µ

slide-35
SLIDE 35

The ¡Null ¡Hypothesis

−µ

: x ! : x !

Accept Reject

H0 : x = µ

slide-36
SLIDE 36

Comparing ¡distributions

A B

H0 : µA = µB

slide-37
SLIDE 37

Type-­‐‒I ¡Error

A B

: µA = µB

False Positive

slide-38
SLIDE 38

Type-­‐‒II ¡Error

A B

: µA = µB

False Negative

slide-39
SLIDE 39

p-­‐‒Value

95% p-­‐‒value ¡= ¡area ¡outside ¡these ¡critical ¡points ¡= ¡0.05 ¡here 2.5% 2.5% The ¡probability ¡of ¡observing ¡ as ¡extreme ¡a ¡result assuming ¡the ¡null ¡hypothesis ¡ is ¡true

−µ

µ + 1.96σ

µ − 1.96σ

slide-40
SLIDE 40

Power

Required change Standard deviation Number of participants per group

n = (zα + zβ)2 σ2 δ2

n ! 16! 2 " 2

slide-41
SLIDE 41

n ! 16! 2 " 2

Control conversion rate = 5% Desired increase = 50% (i.e. to 7.5%) Standard deviation = 0.1

n = 256 (25 mins for 50k DAU game)*

( * assume 40% retention rate, even daily session distribution and 2 buckets in test)

slide-42
SLIDE 42

n ! 16! 2 " 2

Control conversion rate = 5% Desired increase = 5% (i.e. to 5.25%) Standard deviation = 0.1

n = 25,600 (20 hrs for 50k DAU game)

slide-43
SLIDE 43

n ! 16! 2 " 2

Control conversion rate = 5% Desired increase = 5% (i.e. to 5.25%) Standard deviation = 0.5

n = 640,000 (21 days for 50k DAU game)

slide-44
SLIDE 44

Challenges when Testing

slide-45
SLIDE 45

Primacy

  • News users behave differently to old users
  • Familiarity with existing UI / resources / items etc.

SOLUTION: Restrict tests to new users

slide-46
SLIDE 46

Causality

  • There may be many reasons for a change in test statistic
  • Seasonality, events, trends, errors, etc.

SOLUTION: use tight evaluation criteria (e.g. sales of item tested NOT overall revenue)

slide-47
SLIDE 47

Testing ¡QA

  • Tests can (will) introduce errors
  • Particularly with many variants

SOLUTION(s)

  • ramp-up, roll-back capability
  • force user bucket capability
slide-48
SLIDE 48
  • Daily, weekly, yearly
  • False signals
  • Ramp up bias

Temporal ¡Effects

SOLUTION

  • Run tests for sufficiently long to normalize for effects
slide-49
SLIDE 49
  • Multiple app-versions in flight
  • Resources may have changing schema
  • Can’t force upgrade always

Version ¡Control

SOLUTION(s)

  • Limit to one app-version; careful version control with schema
slide-50
SLIDE 50

Testing ¡in ¡Online ¡Games

...

slide-51
SLIDE 51

Death to HiPPOs

slide-52
SLIDE 52
  • Homework:
  • h=p://exp-­‐‒platform.com ¡-­‐‒ ¡Ron ¡Kovahi ¡et ¡al.
  • h=p://statisticsforexperimenters.net/ ¡-­‐‒ ¡George ¡Box ¡et ¡al.
  • h=p://www.kaushik.net ¡-­‐‒ ¡Occam’s ¡Razor ¡Blog
  • h=p://www.abtests.com/

!"#$%&'()*'&!($+'(,-(.$%/&#()001(2304'5$+6&%7809:( ;*%($+'(80%'&%'(,-(<8&$%=4(.+&$9(