このチュートリアルでは、次のことを行います。
- パートナー センターで、アプリ ボタンのテキストと色を表す複数のリモート変数を定義する実験 プロジェクト を作成します。
- リモート変数の値を取得し、このデータを使用してボタンの背景色を変更し、ログ ビューと変換イベント データをパートナー センターに戻すコードを含むアプリを作成します。
- プロジェクトで実験を作成して、アプリ ボタンの背景色を変更するとボタンのクリック数が正常に増加するかどうかをテストします。
- アプリを実行して実験データを収集します。
- パートナー センターで実験結果を確認し、アプリのすべてのユーザーに対して有効にするバリエーションを選択し、実験を完了します。
パートナー センターでの A/B テストの概要については、「 A/B テストを使用してアプリの実験を実行する」を参照してください。
[前提条件]
このチュートリアルに従うには、パートナー センター アカウントが必要です。また、「 A/B テストを使用してアプリの実験を実行する」の説明に従って開発用コンピューターを構成する必要があります。
パートナー センターでリモート変数を含むプロジェクトを作成する
- パートナー センターにサインインします。
- 実験の作成に使用するアプリがパートナー センターに既にある場合は、パートナー センターでそのアプリを選択します。 パートナー センターにアプリがまだない場合は、 名前を予約して新しいアプリを作成 し、パートナー センターでそのアプリを選択します。
- ナビゲーション ウィンドウで、[ サービス ] をクリックし、[ 実験] をクリックします。
- 次のページの [プロジェクト] セクションで、[新しいプロジェクト] ボタンをクリックします。
- [新しいプロジェクト ] ページで、プロジェクト名として ボタンクリック実験 を入力します。
- [リモート変数] セクションを展開し、[変数の追加] を4回クリックします。 これで、4 つの空の変数行が作成されます。
- 最初の行に、変数名 buttonText を入力し、既定値 列に 灰色のボタン を入力します。
- 2 番目の行で、変数名として r を入力し、既定値 列に 「128」を入力します。
- 3 番目の行で、変数名として g を入力し、既定値 列に 128 を入力します。
- 4 番目の行で、変数名に b を入力し、[既定値] 列に「128」と入力します。
- 保存 をクリックし、SDK 統合 セクションに表示される プロジェクト ID の値をメモしておいてください。 次のセクションでは、アプリ コードを更新し、コードでこの値を参照します。
アプリで実験をコーディングする
Visual Studio で、Visual C# を使用して新しいユニバーサル Windows プラットフォーム プロジェクトを作成します。 プロジェクトに SampleExperiment という名前を付けます。
ソリューション エクスプローラーで、プロジェクト ノードを展開し、[参照] を右クリックし、[参照の追加] をクリックします。
参照マネージャーで、[ユニバーサル Windows] を展開し、[拡張機能] をクリックします。
SDK の一覧で、Microsoft Engagement Framework の横にあるチェック ボックス
選択し、[OK] クリック 。ソリューション エクスプローラーで MainPage.xaml をダブルクリックして、アプリのメイン ページのデザイナーを開きます。
ツールボックス から ボタン をページにドラッグします。
デザイナーのボタンをダブルクリックしてコード ファイルを開き、 Click イベントのイベント ハンドラーを追加します。
コード ファイルの内容全体を次のコードに置き換えます。
projectId変数を、前のセクションのパートナー センターから取得したプロジェクト ID 値に割り当てます。using System; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Media; using System.Threading.Tasks; using Windows.UI; using Windows.UI.Core; // Namespace for A/B testing. using Microsoft.Services.Store.Engagement; namespace SampleExperiment { public sealed partial class MainPage : Page { private StoreServicesExperimentVariation variation; private StoreServicesCustomEventLogger logger; // Assign this variable to the project ID for your experiment from Dev Center. private string projectId = ""; public MainPage() { this.InitializeComponent(); // Because this call is not awaited, execution of the current method // continues before the call is completed. #pragma warning disable CS4014 InitializeExperiment(); #pragma warning restore CS4014 } private async Task InitializeExperiment() { // Get the current cached variation assignment for the experiment. var result = await StoreServicesExperimentVariation.GetCachedVariationAsync(projectId); variation = result.ExperimentVariation; // Check whether the cached variation assignment needs to be refreshed. // If so, then refresh it. if (result.ErrorCode != StoreServicesEngagementErrorCode.None || result.ExperimentVariation.IsStale) { result = await StoreServicesExperimentVariation.GetRefreshedVariationAsync(projectId); // If the call succeeds, use the new result. Otherwise, use the cached value. if (result.ErrorCode == StoreServicesEngagementErrorCode.None) { variation = result.ExperimentVariation; } } // Get remote variables named "buttonText", "r", "g", and "b" from the variation // assignment. If no variation assignment is available, the variables default // to "Grey button" for the button text and grey RGB value for the button color. var buttonText = variation.GetString("buttonText", "Grey Button"); var r = (byte)variation.GetInt32("r", 128); var g = (byte)variation.GetInt32("g", 128); var b = (byte)variation.GetInt32("b", 128); // Assign button text and color. await button.Dispatcher.RunAsync( CoreDispatcherPriority.Normal, () => { button.Background = new SolidColorBrush(Color.FromArgb(255, r, g, b)); button.Content = buttonText; button.Visibility = Visibility.Visible; }); // Log the view event named "userViewedButton" to Dev Center. if (logger == null) { logger = StoreServicesCustomEventLogger.GetDefault(); } logger.LogForVariation(variation, "userViewedButton"); } private void button_Click(object sender, RoutedEventArgs e) { // Log the conversion event named "userClickedButton" to Dev Center. if (logger == null) { logger = StoreServicesCustomEventLogger.GetDefault(); } logger.LogForVariation(variation, "userClickedButton"); } } }コード ファイルを保存し、プロジェクトをビルドします。
パートナー センターで実験を作成する
- パートナー センターの「[ボタンクリック実験] [
] プロジェクト」ページに戻ります。 - [実験] セクションで、[新しい実験] ボタンをクリックします。
- [実験の詳細] セクションで、[実験名] フィールドに[ボタンのクリックを最適化]の名前を入力します。
- [View イベント] セクションで、[View イベント名] フィールドに userViewedButton と入力します。 この名前は、前のセクションで追加したコードに記録したビュー イベント文字列と一致します。
- [ 目標とコンバージョン イベント ] セクションで、次の値を入力します。
- [目標名 フィールドに、「ボタンクリックを増やす」と入力します。
- 変換イベント名 フィールドに、userClickedButton名前を入力します。 この名前は、前のセクションで追加したコードに記録した変換イベント文字列と一致します。
- [目標] フィールドで、[最大化] を選択します。
- [ Remote variables and variations]\(リモート変数とバリエーション \) セクションで、[ 均等に分散 ] チェック ボックスがオンになっていることを確認して、バリエーションがアプリに均等に分散されるようにします。
- 実験に変数を追加します。
- ドロップダウン コントロールをクリックし、buttonTextを選択し、[変数の追加]をクリックします。 文字列 Gray Button がバリエーション A 列に自動的に表示されます (この値はプロジェクト設定から派生します)。 [バリエーション B] 列に、青いボタンを入力します。
- もう一度ドロップダウン コントロールをクリックし、[ r] を選択して、[ 変数の追加] をクリックします。 文字列 128 は、 バリエーション A 列に自動的に表示されます。 バリエーション B 列に、1を入力します。
- もう一度ドロップダウン コントロールをクリックし、[ g] を選択して、[ 変数の追加] をクリックします。 文字列 128 は、 バリエーション A 列に自動的に表示されます。 バリエーション B 列に、1を入力します。
- もう一度ドロップダウン コントロールをクリックし、[ b] を選択して、[ 変数の追加] をクリックします。 文字列 128 は、 バリエーション A 列に自動的に表示されます。 バリエーション B 列に、を入力し、255と入力します。
- [
保存] をクリックし、[アクティブ化] をクリックします。
Von Bedeutung
実験をアクティブ化した後は、実験の作成時に [ 編集可能な実験 ] チェック ボックスをクリックしない限り、実験パラメーターを変更できなくなります。 通常は、実験をアクティブ化する前に、アプリで実験をコーディングすることをお勧めします。
アプリを実行して実験データを収集する
- 前に作成した SampleExperiment アプリを実行します。
- 灰色または青のボタンが表示されることを確認します。 ボタンをクリックし、アプリを閉じます。
- 同じコンピューターで上記の手順を数回繰り返して、アプリに同じボタンの色が表示されていることを確認します。
結果を確認し、実験を完了する
前のセクションを完了してから少なくとも数時間待ってから、次の手順に従って実験の結果を確認し、実験を完了します。
注
実験をアクティブ化するとすぐに、パートナー センターは、実験のデータをログに記録するためにインストルメント化されたすべてのアプリからデータの収集をすぐに開始します。 ただし、実験データがパートナー センターに表示されるまでに数時間かかる場合があります。
パートナー センターで、アプリの 実験 ページに戻ります。
[アクティブな実験
] セクションで、[最適化] ボタンのクリック クリックして、この実験のページに移動します。 [ 結果の概要 ] セクションと [結果の 詳細 ] セクションに表示される結果が、表示される内容と一致することを確認します。 これらのセクションの詳細については、「 パートナー センターで実験を管理する」を参照してください。
注
パートナー センターでは、24 時間の期間に各ユーザーの最初の変換イベントのみが報告されます。 ユーザーが 24 時間以内にアプリで複数の変換イベントをトリガーした場合、最初の変換イベントのみが報告されます。 これは、多くの変換イベントを持つ 1 人のユーザーが、サンプル ユーザー グループの実験結果を歪めないようにするためのものです。
これで、実験を終了する準備ができました。 [結果の概要] セクションの [バリエーション B] 列で、[スイッチ] をクリックします。 これにより、アプリのすべてのユーザーが青いボタンに切り替わります。
[OK]
クリックして、実験を終了することを確認します。 前のセクションで作成した SampleExperiment アプリを実行します。
青いボタンが表示されることを確認します。 アプリが更新されたバリエーションの割り当てを受け取るまでに最大 2 分かかる場合があることに注意してください。
関連トピック
- パートナー センターでプロジェクトを作成し、リモート変数を定義
- 実験用にアプリをコーディング
- パートナー センター で実験を定義する
- パートナー センター で実験を管理する
- A/B テスト を使用してアプリの実験を実行する