A/B テストは、異なるグループのプレイヤーをゲームのいくつかの側面で比較するための、制御した条件下で行う実験です。テストするゲームの側面は、入力制御スキームなどの基本的なもの、異なる色処理のような表面的なもの、その間にあるようなものでもかまいません。A/B テストでは、実験中に収集した主要な指標を比較して、どのバリエーションがより良いかを分析するのに役立ちます。
A/B テストのしくみ
Unity Analytics A/B テストでは、実験のために定義したバリアントに基づいてプレイヤーをグループ分けします。各グループには、そのグループに指定したゲーム処置が適用されます。処置は、各バリアントグループに 1 つ、または、複数の Remote Settings で設定した値を割り当てることです。プレイヤーは、ランタイムに、グループの 1 つに割り振られます。割り振りは、バリアント割当率に基づいてランダムに行われます。そして、プレイヤーは割り振られたグループの Remote Settings の値を受け取ります。このように Remote Settings を用いて、アプリケーションのテストしたい局面をプレイヤーが体験するようにします。
A/B テストの主要な要素は次のとおりです。
Experiment (実験) — 異なるグループのプレイヤーに異なる処置を適用することによって行う実験です。
Variant (バリアント) — グループの数とそのグループへのプレイヤーの分布を定義します。バリアントの 1 つは、常にコントロールグループです。
Treatment (処置) — 実験に使用する Remote Settings と、各バリアントに設定する特定の値を定義します。
Goal (目標) — この実験で改善しようとしている Analytics の指標のことです。 実験では、目標の指標をバリアントグループと比較して、どの処置が最も望ましい効果を上げるかを見ることができます。
複数の実験を同時に実行することはできますが、中には複数の実験の処置を受けるプレイヤーもあるので、異なる実験が相互に影響を及ぼさないように注意する必要があります。例えば、一方でオンボーディングのチュートリアルのステップの順序を比較する実験を実行し、別の実験でチュートリアルのペースをテストすると、どちらの実験によって結果の変化がもたらされているかを解明することが難しくなります。この例では、相互の影響がかなり明白かもしれませんが、たとえ無関係と考えられる部分の実験でも互いに影響している場合があります。テストする側面が基本的な部分であるほど、また、実験のグループが大きくなるほど、実験どうしが互いに影響する可能性は増します。
Unity Analytics Dashboard からA/B テストを作成して実行します。 また、Remote Settings API を使用してアプリケーションに実験処置を実装する必要があります。
Experiment を作成するには以下の手順を行います。
プロジェクトの Analytics Dashboard に移動します。
A/B Testing をクリックして A/B Testing ページを開きます。
Create Experiment ボタンをクリックします。
Create new experiment ダイアログが開きます。
Experiment の名を入力します。
Create をクリックします。
Experiment が作成されたら、Goal、Variants、Treatments を定義します。
実験の Goal では実験処置が影響するように設計された Analytics 指標を決定します。 以下のどちらかを選択します。
Day 1 Retention — 初めてプレイしてから正確に 1 日後にゲームに戻ってきたプレイヤーの割合
Day 7 Retention — 初めてプレイしてから正確に 7 日後にゲームに戻ってきたプレイヤーの割合
実験のために生成された レポート には、実験のバリアントの指標の違いが表示されます。選択された Goal は、統計的に重要なデータを収集するために実験を実行しなければならない時間の長さにも影響します。例えば、Day 7 Retention を測定する実験は、Day 1 Retention を測定する実験よりも時間がかかります。
実験の Goal を選択するには以下の手順を行います。
Select Experiment Goal ボタンをクリックします。
ドロップダウンから目標を選択します。
Save をクリックします。
Experiment の Variants で A/B テストのプレイヤーグループと、各グループに割り当てるプレイヤーの割合を決定します。
Control グループは常に存在します。Control グループは現時点の、または、デフォルトの実験の処置を取得します。このグループは他のグループを比較する基準となります。
バリアントを加えるには、セクションの上部にある ADD ボタンをクリックします。グループの名前と割り当て率を記入します。すべてのグループの割り当て率の合計は 100% にします。Estimate 列には、各バリアントに 1 日に割り振られると予想されるプレイヤーの数が表示されます。
Valiant を削除するには、名前の横にあるゴミ箱のアイコンをクリックします。
実験の終了の予測時間は、統計的に有効な数のサンプルを得るのに必要な時間に基づきます。アプリケーションが多くのプレイヤー (DAU) を得て、実験のバリアントに割り振れるプレイヤー数が多くなるほど、予測時間は短くなります。
Variant を設定したら Save をクリックします。
実験に使用される設定を定義し、各グループにそれぞれの設定値を割り当てるには Treatments セクションを使います。
ADD ボタンをクリックして実験に設定を加えます。
設定が他のアクティブな実験で使用されていない限り、 Release 設定で作成した既存の Remote Settings を使用できます。Remote Settings ページには、コントロールグループに使用されるデフォルト値のみが表示されます。バリアントの設定は、A/B テストのページでのみ表示または変更できます。
Remote Settings ページに移動しなくても、新しい設定を作成できます。A/B テストで作成された設定は、Remote Settings ページには表示されません。実験の終了後も設定を使用したい場合は、同じ名前の Remote Setting を作成することができます。
Treatment を定義したら、Save をクリックします。
Remote Settings API を使用して、実行時に実験で定義された値にアクセスします。ゲームの設定にアクセスするときは、Treatments セクションに表示されている Settings 名をキーとして使用します。Remote Settings を コード で実装するか、Remote Settings コンポーネント を使用して、Unity インスペクターウィンドウで設定値にアクセスして適用することができます。
少なくとも 1 つの実験を作成した後に、A/B Testing ページに実験のリストが表示されます。
以下の手順で実験を始めます。
Status が Not Started の実験の名をクリックします。
Start Experiment ボタンをクリックします。
注意: 実験が開始されたら、変更はできません。変更すると実験が無効になってしまいます。
以下の手順で実験を終了します。
Status が Running の実験の名をクリックします。
Stop Experiment をクリックします。
注意: 実験を再度開始することはできません。
以下の手順でレポートを表示します。
Status が Ended の実験の名をクリックします。
Reporting セクションに実験結果が表示されます。
実験が終了したら、Reporting セクションで実験結果をレビューします。
レポートには、バリアントグループ、実験の目標となる指標、コントロールグループと比較された各バリアントの状況が表示されます (Significant の判断は、標準的統計有意水準、5% を使用)。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.