A/Bテストが難しいと思う理由と、4つの気をつけたいポイント

Webアプリケーションのアカウント登録フローを最適化しようとして、A/Bテストを実施することがよくあります。でも最近、「A/Bテストって難しい」って思うことが増えてきました。

何が難しいのか、どうすれば正しいA/Bテストを実施できるのか、悩みは日に日に大きくなるばかり。

この記事では、僕がA/Bテストが難しいと思う理由と、とある記事を読んで学んだ4つの気をつけたいポイントを紹介します。

A/Bテストのどこが難しいの?

最近、Web界隈でも目にすることが増えてきた「A/Bテスト」。

最近だと、Optimizely といったサービスを使うことで、自分のWebサイト・アプリに対してカンタンにA/Bテストを作成・実施できるようになってます。Railsを使ってWebアプリを開発しているのであれば、 split というGemを使うことで、さらに実施できるA/Bテストの幅が広げることもできます。

こんな風に、A/Bテストを作成したり実施するためのハードルはどんどん低くなっています。でも、最近そんなA/Bテストのことを「難しい」と思うようになったんです。

いったい何が難しいのでしょうか。僕が難しいと感じるのは「A/Bテストを実施をしたあとの、どのパターンを採用すべきかの判断」です。

例えば、とあるサービスのアカウント登録フローのA/BテストをA・B・C・Dという4パターンで実施したとして、登録率がそれぞれ以下のようになっていたとします。

  • A: 登録率 15%
  • B: 登録率 10%
  • C: 登録率 20%
  • D: 登録率 5%

この結果だけ見るとパターンCを採用した方がと思いますよね。でも例えば、登録率以外に「1週間後の継続利用率」を同様に計測していたとして、テスト結果が以下のようになっていた場合はどうでしょうか。

  • A: 登録率 15% / 継続率 10%
  • B: 登録率 10% / 継続率 15%
  • C: 登録率 20% / 継続率 5%
  • D: 登録率 5% / 継続率 20%

途端に判断が難しくなります。もし、登録率だけを見てパターンCを採用していたら、サービスの継続利用率が大幅に低下しちゃってたわけです。これは危ない。

アカウント登録率の改善を目的としてA/Bテストを実施した場合でも、「登録率だけを見てればいい」なんてことにはなりません。サービス全体に関わる、他の重要な指標の変化も考慮して採用するパターンを選択する必要があります。

でないと、知らない間に局所的な最適解を選んでしまい、「サービス全体をみたら何も改善していない、それどころか悪化していた」みたいな状況に陥ってしまうリスクがあります。

これが、僕が最近「A/Bテストは難しい」と感じる理由です。

救いの記事

じゃあ、A/Bテストをうまく扱うためにはどうすればいいのでしょうか。いろいろWebをさまよっているうちに。偶然以下のような記事を見つけました。

Testing Yammer’s Signup Flow — Yammer Product — Medium

この記事では Yammer というサービスで、アカウント登録フローのA/Bテストを実施した事例が紹介されています。パターンの詳細や実際のデータ、そこからどういう基準でどのような判断を行い、最終的にサービスに対してどのような変更を加えたのかが詳しく説明されている、素晴らしい記事です。

この記事からA/Bテストに関してたくさんのことを学ぶことができました。詳細は記事を読んでいただくとして、ここからは、記事を読んで僕が自分なりに学んだ「A/Bテストを実施する上で気をつけたい4つのポイント」を紹介します。

サービスにとって重要な複数の指標を計測する

先程も書きましたが、登録率を改善するためのA/Bテストだからといって、見るべき指標は登録率だけではありません

局所的な最適解に陥らないために、各パターンを経由してアカウント登録したユーザがその後どういった行動をするのか、サービスにとって重要な指標は、できるかぎりすべて計測しておく必要があります。

一週間あたりの利用日数、継続率、何かを投稿するタイプのアプリケーションなら投稿数、など計測すべき指標はアプリケーションによって様々です。ユーザがサービスのことを気に入ってくれているか、繰り返し使ってくれているかがわかる指標を計測するのが良いですね。

無視する指標を決める

もちろん、判断のもとになる指標の数が増えることで、指標が1つだけの時よりも判断が難しくなります。

判断をできるだけカンタンにするために、今回のA/Bテストでは「無視する」指標を決めて、判断のもとになる指標をの数を減らすことも重要です。

上の記事の中では「各指標のp値がある一定の値を超えた場合は、その指標を無視する」という基準で、指標の取捨選択が行われていました。このように、統計的な数値にもとづいて判断するのが良いですね。

指標に優先順位をつける

時には「ある指標は改善したけど、別の指標が悪化してしまった」なんてこともあるかと思います。

このような場合、サービスにとってどの指標が一番重要なのか、あらかじめ各指標に優先順位をつけておくことが大事です。

こうすることで「悪化した指標は、改善した指標よりと比べると重要でないので、このパターンを採用!」といった判断が行い易くなります。

上の記事では、重要な指標として「プロフィール写真のアップロードしたユーザ数」、あまり重要でない指標として「作成されたGroupの数」が挙げられていました。何が重要で、何が重要でないかは、本当にサービスによりけりですね。

どのパターンも採用しない勇気をもつ

せっかく頑張って企画したA/Bテストなので、新しいパターンのどれか一つを採用したい気持ちがあるかもしれません。いくら作成がカンタンになったとはいえ、手間はかかりますからね。

でも、登録率は向上したけどその他の重要な指標が低下してしまった場合など、どのパターンも採用すべきではない、つまり何も変化を加えるべきではない状況はありえます。

どのパターンを採用しない場合も、A/Bテストが無駄になるわけではありません。結果のデータからユーザの行動に関する様々な事実を学習をすることができます。

時には勇気を出して作成したパターンを捨てましょう。気を取り直して、データから学習したことを次のA/Bテストや機能追加に役立てましょう。

まとめ

僕がA/Bテストが難しいと思う理由と、記事を読んで自分なりに学んだ、A/Bテストを実施する上で気をつけたい4つのポイントを紹介しました。

  • サービスにとって重要な複数の指標を計測する
  • 無視する指標を決める
  • 指標に優先順位をつける
  • どのパターンも採用しない勇気を持つ

これからA/Bテストを実施する時は、以上を常に念頭においてみようと思います。

自分のためのメモとして、そして、A/Bテストに対して自分と同じような悩みを抱えている人にとって、少しでもお役に立てば。あと、ご意見・コメントお待ちしてます。

それでは!