Unity의 애널리틱스 스탠다드 이벤트 가이드
Unity의 애널리틱스 시스템을 통해 게임에서의 플레이어 행동과 경험을 추적하는 방법에 대해 알아보겠습니다. 이 문서에서는 스탠다드 이벤트의 정의, 활용 및 구현 방법을 설명하고, 다양한 예제를 제공하여 이해를 돕겠습니다.
스탠다드 이벤트란?
스탠다드 이벤트는 사용자의 게임 내 행동을 모니터링하고 데이터를 수집하는 데 사용됩니다. 이를 통해 게임의 성능과 플레이어의 진행 상태, 참여도 및 수익화 측면을 실시간으로 분석할 수 있습니다.
주요 영역 추적
스탠다드 이벤트는 다음과 같은 다섯 가지 주요 분야에서 사용자 경험을 추적합니다:
영역 | 설명 |
---|---|
애플리케이션 | UI의 기본 요소 사용 추적 |
진행도 | 플레이어의 게임 내 진행 상황 추적 |
온보딩 | 최초 사용자 경험 추적 |
참여 | 소셜 액션 및 업적 등 중요한 행동 추적 |
수익화 | 수익 관련 이벤트 및 게임 경제 추적 |
이벤트 유형
각각의 영역에서 특정 이벤트를 사용하여 데이터를 수집할 수 있습니다. 아래 표는 유용한 스탠다드 이벤트 목록입니다.
애플리케이션 이벤트
이벤트 이름 | 목적 |
---|---|
screen_visit | UI 화면 열기 |
cutscene_start | 컷씬 시작 |
cutscene_skip | 컷씬 건너뛰기 |
진행도 이벤트
이벤트 이름 | 목적 |
---|---|
game_start | 새 게임 시작 |
game_over | 게임 종료 |
level_start | 레벨 시작 |
level_complete | 레벨 완료 |
level_fail | 레벨 실패 |
level_quit | 레벨 중단 |
온보딩 이벤트
이벤트 이름 | 목적 |
---|---|
first_interaction | 최초 인터랙션 완료 |
tutorial_start | 튜토리얼 시작 |
tutorial_step | 튜토리얼 마일스톤 통과 |
tutorial_complete | 튜토리얼 완료 |
tutorial_skip | 튜토리얼 건너뛰기 |
참여 이벤트
이벤트 이름 | 목적 |
---|---|
push_notification_enable | 푸시 알림 활성화 |
push_notification_click | 푸시 메시지 클릭 |
chat_msg_sent | 채팅 메시지 전송 |
수익화 이벤트
이벤트 이름 | 목적 |
---|---|
store_opened | 상점 열기 |
store_item_click | 상점 아이템 클릭 |
iap_transaction | 인앱 구매 |
item_acquired | 자원 획득 |
스탠다드 이벤트 구현
스탠다드 이벤트를 구현하기 위해 필요한 기본적인 네임스페이스는 다음과 같습니다.
using UnityEngine.Analytics;
이후 각 이벤트를 트리거하는 방식으로 다음과 같이 사용할 수 있습니다.
AnalyticsEvent.GameStart();
예제 코드: 레벨 이벤트 매니저
아래 코드는 레벨에서의 특정 이벤트를 추적하는 MonoBehaviour 클래스를 보여줍니다.
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.Analytics;
public class LevelEventManager : MonoBehaviour {
public enum LevelPlayState {InProgress, Won, Lost, Skip, Quit}
private Scene thisScene;
private LevelPlayState state = LevelPlayState.InProgress;
private int score = 0;
private float secondsElapsed = 0;
private int deaths = 0;
void Awake () {
thisScene = SceneManager.GetActiveScene();
AnalyticsEvent.LevelStart(thisScene.name, thisScene.buildIndex);
}
public void SetLevelPlayState(LevelPlayState newState){
this.state = newState;
}
public void IncreaseScore(int points){
score += points;
}
public void IncrementDeaths(){
deaths++;
}
void Update(){
secondsElapsed += Time.deltaTime;
}
void OnDestroy(){
Dictionary<string, object> customParams = new Dictionary<string, object>();
customParams.Add("seconds_played", secondsElapsed);
customParams.Add("points", score);
customParams.Add("deaths", deaths);
switch(this.state){
case LevelPlayState.Won:
AnalyticsEvent.LevelComplete(thisScene.name, thisScene.buildIndex, customParams);
break;
case LevelPlayState.Lost:
AnalyticsEvent.LevelFail(thisScene.name, thisScene.buildIndex, customParams);
break;
case LevelPlayState.Skip:
AnalyticsEvent.LevelSkip(thisScene.name, thisScene.buildIndex, customParams);
break;
case LevelPlayState.InProgress:
case LevelPlayState.Quit:
default:
AnalyticsEvent.LevelQuit(thisScene.name, thisScene.buildIndex, customParams);
break;
}
}
}
이 예제에서는 게임의 레벨 시작 및 종료와 관련된 데이터를 수집하는 방법을 보여줍니다. 각 레벨 상태에 따라 적절한 이벤트를 트리거하도록 설계되었습니다.
결론
이 문서에서는 Unity의 스탠다드 이벤트를 통한 애널리틱스 활용 방법에 대해 알아보았습니다. 다양한 이벤트를 통해 플레이어 행동을 추적하고 데이터를 분석하여 게임의 품질과 수익성을 향상시킬 수 있습니다. Unity의 애널리틱스 도구를 활용하여 보다 나은 사용자 경험을 제공하는 게임을 만들어 보세요!