最初の実験を作成して実行するCreate and run your first experiment

このチュートリアルでは、次の作業を行います。In this walkthrough, you will:

  • 実験の作成プロジェクトパートナー センターのテキストと、アプリのボタンの色を表すいくつかのリモート変数が定義されます。Create an experimentation project in Partner Center that defines several remote variables that represent the text and color of an app button.
  • リモート変数の値を取得し、このデータを使用して、ボタンの背景色を変更する、ログ ビューをコードでアプリを作成し、イベント データの変換は、パートナー センターにバックアップします。Create an app with code that retrieves the remote variable values, uses this data to change the background color of a button, and logs view and conversion event data back to Partner Center.
  • アプリのボタンの背景色を変更するとボタンのクリック回数が正常に増えるかどうかをテストする実験をプロジェクトに作成します。Create an experiment in the project to test whether changing the background color of the app button successfully increases the number of button clicks.
  • アプリを実行して、試験的機能のデータを収集します。Run the app to gather experiment data.
  • パートナー センターで実験結果を確認、アプリのすべてのユーザーを有効にするバリエーションの 1 つを選択し、実験を完了します。Review the experiment results in Partner Center, choose a variation to enable for all users of the app, and complete the experiment.

A の概要についてはパートナー センターでのテストを B を参照してください/ A でアプリの実験を実行 B のテスト/For an overview of A/B testing with Partner Center, see Run app experiments with A/B testing.

前提条件Prerequisites

このチュートリアルを実行するには、パートナー センター アカウントが必要し、」の説明に従って、開発用コンピューターを構成する必要がありますA でアプリの実験を実行する B のテスト/します。To follow this walkthrough, you must have a Partner Center account and you must configure your development computer as described in Run app experiments with A/B testing.

パートナー センターで変数をリモートでプロジェクトを作成します。Create a project with remote variables in Partner Center

  1. パートナー センターにサインインします。Sign in to Partner Center.
  2. 実験の作成に使用するパートナー センターでアプリを既にがある場合は、パートナー センターでそのアプリを選択します。If you already have an app in Partner Center that you want to use to create an experiment, select that app in Partner Center. まだアプリがあるない、パートナー センターの場合の名前を予約することで、新しいアプリを作成するし、パートナー センターでそのアプリを選択します。If you do not yet have an app in Partner Center, create a new app by reserving a name and then select that app in Partner Center.
  3. ナビゲーション ウィンドウで、[サービス] をクリックし、[Experimentation] (試験的機能) をクリックします。In the navigation pane, click Services and then click Experimentation.
  4. 次のページの [プロジェクト] セクションで、[新しいプロジェクト] ボタンをクリックします。In the Projects section of the next page, click the New project button.
  5. [新しいプロジェクト] ページで、新しいプロジェクトの名前として「Button Click Experiments」と入力します。In the New project page, enter the name Button Click Experiments for your new project.
  6. [リモート変数] セクションを展開し、[変数の追加] を 4 回クリックします。Expand the Remote variables section and click Add variable four times. これで、空の変数行が 4 行追加されます。You should now have four empty variable rows.
  • 最初の行で、変数名として「buttonText」と入力し、[既定値] 列に「Grey Button」と入力します。In the first row, type buttonText for the variable name and type Grey Button in the Default value column.
  • 2 番目の行で、変数名として「r」と入力し、[既定値] 列に「128」と入力します。In the second row, type r for the variable name and type 128 in the Default value column.
  • 3 番目の行で、変数名として「g」と入力し、[既定値] 列に「128」と入力します。In the third row, type g for the variable name and type 128 in the Default value column.
  • 4 番目の行で、変数名として「b」と入力し、[既定値] 列に「128」と入力します。In the fourth row, type b for the variable name and type 128 in the Default value column.
  1. [保存] をクリックし、[SDK 統合] セクションに表示されるプロジェクト ID 値を書き留めます。Click Save and make note of the project ID value that appears in the SDK integration section. 次のセクションでは、アプリのコードを更新し、コードでこの値を参照します。In the next section, you will update your app code and reference this value in your code.

アプリで実験のコードを記述するCode the experiment in your app

  1. Visual Studio で、Visual C# を使用して新しいユニバーサル Windows プラットフォーム プロジェクトを作成します。In Visual Studio, create a new Universal Windows Platform project using Visual C#. プロジェクトに「SampleExperiment」という名前を付けます。Name the project SampleExperiment.

  2. ソリューション エクスプローラーで、プロジェクト ノードを展開し、[参照設定] を右クリックして [参照の追加] をクリックします。In Solution Explorer, expand your project node, right-click References, and click Add Reference.

  3. [参照マネージャー] で、[ユニバーサル Windows] を展開し、[拡張機能] をクリックします。In Reference Manager, expand Universal Windows and click Extensions.

  4. SDK の一覧で、[Microsoft Engagement Framework] の横にあるチェック ボックスをオンにして、[OK] をクリックします。In the list of SDKs, select the check box next to Microsoft Engagement Framework and click OK.

  5. ソリューション エクスプローラーで、MainPage.xaml をダブルクリックして、アプリでメイン ページのデザイナーを開きます。In Solution Explorer, double-click MainPage.xaml to open the designer for the main page in the app.

  6. [ツールボックス] からページにボタンをドラッグします。Drag a Button from Toolbox to the page.

  7. デザイナーでボタンをダブルクリックしてコード ファイルを開き、Click イベントのイベント ハンドラーを追加します。Double-click the button on the designer to open the code file and add an event handler for the Click event.

  8. コード ファイルのすべての内容を次のコードで置き換えます。Replace the entire contents of the code file with the following code. 割り当てる、projectId変数をプロジェクト ID前のセクションで、パートナー センターから取得した値です。Assign the projectId variable to the project ID value that you obtained from Partner Center in the previous section.

    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");
            }
        }
    }
    
  9. コード ファイルを保存して、プロジェクトをビルドします。Save the code file and build the project.

パートナー センターで、実験を作成します。Create the experiment in Partner Center

  1. 戻り、ボタン クリックして実験パートナー センターでのプロジェクト ページ。Return to the Button Click Experiments project page in Partner Center.
  2. [Experiments] セクションで、[New experiment] ボタンをクリックします。In the Experiments section, click the New experiment button.
  3. [実験の詳細] セクションで、[実験名] フィールドに「Optimize Button Clicks」と入力します。In the Experiment details section, type the name Optimize Button Clicks in the Experiment name field.
  4. [ビュー イベント] セクションで、[ビュー イベント名] フィールドに「userViewedButton」と入力します。In the View event section, type userViewedButton in the View event name field. この名前が、前のセクションで追加したコードで記録したビュー イベント文字列と一致することに注意してください。Note that this name matches the view event string that you logged in the code you added in the previous section.
  5. [Goals and conversion events] (目標とコンバージョン イベント) セクションで、次の値を入力します。In the Goals and conversion events section, enter the following values:
  • [Goal name] (目標名) フィールドに「Increase Button Clicks」と入力します。In the Goal name field, type Increase Button Clicks.
  • [コンバージョン イベント名] フィールドに「userClickedButton」という名前を入力します。In the Conversion event name field, type the name userClickedButton. この名前が、前のセクションで追加したコードで記録したコンバージョン イベント文字列と一致することに注意してください。Note that this name matches the conversion event string that you logged in the code you added in the previous section.
  • [目標] フィールドで、[最大化] を選択します。In the Objective field, choose Maximize.
  1. [リモート変数とバリエーション] セクションで、バリエーションがアプリに均等に配分されるように [均等に配布する] チェック ボックスがオンになっていることを確認します。In the Remote variables and variations section, confirm that the Distribute equally check box is selected so that the variations will be distributed equally to your app.
  2. 変数を実験に追加します。Add variables to your experiment:
    1. ドロップダウン コントロールをクリックし、[buttonText] を選択して、[変数の追加] をクリックします。Click the drop-down control, choose buttonText, and click Add variable. 文字列 Grey Button[バリエーション A] 列に自動的に表示されます (この値はプロジェクトの設定から派生します)。The string Grey Button should automatically appear in the Variation A column (this value is derived from the project settings). [バリエーション B] 列で、「Blue Button」と入力します。In the Variation B column, type Blue Button.
    2. もう一度ドロップダウン コントロールをクリックし、[r] を選択して、[変数の追加] をクリックします。Click the drop-down control again, choose r, and click Add variable. 文字列 128[バリエーション A] 列に自動的に表示されます。The string 128 should automatically appear in the Variation A column. [バリエーション B] 列で、「1」と入力します。In the Variation B column, type 1.
    3. もう一度ドロップダウン コントロールをクリックし、[g] を選択して、[変数の追加] をクリックします。Click the drop-down control again, choose g, and click Add variable. 文字列 128[バリエーション A] 列に自動的に表示されます。The string 128 should automatically appear in the Variation A column. [バリエーション B] 列で、「1」と入力します。In the Variation B column, type 1.
    4. もう一度ドロップダウン コントロールをクリックし、[b] を選択して、[変数の追加] をクリックします。Click the drop-down control again, choose b, and click Add variable. 文字列 128[バリエーション A] 列に自動的に表示されます。The string 128 should automatically appear in the Variation A column. [バリエーション B] 列で、「255」と入力します。In the Variation B column, type 255.
  3. [保存] をクリックし、[アクティブ化] をクリックします。Click Save and then click Activate.

重要

実験の作成時に [編集可能な実験] チェック ボックスをオンにしていないと、実験をアクティブ化した後で実験のパラメーターを変更できなくなります。After you activate an experiment, you can no longer modify the experiment parameters unless it you clicked the Editable experiment check box when you created the experiment. 通常は、アプリで実験のコードを記述してから実験をアクティブ化することをお勧めします。Typically, we recommend that you code the experiment in your app before activating your experiment.

アプリを実行して実験データを収集するRun the app to gather experiment data

  1. 前の手順で作成した SampleExperiment アプリを実行します。Run the SampleExperiment app you created earlier.
  2. 灰色または青色のボタンが表示されることを確認します。Confirm that you see either a grey or blue button. ボタンをクリックしてアプリを閉じます。Click the button and then close the app.
  3. 同じコンピューターで上記の手順を複数回繰り返して、同じボタンの色がアプリに表示されることを確認します。Repeat the above steps several times on the same computer to confirm that your app shows the same button color.

結果を確認して実験の実行を完了するReview the results and complete the experiment

前のセクションの手順を完了して少なくとも数時間経ってから、次の手順に従って試験的機能の実行結果を確認し、試験的機能の実行を完了します。Wait at least several hours after completing the previous section, and then follow these steps to review the results of your experiment and complete the experiment.

注意

実験を有効にするとすぐにすぐにパートナー センターが、実験用のデータをログにインストルメント化されている任意のアプリからデータの収集を開始します。As soon as you activate an experiment, Partner Center immediately starts collecting data from any apps that are instrumented to log data for your experiment. ただし、実験のデータがパートナー センターで表示される数時間がかかることができます。However, it can take several hours for experiment data to appear in Partner Center.

  1. パートナー センターでに戻り、実験アプリのページ。In Partner Center, return to the Experimentation page for your app.

  2. [アクティブな実験] セクションで、[Optimize Button Clicks] (ボタンのクリックを最適化) をクリックしてこの実験のページに移動します。In the Active experiments section, click Optimize Button Clicks to go to the page for this experiment.

  3. [Results summary] (結果の要約) セクションと [Results details] (結果の詳細) セクションに表示される結果が想定した結果と一致していることを確認します。Confirm that the results shown in the Results summary and Results details sections matches what you expect to see. これらのセクションの詳細については、次を参照してください。パートナー センターで実験を管理します。For more details about these sections, see Manage your experiment in Partner Center.

    注意

    パートナー センターでは、24 時間の期間に各ユーザーの最初の変換イベントのみを報告します。Partner Center reports only the first conversion event for each user in a 24-hour time period. ユーザーが 24 時間以内にアプリで複数のコンバージョン イベントをトリガーした場合は、最初のコンバージョン イベントのみ報告されます。If a user triggers multiple conversion events in your app within a 24-hour period, only the first conversion event is reported. これは、多数のコンバージョン イベントを使用する単一のユーザーによって、サンプルのユーザー グループの実験の実行結果が歪曲されないようにすることを目的としています。This is intended to help prevent a single user with many conversion events from skewing the experiment results for a sample group of users.

  4. これで、実験の実行を終了できるようになりました。Now you are ready to end the experiment. [Results summary] (結果の要約) セクションの [Variation B] (バリエーション B) 列で、[切り替え] をクリックします。In the Results summary section, in the Variation B column, click Switch. これで、アプリのすべてのユーザーが青色のボタンに切り替えられます。This switches all users of your app to the blue button.

  5. [OK] をクリックして、試験的機能を終了することを確認します。Click OK to confirm that you want to end the experiment.

  6. 前のセクションで作成した SampleExperiment アプリを実行します。Run the SampleExperiment app you created in the previous section.

  7. 青色のボタンが表示されることを確認します。Confirm that you see a blue button. 更新されたバリエーションの割り当てをアプリが受信するまでに、最大で 2 分かかる場合があります。Note that it may take up to two minutes for your app to receive an updated variation assignment.