Firebase 원격 구성으로 Unity 게임에 대한 A/B 테스트 구현

1. 소개

이 Codelab에서는 Firebase 원격 구성으로 게임 계측 에서 수정한 샘플 게임 인 MechaHamster: Level Up with Firebase 에디션에 대해 A/B 테스팅을 사용하여 원격 구성 실험을 만드는 방법을 알아봅니다.

원격 구성을 사용한 A/B 테스트를 사용하면 앱의 UI, 기능 또는 참여 캠페인에 대한 변경 사항을 더 넓은 대상에게 출시하기 전에 대상 대상을 대상으로 테스트할 수 있습니다. 실험 결과를 사용하여 다음을 수행할 수도 있습니다.

  • 어떤 매개변수 값 변형이 수익 및 유지율과 같은 주요 측정항목을 개선하는지 결정합니다.
  • 어떤 사용자 하위 그룹이 어떤 변형을 선호하는지 알아보세요.
  • 다양한 매개변수 값 설정의 효과에 대한 추가 분석을 수행하기 위해 실험 데이터를 수집하고 저장합니다.

이것이 A/B 테스팅의 핵심입니다. 이를 통해 원격 구성을 위해 계측된 코드를 가져와서 원격 구성 조건(Google Analytics 사용자 속성 포함), 출시 비율, Analytics 전환 이벤트, 그리고 이들의 일부 조합.

먼저, 사용자 작업에 따라 사용자 속성을 설정하여 실험에 포함될 사람을 제어하는 ​​조건을 구현합니다. 그런 다음 Google Analytics 사용자 속성을 사용하여 실험에 포함될 클라이언트를 결정하는 A/B 테스팅 실험을 만듭니다. 그리고 마지막으로 해당 데이터를 사용하여 청중에 대해 더 많이 이해하게 됩니다.

무엇을 배울 것인가

  • 계측된 원격 구성 값을 사용하여 A/B 테스트를 설정하는 방법
  • A/B 테스트 승인 조건의 일부로 Google Analytics 사용자 속성을 사용하는 방법

전제 조건

필요한 것

  • iOS 및/또는 Android 빌드를 지원하는 Unity 2019.1.0f1 이상

2. 디버그 메뉴 활성화

프로젝트에는 디버그 메뉴가 숨겨져 있으며, 이 메뉴에 액세스할 수 있는 버튼이 게임에 존재하지만 현재 활성화되어 있지 않습니다. MainMenu 프리팹에서 액세스하려면 버튼을 활성화해야 합니다.

  1. Unity 편집기에서 Project 탭을 선택한 다음 Assets 아래에서 Hamster > Prefabs > Menus를 확장하고 MainMenu를 클릭합니다.

The Unity editor Project tab showing\nAssets. Hamster, Prefabs, Menus

  1. 프리팹 계층 구조에서 DebugMenuButton 이라는 비활성화된 하위 개체를 찾아 클릭하여 Inspector 탭에서 엽니다.

The Unity editor shows the Main Menu,\nwith DebugMenu disabled

  1. Inspector 탭 내에서 DebugMenuButton이 포함된 텍스트 필드 옆의 왼쪽 상단에 있는 상자를 선택하여 활성화하세요.

The Inspector tab for DebugMenuButton\nwith checkbox

  1. 프리팹을 저장합니다.

편집기나 장치에서 게임을 실행하면 이제 메뉴에 액세스할 수 있습니다.

3. 원격 구성 하위 메뉴 활성화

  1. Unity 에디터의 프로젝트 탭에서 Assets > Hamster > Prefabs > Menus를 확장하고 DebugMenu 개체를 두 번 클릭하여 편집기 Hierarchy 탭에서 엽니다.

    DebugMenu item nested under Assets,\nHamster, Prefabs, Menus
  2. Hierarchy 탭에서 계층을 확장하고 DebugMenu > Panel 아래에서 Remote Config Actions 라고 표시된 하위 개체를 클릭합니다.

Remote Config Actions nested under\nCanvas, DebugMenu

  1. Unity Inspector 탭에서 객체 이름이 포함된 텍스트 필드 왼쪽에 있는 상자를 선택하여 원격 구성 작업을 활성화합니다.

Unity editor with Remote Config\nActions enabled under DebugMenu, Panel

여기에는 Set Bored Of Subtitle 및 Set Enjoys Subtitle이라는 두 개의 GameObject 하위 항목이 있으며, 둘 다 DebugMenu.cs 에서 기존이지만 구현되지 않은 메서드를 호출하도록 구성되어 있습니다.

4. 자막 재정의를 인앱 기본값으로 재설정

이전 Codelab 에서는 매개변수의 기본값을 JSON으로 재정의하고 조건을 사용하여 다양한 변형을 제공했습니다. 이 Codelab의 일부로 생성한 조건을 삭제하고 인앱 기본값을 다시 도입하며 A/B 테스트 결과로만 재정의합니다.

인앱 기본값을 다시 활성화하려면:

  1. Firebase 콘솔에서 원격 구성 페이지를 열고 subtitle_override 매개변수 옆에 있는 연필 아이콘을 클릭하여 매개변수 수정 측면 패널을 엽니다.
  2. 조건을 삭제하려면 조건 옆에 있는 X 아이콘을 클릭하세요.
  3. 나머지 기본값 옆에 있는 인앱 기본 사용 토글을 활성화합니다.

Deleting a condition from the Remote\nConfig parameter editor

  1. 저장을 클릭하여 변경 사항을 저장한 다음 변경 사항 게시를 클릭하여 변경 사항을 게시합니다. Publish\nchanges option on the Remote Config page

5. 디버그 기능에서 사용자 속성 설정

이제 DebugMenu.cs (자산 > Hamster > 스크립트 > 상태에서 찾을 수 있음)에서 사전 구성되었지만 구현되지 않은 일부 Google Analytics 함수에 대한 함수 본문을 작성하게 됩니다.

이러한 함수는 사용자 기반의 세그먼트를 설명하고 게임 자막에 대한 사용자의 느낌을 기록하는 데 사용되는 사용자 속성을 설정합니다 .

DebugMenu.cs 에서 기존 버전을 찾아 다음과 같이 덮어써서 SetUserBoredOfSubtitleSetUserEnjoysSubtitle 구현합니다.

void SetUserBoredOfSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}

앱이 Google Analytics로 올바르게 구성된 경우 다음 함수 중 하나를 호출하여 속성을 원격 구성 조건에 사용할 수 있도록 할 수 있습니다. 모바일 장치에서 SetUserBoredOfSubtitle 호출하려면 게임을 시작하고 메인 메뉴에서 디버그 메뉴 버튼을 누른 다음 자막의 지루함 설정을 누르세요.

6. 맞춤 측정기준 만들기

다음으로, subtitle_override 에 대한 다양한 자막 변형을 설정하여 어떤 자막이 가장 적합한지 확인합니다. 그러나 A/B 테스트에서는 현재 자막( subtitle_sentiment 에 기록됨)에 대한 감정에 "지루함"이라는 단어가 포함된 사용자에게만 이러한 변형을 제공합니다.

맞춤 측정기준을 사용하여 Analytics 이벤트에 대한 맞춤 매개변수를 만들고 추적하게 됩니다. 자세한 내용은 맞춤 측정기준 및 측정항목을 참조하세요.

새 맞춤 측정기준을 만드는 방법은 다음과 같습니다.

  1. Firebase 콘솔을 열고 Analytics 메뉴를 확장한 후 맞춤 정의를 선택합니다.
  2. 맞춤 정의 페이지에서 맞춤 측정기준 만들기를 클릭합니다.
  3. 새 맞춤 측정기준 창에서 측정기준 이름을 '자막 감정'으로 설정하고 범위 드롭다운에서 사용자를 선택합니다.
  4. 사용자 속성 필드에서 subtitle_sentiment.

7. A/B 테스트 실험 설정

다음으로, 2~3일 사용자 유지를 최적화하기 위해 서로 테스트할 subtitle_override 에 서로 다른 값을 설정하는 A/B 테스팅 실험을 만듭니다.

  1. 먼저 Firebase 콘솔 원격 구성 페이지subtitle_override 매개변수에서 편집을 선택합니다.

The subtitle_override parameter on\nthe Remote Config page, showing the Edit option.

  1. 표시되는 매개변수 편집 대화상자 내에서 새로 추가를 클릭합니다.

The Add new experiment option on the\nRemote Config Edit parameter page.

  1. 표시되는 목록에서 실험 을 선택합니다.

Remote Config parameter page: Add new\nexperiment

  1. 실험의 이름과 설명을 입력합니다.

Experiment name and description\nsection

  1. 다음으로 타겟팅 조건을 선택하세요. 먼저 드롭다운에서 앱을 선택하세요.

The Targeting step of an A/B Testing\nconfiguration, with an app selected

  1. 그런 다음 And를 클릭하여 새 조건을 추가한 다음 사용자 속성을 선택하고 subtitle_sentiment 선택합니다. 나타나지 않으면 수동으로 입력하세요.
  2. 현재 자막 감정에 "심심함"이 포함된 자막만 설정하려면 포함을 선택하고 bored 입력하세요.
  3. 선택적으로 위 기준과 일치하는 대상의 몇 퍼센트를 테스트에 노출할지 선택합니다. 쉽게 제어할 수 없는 임의성을 방지하려면 100%를 선택합니다.

A/B Testing Targeting section with\nsubtitle_sentiment selected

  1. 다음으로, 테스트에서 최대화하려고 시도할 목표를 선택합니다. 보존(2~3일)을 선택합니다.

A/B Testing Goals section

  1. 다음으로 실험 매개변수를 설정하고 다양한 자막 변형을 만듭니다. 이러한 변형은 subtitle_sentiment 에 '심심함'이 포함된 사용자에게 A/B 테스팅이 제공하는 다양한 값이며, A/B 테스팅은 유지율을 극대화하는 데 가장 적합한 변형을 결정합니다.
  2. 변형 A에 대해 다음 매개변수 값을 입력합니다.
    {"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
    
  3. 변형 B에 대해 다음 매개변수 값을 입력합니다.
    {"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
    
  4. 다음과 같이 정수로 변형 비율을 설정합니다.
    • 기준 : 1
    • 변종 A : 100
    • 변형 B : 100
    그러면 기준선의 총 가중치는 0.5%, 변형 A의 경우 49.8%, 변형 B의 경우 49.8%가 됩니다. Variant weights configuration\nsection 이러한 변형은 201번 중 1번은 A/B 테스팅이 자막이 지루한 사람들에게 기본값을 제공하지만 200/201번은 두 가지 새로운 값 중 하나를 제공하고 제목 화면을 재정의하도록 지정합니다.
  5. 실험 시작을 클릭하여 저장하고 제출한 후 확인 팝업에서 시작을 클릭하세요. Click Start to start the\nexperiment

8. 사용자 속성 설정 메서드를 실행하고 새로 고칩니다.

이제 사용자에 대한 다양한 속성을 설정했으며, 이를 사용하여 게임의 논리나 표현을 지시할 수 있습니다.

이전에 SetUserProperty 메서드를 실행하지 않았거나 이를 enjoys 로 설정한 경우에도 게임을 열 때 기본 자막이 표시됩니다.

bored (다시 가져오기 전)으로 설정한 경우 새 값 중 하나가 대략 50/50 비율로 표시되어야 합니다.

기기가 A/B 테스팅 실험에 들어가면 해당 실험에서 받은 값은 변경되지 않으며 설치마다 지속 됩니다. 결과적으로 다른 실험적 값 중 하나를 받으려면 동일한 장치/시뮬레이터에 게임을 다시 설치하거나 새 장치/시뮬레이터에 게임을 설치하여 새로 설치해야 합니다.

사용자 기반을 대상으로 실행되는 실제 A/B 테스트에서는 기준선에 다른 변형과 유사한 가중치를 부여해야 합니다. 하지만 이 경우 실험이 작동하는지 확인하기 위해 매우 편향된 확률을 할당합니다. (1/201의 경우) 여전히 기본값을 받는 경우 장치/시뮬레이터에 게임을 다시 설치해 보세요.

이것의 또 다른 효과는 사용자 속성을 다시 enjoys 로 전환해도 값이 다시 기준으로 변경되지 않는다는 것입니다. 그러나 다시 enjoys 로 전환하고 다시 설치하면 이 작업을 수행할 수 있습니다.

9. 축하합니다!

원격 구성 A/B 테스팅을 사용하여 다양한 원격 구성 값을 실험하고 각 값이 Analytics 측정항목에 어떤 영향을 미치는지 확인했습니다.

우리가 다룬 내용

  • 계측된 원격 구성 값을 사용하여 A/B 테스트를 설정하는 방법
  • A/B 테스트 실험에 참여하기 위한 조건의 일부로 Google Analytics 사용자 속성을 사용하는 방법

다음 단계

실험이 끝나면 프로젝트의 실험 목록 에서 하나를 선택하여 무엇을 할지 결정할 수 있습니다. 하나를 "승자"로 선택하시겠습니까, 아니면 더 많은 실험을 수행하시겠습니까?