
보고 싶은 데이터 필드라고 생각해도 무방하다.아래 내용은 Firebase 에서 제공하는 예제 입니다.
Firebase.Analytics.FirebaseAnalytics.LogEvent(string eventName, )
// 파레메터가 없는 단순 이벤트
Firebase.Analytics.FirebaseAnalytics
.LogEvent(Firebase.Analytics.FirebaseAnalytics.EventLogin);
// 소수가 포함된 이벤트
Firebase.Analytics.FirebaseAnalytics
.LogEvent("progress", "percent", 0.4f);
// 정수가 포함된 이벤트
Firebase.Analytics.FirebaseAnalytics
.LogEvent(
Firebase.Analytics.FirebaseAnalytics.EventPostScore,
Firebase.Analytics.FirebaseAnalytics.ParameterScore,
42
);
// 문자열이 포함된 이벤트
Firebase.Analytics.FirebaseAnalytics
.LogEvent(
Firebase.Analytics.FirebaseAnalytics.EventJoinGroup,
Firebase.Analytics.FirebaseAnalytics.ParameterGroupId,
"spoon_welders"
);
// 다수의 파라메터가 포함된 이벤트
Firebase.Analytics.Parameter[] LevelUpParameters = {
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.ParameterLevel, 5),
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.ParameterCharacter, "mrspoon"),
new Firebase.Analytics.Parameter(
"hit_accuracy", 3.14f)
};
Firebase.Analytics.FirebaseAnalytics.LogEvent(
Firebase.Analytics.FirebaseAnalytics.EventLevelUp,
LevelUpParameters);
C:\UNITY_PATH\Hub\Editer\VERSION\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools.\adb.exe devices 명령어를 통해 정상 동작 확인하기.\adb.exe shell setprop debug.firebase.analytics.app APP_NAME 실행Analytics 서비스는 모바일 기기의 부하를 줄이기 위해 이벤트를 한번에 모아 전달함.APP_NAME 대신 .none. 을 입력.Debug.Log 를 이용하여 제대로 Log 가 떴는지만 확인 가능.using System;
using System.Collections;
using UnityEngine;
using Firebase;
using Firebase.Extensions;
using Firebase.Analytics;
using TMPro;
using Random = UnityEngine.Random;
public class Analytics : MonoBehaviour
{
[SerializeField] private TextMeshProUGUI _eventLog;
private FirebaseApp _app;
private Coroutine _testCoroutine;
private void Awake() => Init();
private void Start() => Test();
private void Init()
{
FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task =>
{
if (task.Result == DependencyStatus.Available)
{
// Create and hold a reference to your FirebaseApp,
// where app is a Firebase.FirebaseApp property of your application class.
_app = FirebaseApp.DefaultInstance;
// Set a flag here to indicate whether Firebase is ready to use by your app.
Debug.Log("Firebase dependencies check success");
}
else
{
Debug.LogWarning($"Could not resolve all Firebase dependencies: {task.Result}");
// Firebase Unity SDK is not safe to use here.
_app = null;
}
});
}
private void EventLog(string eventName, Parameter[] parameters)
{
string log = $"[AnalyticsManager] {eventName}";
if (_eventLog != null)
_eventLog.text += log + "\n"; // APP 에서 정상 실행 됬는지 확인하기 위한 코드
FirebaseAnalytics.LogEvent(eventName, parameters);
}
private void Test()
{
if (_testCoroutine == null)
_testCoroutine = StartCoroutine(TestEventLog());
}
private IEnumerator TestEventLog()
{
// Firebase 초기화 이후 동작하도록 Delay 추가.
while (_app == null)
{
Debug.LogWarning("[Analytics] App Not Found ... ");
yield return new WaitForSecondsRealtime(1f);
}
Debug.Log("[Analytics] App Found !!! ");
FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventLogin);
float j = 0f;
for (int i = 0; i < 10; i++)
{
var p0 = new Parameter("testA", $"{(Random.Range(0, 10) > 5 ? "success" : "failure")}");
var p1 = new Parameter("testB", i);
var p2 = new Parameter("testC", j);
EventLog("test_firebase_analytics", new Parameter[] { p0, p1, p2 });
yield return new WaitForSecondsRealtime(1f);
j += 0.1f;
}
_testCoroutine = null;
}
}

