1. 소개
이 Codelab에서는 Firebase 원격 구성으로 게임 계측에서 수정한 샘플 게임인 MechaHamster: Level Up with Firebase 버전에 A/B 테스트를 사용하여 원격 구성 실험을 만드는 방법을 알아봅니다.
원격 구성을 사용한 A/B 테스팅을 사용하면 앱 UI, 기능 또는 참여 캠페인의 변경사항을 더 광범위한 잠재고객에게 배포하기 전에 타겟 잠재고객을 대상으로 테스트할 수 있습니다. 실험 결과를 사용하여 다음 작업도 할 수 있습니다.
- 수익 및 유지율과 같은 주요 측정항목을 개선하는 매개변수 값 변형을 파악합니다.
- 어떤 사용자 하위 그룹이 어떤 대안을 선호하는지 알아보세요.
- 실험 데이터를 수집하고 저장하여 다양한 매개변수 값을 설정할 경우의 영향에 대한 추가 분석을 수행합니다.
이것이 A/B 테스팅의 핵심입니다. A/B 테스팅을 통해 원격 구성을 위해 계측된 코드를 사용하고 원격 구성 조건 (Google 애널리틱스 사용자 속성 포함), 배포 비율, 애널리틱스 전환 이벤트 및 이들의 조합을 기반으로 클라이언트가 받는 값을 제어하는 실험을 시작할 수 있습니다.
먼저 사용자 작업에 따라 사용자 속성을 설정하여 실험에 포함할 사용자를 제어하는 조건을 구현합니다. 그런 다음 Google 애널리틱스 사용자 속성을 사용하여 실험에 포함할 클라이언트를 결정하는 A/B 테스팅 실험을 만듭니다. 마지막으로 이 데이터를 사용하여 시청자층에 대해 자세히 알아봅니다.
학습할 내용
- 계측된 원격 구성 값을 사용하여 A/B 테스팅을 설정하는 방법
- A/B 테스트 참여 조건의 일부로 Google 애널리틱스 사용자 속성을 사용하는 방법
기본 요건
필요한 사항
- iOS 또는 Android 빌드를 지원하는 Unity 2019.1.0f1 이상
2. 디버그 메뉴 사용 설정
프로젝트에 디버그 메뉴가 숨겨져 있고 이 메뉴에 액세스하는 버튼이 게임에 있지만 현재 사용 설정되어 있지 않습니다. MainMenu 프리햏에서 액세스하려면 버튼을 사용 설정해야 합니다.
- Unity 편집기에서 Project(프로젝트) 탭을 선택한 다음 Assets(애셋)에서 Hamster(햄스터)를 펼칩니다. 프리패브 > Menus로 이동한 다음 MainMenu를 클릭합니다.
- prefab 계층 구조에서 DebugMenuButton이라는 사용 중지된 하위 객체를 찾아 클릭하여 Inspector 탭에서 엽니다.
- Inspector(검사기) 탭에서 DebugMenuButton이 포함된 텍스트 필드 옆에 있는 체크박스를 선택하여 사용 설정합니다.
- 프리탸를 저장합니다.
편집기 또는 기기에서 게임을 실행하면 이제 메뉴에 액세스할 수 있습니다.
3. 원격 구성 하위 메뉴 사용 설정
- Unity 편집기의 프로젝트 탭에서 애셋을 펼칩니다. 햄스터 > 프리패브 > Menus로 이동한 다음 DebugMenu 객체를 더블클릭하여 편집기 Hierarchy(계층 구조) 탭에서 엽니다.
- 계층 구조 탭에서 계층 구조를 펼치고 DebugMenu > Panel 아래에 있는 원격 구성 작업이라는 하위 객체를 클릭합니다.
- Unity 검사기 탭에서 객체 이름이 포함된 텍스트 필드 왼쪽의 체크박스를 선택하여 원격 구성 작업을 사용 설정합니다.
여기에는 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
(애셋 > Hamster > 스크립트 > 상태에서 찾을 수 있음)에 작성합니다.
이러한 함수는 사용자층 세그먼트를 설명하는 방법인 사용자 속성을 설정하며 게임 부제목에 대한 사용자의 의견을 기록하는 데 사용됩니다.
DebugMenu.cs
에서 기존 버전을 찾아 다음과 같이 덮어써서 SetUserBoredOfSubtitle
및 SetUserEnjoysSubtitle
를 구현합니다.
void SetUserBoredOfSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}
앱이 Google 애널리틱스로 올바르게 구성되었다면 이러한 함수 중 하나를 호출하여 원격 구성의 조건에 속성을 제공할 수 있습니다. 휴대기기에서 SetUserBoredOfSubtitle
를 호출하려면 게임을 시작하고 기본 메뉴에서 Debug Menu(디버그 메뉴) 버튼을 누른 다음 Set Bored of Subtitle(자막이 너무 싫음)을 누릅니다.
6. 맞춤 측정기준 만들기
다음으로 subtitle_override
의 다양한 자막 변형을 설정하여 가장 효과적인 부제목을 확인합니다. 하지만 A/B 테스트에서는 subtitle_sentiment
에 기록된 현재 자막에 대한 느낌에 '지루함'이라는 단어가 포함된 사용자에게만 이러한 변형을 게재합니다.
맞춤 측정기준을 사용하여 애널리틱스 이벤트에서 맞춤 매개변수를 만들고 추적합니다. 자세한 내용은 맞춤 측정기준 및 측정항목을 참고하세요.
새 맞춤 측정기준을 만들려면 다음 단계를 따르세요.
- Firebase Console을 열고 애널리틱스 메뉴를 펼친 다음 맞춤 정의를 선택합니다.
- 맞춤 정의 페이지에서 맞춤 측정기준 만들기를 클릭합니다.
- 새 맞춤 측정기준 창에서 측정기준 이름을 '부제목 감정'으로 설정합니다. 범위 드롭다운에서 사용자를 선택합니다.
- 사용자 속성 필드에서
subtitle_sentiment.
을 선택합니다.
7. A/B 테스트 실험 설정
다음으로, 2~3일 사용자 유지율을 최적화하기 위해 서로 테스트할 subtitle_override
의 서로 다른 값을 설정하는 A/B 테스팅 실험을 만듭니다.
- 먼저 Firebase Console 원격 구성 페이지의
subtitle_override
매개변수에서 수정을 선택합니다.
- 표시되는 매개변수 수정 대화상자에서 새로 추가를 클릭합니다.
- 표시되는 목록에서 실험을 선택합니다.
- 실험 이름과 설명을 입력합니다.
- 다음으로 타겟팅 조건을 선택합니다. 먼저 드롭다운에서 앱을 선택합니다.
- 그런 다음 그리고를 클릭하여 새 조건을 추가한 다음 사용자 속성을 선택하고
subtitle_sentiment
를 선택합니다. 표시되지 않으면 직접 입력합니다. - 현재 자막 감정에 '지루함'이 포함된 시청자에 대해서만 자막을 설정하려고 하므로 포함을 선택하고
bored
를 입력합니다. - 원하는 경우 위 기준과 일치하는 잠재고객 중 테스트에 노출할 비율을 선택합니다. 쉽게 제어할 수 없는 임의성을 방지하려면 100%를 선택합니다.
- 다음으로 테스트에서 최대화할 목표를 선택합니다. 유지(2~3일)을 선택합니다.
- 그런 다음 실험 매개변수를 설정하고 다양한 자막 버전을 만듭니다 . 이러한 변형은
subtitle_sentiment
에 'bored'가, 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 애널리틱스 사용자 속성을 사용하는 방법
다음 단계
실험이 끝나면 프로젝트의 실험 목록에서 실험을 선택하여 실험과 관련하여 취할 조치를 결정할 수 있습니다. 하나를 '우승자'로 선택하시겠어요? 더 많은 실험을 수행할까요?