2019년 7월 11일 목요일

Unity Analytics 설정

게임 분석을 위해 Unity Analytics를 적용 하는 방법을 정리해 둔다.
(각 Analytics 항목에 대한 상세한 설명은 유니티 공식 매뉴얼을 참고)

1. 프로젝트에서 설정하기

  • Unity의 Window>General>Services 으로 메뉴 열기
  • Create a Unity Project ID 로 애널리틱스를 이용한 서비스 프로젝트 생성하기
    (계정 연결하고 [Create] 버튼 선택)

2. Analytics 서비스 켜기

  • 표시되는 Services 메뉴 중 Analytics 의 [OFF] 버튼을 클릭해 [ON]으로 변경
  • Analytics 서비스 페이지의 Discover player insights 를 [ON]으로 변경
  • "이 앱이 13세 미만의 아이들을 대상으로 하는 것인지 확인" 설정

3. Analytics 서비스 연결

  • Play 버튼을 눌러 실행
  • 연동이 완료되면 Services의 Analytics 페이지가 갱신됨
  • 페이지가 갱신 되지 않으면 Services 화면의 우측 상단 메뉴 중 [Reload] 를 선택해 화면을 갱신 하거나 Services 화면 메인으로 이동해 다시 Analytics 페이지로 열어서 재 확인을 함

4. Analytics 서비스 정보

  • Services > analytics 항목의 Validator 정보
  • 발생 되는 이벤트 정보 로그를 표시
  • 설정하자마자 항상 즉시 표시되는 것은 아님(동기화 시간이 필요할 수 있음)

5. 커스텀 이벤트

  • 원하는 시점에 "Tag"로 등록한 값을 Analytics에 보낼 수 있음
  • 코드 예제

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Analytics;

public class AnalyticsManager : MonoBehaviour
{

    #region Singlton선언
    private static AnalyticsManager m_instance = null;

    public static AnalyticsManager Instance
    {
        get
        {
            return m_instance;
        }
    }

    void Awake()
    {
        // 동일한게 있으면 파괴
        if(m_instance)
        {
            Destroy(gameObject);
            return;
        }

        //유효한 인스턴스 생성 및 삭제 방지 처리
        m_instance = this;
        DontDestroyOnLoad(gameObject);
    }
    #endregion

    bool gameLoop = false;

    // 어플리케이션을 종료하는 순간에 처리할 행동들
    private void OnApplicationQuit()
    {
        gameLoop = true;
        Analytics.CustomEvent("App Quit", new Dictionary
        {
            {"Leaderboard Up Load Count", GPGSIntegration.loginSuccessCount },
            {"Best Score",  GPGSIntegration.bestScoreValueText},
            {"Loop Flag", gameLoop }
        });

    }

    int clickCount = 0;

    public void AnalyticsButtonClick()
    {
        clickCount++;

        Analytics.CustomEvent("App Quit", new Dictionary
        {
            {"Version", Application.version },
            {"Best Score",  GPGSIntegration.bestScoreValueText},
            {"Loop Flag", gameLoop },
            {"Button Click Count" ,  clickCount}

        });
    }

    public void ButtonAddCount()
    {
        clickCount++;
    }

}

6. 13세 미만 대상 앱

  • 미국에서는 13세 미만의 아동을 대상으로 하는 웹사이트, 앱, 서비스를 사용하도록 허용하기 위해서 아동 온라인 개인정보 보호법(COPPA: the Children’s Online Privacy and Protection Act)을 준수 해야 됨
  • 게임이 이 카테고리에 부합한다면 연련 제한을 “under 13”로 설정 하십시요. 유니티애즈와 유니티애널리틱스에서 수집하는 데이터의 제약이 생기긴 하지만 그래도 동작은 이상 없이함

7. 퍼널(Funnel) 등록


댓글 없음:

댓글 쓰기

Unity - Firebase 연동 (Analytics, AdMob)

버전 : firebase_unity_sdk_6.5.0.zip 게임에서 통계 측정 및 광고 추적을 위해 Firebase 을 연동한다. 앞서 [Unity - GPGS 와 Admob 연동 및 배포 준비 작업]  연동 이후에 작업을 진행 한다. 유니...