1. 소개
이 Codelab에서는 Firebase 원격 구성으로 게임 계측에서 수정한 샘플 게임 MechaHamster: Level Up with Firebase Edition의 A/B 테스팅을 사용하여 원격 구성 실험을 만드는 방법을 알아봅니다.
원격 구성을 통한 A/B 테스팅을 통해 앱의 UI, 기능 또는 참여 캠페인의 변경사항을 더 많은 잠재고객에게 출시하기 전에 타겟 잠재고객을 대상으로 테스트할 수 있습니다. 실험 결과를 사용하여 다음을 수행할 수도 있습니다.
- 어떤 매개변수 값 대안이 수익 및 유지율과 같은 주요 측정항목을 개선할 수 있는지 확인합니다.
- 사용자의 하위 그룹에서 어떤 변형을 선호하는지 알아보세요.
- 다양한 매개변수 값을 설정했을 때의 효과에 대한 추가 분석을 위해 실험 데이터를 수집하고 저장합니다.
이는 A/B 테스팅의 핵심입니다. 원격 구성에 계측된 코드를 사용하여 원격 구성 조건 (Google 애널리틱스 사용자 속성 포함), 출시 비율, 애널리틱스 전환 이벤트 등의 조합을 바탕으로 클라이언트가 수신하는 값을 제어하는 실험을 시작할 수 있습니다.
먼저 사용자 액션을 기반으로 사용자 속성을 설정하여 실험에 포함될 대상을 제한하는 조건을 구현합니다. 그런 다음 Google 애널리틱스 사용자 속성을 사용하여 실험에 포함될 클라이언트를 결정하는 A/B 테스팅 실험을 만듭니다. 마지막으로, 이 데이터를 사용하여 잠재고객에 대해 더 자세히 파악합니다.
학습할 내용
- 계측된 원격 구성 값을 사용하여 A/B 테스팅을 설정하는 방법
- A/B 테스트 참여 조건의 일부로 Google 애널리틱스 사용자 속성을 사용하는 방법
기본 요건
필요한 사항
- iOS 또는 Android 빌드가 지원되는 Unity 2019.1.0f1 이상
2. 디버그 메뉴 사용
프로젝트에 디버그 메뉴가 숨겨져 있고, 이 메뉴에 액세스하는 버튼이 게임에 있지만 현재 사용 설정되지 않았습니다. MainMenu 프리패브에서 액세스하려면 버튼을 사용 설정해야 합니다.
- Unity 편집기에서 프로젝트 탭을 선택한 다음 애셋에서 햄스터 > Prefabs > 메뉴를 펼치고 MainMenu를 클릭합니다.
- prefab 계층 구조에서 DebugMenuButton이라는 사용 중지된 하위 객체를 찾아 클릭하여 Inspector 탭에서 엽니다.
- Inspector(검사기) 탭에서 왼쪽 상단 모서리에 있는 DebugMenuButton이 포함된 텍스트 필드 옆의 체크박스를 선택하여 사용 설정합니다.
- 프리패브를 저장합니다.
편집기나 기기에서 게임을 실행한다면 이제 메뉴에 액세스할 수 있습니다.
3. 원격 구성 하위 메뉴 사용 설정
- Unity 편집기의 Project(프로젝트) 탭에서 Assets(애셋) > Hamster(햄스터) > Prefabs > Menus(메뉴)를 펼치고 DebugMenu 객체를 더블클릭하여 편집기 Hierarchy(계층 구조) 탭에서 엽니다.
- Hierarchy(계층 구조) 탭에서 계층 구조를 펼치고 DebugMenu > Panel(디버그 메뉴 > 패널) 아래에서 원격 구성 작업으로 라벨이 지정된 하위 객체를 클릭합니다.
- Unity Inspector(검사기) 탭에서 객체 이름이 포함된 텍스트 필드 왼쪽의 체크박스를 선택하여 Remote Config Actions(원격 구성 작업)를 사용 설정합니다.
여기에는 Set Bored Of Subtitle 및 Set Ours Subtitle이라는 GameObject 하위 요소 두 개가 있으며, 둘 다 DebugMenu.cs
에서 기존 메서드 중 구현되지 않은 메서드를 호출하도록 구성되어 있습니다.
4. 자막 재정의를 인앱 기본값으로 재설정
이전 Codelab에서는 매개변수의 기본값을 JSON으로 재정의하고 조건을 사용하여 다양한 변형을 제공했습니다. 이 Codelab의 일환으로, 만든 조건을 삭제하고 인앱 기본값을 다시 도입하며 A/B 테스팅의 결과로만 이를 재정의합니다.
인앱 기본값을 다시 사용 설정하려면 다음 단계를 따르세요.
- Firebase Console의 원격 구성 페이지를 열고
subtitle_override
매개변수 옆에 있는 연필 아이콘을 클릭하여 매개변수 수정 측면 패널을 엽니다. - 조건 옆의 X 아이콘을 클릭하여 삭제합니다.
- 나머지 기본값 옆에 있는 인앱 기본값 사용 전환 버튼을 사용 설정합니다.
- 저장을 클릭하여 변경사항을 저장한 후 변경사항 게시를 클릭하여 변경사항을 게시합니다.
5. 디버그 함수에서 사용자 속성 설정
이제 사전 구성되었지만 구현되지 않은 일부 Google 애널리틱스 함수의 함수 본문을 DebugMenu.cs
(애셋 > 햄스터 > 스크립트 > 상태에서 찾을 수 있음)에 작성해 보겠습니다.
이러한 함수는 사용자층 세그먼트를 설명하는 사용자 속성을 설정하고 게임의 부제목에 대한 사용자의 생각을 기록하는 데 사용됩니다.
DebugMenu.cs
에서 기존 버전을 찾아 다음과 같이 덮어써 SetUserBoredOfSubtitle
및 SetUserEnjoysSubtitle
를 구현합니다.
void SetUserBoredOfSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}
앱이 Google 애널리틱스로 올바르게 구성되었다면 이러한 함수 중 하나를 호출하여 원격 구성의 조건에 속성을 사용할 수 있습니다. 휴대기기에서 SetUserBoredOfSubtitle
를 호출하려면 게임을 시작하고 기본 메뉴에서 디버그 메뉴 버튼을 누른 다음 Set Bored of Subtitle을 누릅니다.
6. 맞춤 측정기준 만들기
이제 subtitle_override
에 다양한 부제목 변형을 설정하여 가장 효과적인 부제목을 확인합니다. 하지만 A/B 테스트에서는 현재 부제목 (subtitle_sentiment
에 기록된 대로)에 '지루함'이라는 단어가 포함된 사용자에게만 이러한 대안을 제공합니다.
맞춤 측정기준을 사용하여 애널리틱스 이벤트에서 맞춤 매개변수를 만들고 추적합니다. 자세한 내용은 맞춤 측정기준 및 측정항목을 참고하세요.
새 맞춤 측정기준을 만드는 방법은 다음과 같습니다.
- Firebase Console을 열고 애널리틱스 메뉴를 펼친 후 맞춤 정의를 선택합니다.
- 맞춤 정의 페이지에서 맞춤 측정기준 만들기를 클릭합니다.
- 새 맞춤 측정기준 창에서 측정기준 이름을 '자막 감정'으로 설정하고 범위 드롭다운에서 사용자를 선택합니다.
- 사용자 속성 필드에서
subtitle_sentiment.
를 선택합니다.
7. A/B 테스팅 실험 설정
다음으로 A/B 테스팅 실험을 만들어 2~3일간의 사용자 유지율을 최적화하기 위해 subtitle_override
에 서로 다른 값을 설정하여 테스트합니다.
- 먼저 Firebase Console 원격 구성 페이지의
subtitle_override
매개변수에서 수정을 선택합니다.
- 표시되는 매개변수 수정 대화상자에서 새로 추가를 클릭합니다.
- 표시되는 목록에서 실험을 선택합니다.
- 실험의 이름과 설명을 입력합니다.
- 다음으로 타겟팅 조건을 선택합니다 먼저 드롭다운에서 앱을 선택합니다.
- 그런 다음 그리고를 클릭하여 새 조건을 추가하고 사용자 속성을 선택하고
subtitle_sentiment
를 선택합니다. 표시되지 않으면 직접 입력합니다. - 현재 자막 감정에 '지루함'이 포함된 자막만 설정하려는 경우 포함을 선택하고
bored
를 입력합니다. - 원하는 경우 위 기준과 일치하는 잠재고객의 비율을 선택하여 테스트에 노출할 수 있습니다. 쉽게 제어할 수 없는 임의성을 방지하려면 100%를 선택합니다.
- 그런 다음 테스트에서 극대화할 목표를 선택합니다. 유지 (2~3일)를 선택합니다.
- 다음으로 실험의 매개변수를 설정하고 다양한 자막 버전을 만듭니다 . 이러한 대안은
subtitle_sentiment
에 '지루함'이 포함된 사용자에게 A/B 테스팅이 제공하는 다양한 값이며, A/B 테스팅은 유지율 극대화에 가장 적합한 대안을 결정합니다. - 대안 A에 다음 매개변수 값을 입력합니다.
{"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
- 대안 B에 다음 매개변수 값을 입력합니다.
{"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
- 다음과 같이 정수로 대안 비율을 설정합니다.
- 기준: 1
- 대안 A: 100
- 대안 B: 100
- 실험 시작을 클릭하여 저장한 후 제출한 다음 확인 팝업에서 시작을 클릭합니다.
8. 사용자 속성 설정 메서드 실행 및 새로고침
이제 사용자에 관한 다양한 속성을 설정하여 게임의 로직이나 표현을 지시하는 데 사용할 수 있습니다.
이전에 SetUserProperty
메서드를 실행하지 않았거나 enjoys
로 설정한 경우 게임을 열 때 기본 부제목이 계속 표시됩니다.
다시 가져오기 전에 bored
로 설정한 경우 새 값 중 하나가 약 50/50 비율로 표시됩니다.
기기가 A/B 테스팅 실험에 참여해도 실험에서 수신한 값은 변경되지 않으며 설치마다 영구적입니다. 따라서 다른 실험 값 중 하나를 받으려면 게임을 동일한 기기/시뮬레이터에 다시 설치하거나 게임을 새 기기/시뮬레이터에 설치하여 새 설치를 생성해야 합니다.
사용자층을 대상으로 실행된 실제 A/B 테스트에서는 다른 대안과 유사한 가중치를 기준에 부여해야 합니다. 하지만 이 경우에는 매우 왜곡된 확률을 할당하여 실험이 효과가 있는지 검증합니다. (1/201의 경우) 여전히 기본값이 수신되면 기기/시뮬레이터에 게임을 다시 설치해 봅니다.
또 다른 효과는 사용자 속성을 다시 enjoys
로 전환해도 값이 기준으로 다시 변경되지 않지만 다시 enjoys
로 전환하고 재설치하여 변경할 수 있다는 것입니다.
9. 수고하셨습니다.
원격 구성 A/B 테스팅을 사용하여 다양한 원격 구성 값을 실험하고 각각이 애널리틱스 측정항목에 미치는 영향을 확인했습니다.
학습한 내용
- 계측된 원격 구성 값을 사용하여 A/B 테스팅을 설정하는 방법
- A/B 테스팅 실험에 참여하기 위한 조건의 일부로 Google 애널리틱스 사용자 속성을 사용하는 방법
다음 단계
실험이 종료되면 프로젝트의 실험 목록에서 실험을 선택하여 실험할 작업을 결정할 수 있습니다. '우승자'로 하나를 선택하시겠습니까? 아니면 실험을 더 수행하시겠습니까?