첫 번째 실험 만들기 및 실행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.
  • 파트너 센터에서 실험 결과를 검토 하 고, 앱의 모든 사용자가 사용할 수 있도록 변형을 선택 하 고, 실험을 완료 합니다.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. 탐색 창에서 서비스 를 클릭 한 다음 실험을 클릭 합니다.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. 새 프로젝트 페이지에서 새 프로젝트에 대 한 이름 단추를 클릭 하 여 실험을 클릭 합니다.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 를 입력 하 고 기본값 열에 회색 단추 를 입력 합니다.In the first row, type buttonText for the variable name and type Grey Button in the Default value column.
  • 두 번째 행에서 변수 이름으로 r 을 입력 하 고 기본값 열에 128 을 입력 합니다.In the second row, type r for the variable name and type 128 in the Default value column.
  • 세 번째 행에 변수 이름으로 g 를 입력 하 고 기본값 열에 128 을 입력 합니다.In the third row, type g for the variable name and type 128 in the Default value column.
  • 네 번째 행에서 변수 이름으로 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 프레임 워크 옆의 확인란을 선택 하 고 확인을 클릭 합니다.In the list of SDKs, select the check box next to Microsoft Engagement Framework and click OK.

  5. 솔루션 탐색기에서 mainpage을 두 번 클릭 하 여 응용 프로그램의 기본 페이지에 대 한 디자이너를 엽니다.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. 실험 섹션에서 새 실험 단추를 클릭 합니다.In the Experiments section, click the New experiment button.
  3. 실험 세부 정보 섹션의 실험 이름 필드에 이름 최적화 단추 클릭 을 입력 합니다.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. 목표 및 변환 이벤트 섹션에서 다음 값을 입력 합니다.In the Goals and conversion events section, enter the following values:
  • 목표 이름 필드에 증가 단추 클릭을 입력 합니다.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. 문자열 회색 단추변형 열에 자동으로 표시 됩니다 (이 값은 프로젝트 설정에서 파생 됨).The string Grey Button should automatically appear in the Variation A column (this value is derived from the project settings). 변형 B 열에 Blue 단추를 입력 합니다.In the Variation B column, type Blue Button.
    2. 드롭다운 컨트롤을 다시 클릭 하 고 r을 선택한 다음 변수 추가를 클릭 합니다.Click the drop-down control again, choose r, and click Add variable. 문자열 128 는 열 변형 에 자동으로 표시 됩니다.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 는 열 변형 에 자동으로 표시 됩니다.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 는 열 변형 에 자동으로 표시 됩니다.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. 활성 실험 섹션에서 최적화 단추 클릭을 클릭 하 여이 실험 페이지로 이동 합니다.In the Active experiments section, click Optimize Button Clicks to go to the page for this experiment.

  3. 결과 요약결과 정보 섹션에 표시 된 결과가 필요한 내용과 일치 하는지 확인 합니다.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. 결과 요약 섹션의 변형 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. 확인 을 클릭 하 여 실험을 종료 하 고 있는지 확인 합니다.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.