25
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SkyLabを利用したiOSアプリケーションのABテスト

Posted at

なんかABテストとか最近ますます重要じゃないすか。Kaizen Platformとか話題だし、日本以外にもスタートアップたくさんできてるし。
ただKaizen Platformはネイティブアプリにまだ対応してないんですよね。残念。
iOSで簡単にABテストするやり方はいろいろあるかもですが、我らが mattt 先生が素敵なライブラリを作ってくれてるので紹介です。

#SkyLabとは
すごくシンプルなABテスト向けライブラリです。ABだけでなく複数のパターンにも対応してます。使い方みれば一目瞭然です。

#使い方

2パターンの場合

AとBブロックのどちらかが50%の割合で実行されます。

[SkyLab abTestWithName:@"Title" A:^{
    self.titleLabel.text = NSLocalizedString(@"Hello, World!", nil);
} B:^{
    self.titleLabel.text = NSLocalizedString(@"Greetings, Planet!", nil);
}];

複数パターンの場合

指定した重みづけの割合で、選択された値がブロックの実行結果として実行されます。

[SkyLab splitTestWithName:@"Subtitle" choices:@{
    @"Red" : @(0.15),
    @"Green" : @(0.10),
    @"Blue" : @(0.50),
    @"Purple" : @(0.25)
 } block:^(id choice) {
     self.subtitleLabel.text = NSLocalizedString(@"Please Enjoy This Colorful Message", nil);

     if ([choice isEqualToString:@"Red"]) {
         self.subtitleLabel.textColor = [UIColor redColor];
     } else if ([choice isEqualToString:@"Green"]) {
         self.subtitleLabel.textColor = [UIColor greenColor];
     } else if ([choice isEqualToString:@"Blue"]) {
         self.subtitleLabel.textColor = [UIColor blueColor];
     } else if ([choice isEqualToString:@"Purple"]) {
         self.subtitleLabel.textColor = [UIColor purpleColor];
     }
}];

これ便利なのが、WithNameに指定した名前で一旦実行すると、その後同じ名前を実行すれば同じ結果が帰ってきます。結構ABテストのパターンが増えると、表示ロジックもそうだし、ロギングするロジックとかも増えると難しくなりがち(僕だけかも)なんすけど、これだと箇所箇所でこのブロック実行してロジックかけばいいから楽っす。

また、ABテスト結果は、サーバ側にログ送らないと集計できませんが、その部分はこのライブラリでは面倒見てくれません。そこはGoogle AnalyticsとかFlurryとかに上手くログを送って簡単に集計するのがよさそうです。

海外のABテスト関連のスタートアップ

Apptimize
http://apptimize.com/

Leanplum
https://www.leanplum.com/

clutch.io
https://github.com/clutchio

一番下のclutch.io は、Twitterに買収される前まではサービスとして存在してたようですが、いまはサービスは停止されてオープンソース化されてます。
一番上のApptimizeだけ少し使ってみましたが、リアルタイムに結果がわかって、かつサーバサイドでABテストの実行をON/OFFできたりすごく便利なんですが、価格が多少高いのと、重み付けの設定方法がいまいちだったので継続利用はやめました。

25
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?