Я уже 2 дня пытаюсь добавить аналитику в свою игру, на второй день мне наконец удалось собрать проект, но возникла другая проблема, мои события не отображаются в FireBase RealTime Console. Я не знаю, что делать, код ниже
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Firebase.Extensions;
using Firebase.Analytics;
public class Analytics : MonoBehaviour
{
private void Awake()
{
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task =>
{
var dependencyStatus = task.Result;
if (dependencyStatus == Firebase.DependencyStatus.Available)
{
// Create and hold a reference to your FirebaseApp,
// where app is a Firebase.FirebaseApp property of your application class.
Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
FirebaseAnalytics.LogEvent("first_open");
FirebaseAnalytics.LogEvent("test_event");
FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventAppOpen);
// Set a flag here to indicate whether Firebase is ready to use by your app.
Debug.Log("FBReady");
}
else
{
UnityEngine.Debug.LogError(System.String.Format(
"Could not resolve all Firebase dependencies: {0}", dependencyStatus));
// Firebase Unity SDK is not safe to use here.
}
});
}
private void Start()
{
FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventAppOpen);
FirebaseAnalytics.LogEvent("first_open");
FirebaseAnalytics.LogEvent("GameStart");
FirebaseAnalytics.LogEvent("test_event");
FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventLevelStart);
Events();
}
public void EventTriggerTest()
{
FirebaseAnalytics.LogEvent("TestEvent");
Debug.Log("EventWasLoged");
}
public void EventTriggerTest(int number)
{
FirebaseAnalytics.LogEvent("TestEventParam", new Parameter[]
{
new Parameter("ButtonNumber",number)
});
Debug.Log("EventParamWasLoged");
}
public void Events()
{
Firebase.Analytics.FirebaseAnalytics.LogEvent(
Firebase.Analytics.FirebaseAnalytics.EventSelectContent,
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.ParameterItemId, "0"),
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.ParameterItemName, "name"),
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.UserPropertySignUpMethod, "Google"),
new Firebase.Analytics.Parameter(
"user_id", "0"));
}
}
При первом запуске после переустановки я вижу только событие first_open, но не вижу своих событий, которые я привязал к кнопкам и к методу start. Я где-то читал, что нужно подождать 24 часа, чтобы он отобразился в FireBase, я нашел метод отладки, но не понимаю, куда вставить эти строки, которые включают отладку, поэтому я застрял, могу ждать только 24 часа от нажатия кнопок и надежды, что события появятся
оболочка adb setprop debug.firebase.analytics.app PACKAGE_NAME
Я нашел решение,
Я удаляю FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventAppOpen)
после
FirebaseAnalytics.LogEvent("test_event")
Я добавил проверку всех событий журнала
Пример:
if (AnalyticsConnected)// bool value ...LogEvent ("TestEvent")
Я добавляю Coroutine, который начинается с Start()
и повторяется до тех пор, пока
Firebase.FirebaseApp.CheckAndFixDependenciesAsync() ... Return false
Рад слышать, что вам удалось заставить это работать.
Для тех, кто задаст этот вопрос позже, это базовый метод инициализации Firebase в Unity.
Для тех, кто интересуется отладкой GA4 в Unity команда, указанная выше, немного неверна.
Команда (как указано выше)
adb shell setprop debug.firebase.analytics.app PACKAGE_NAME
НО, PACKAGE_NAME
необходимо заменить на имя пакета вашего приложения для Android.
Для Android эту команду необходимо отправить оболочке, подключенной к вашему приложению Android через Android Debug Bridge
Как только это будет сделано, вы можете использовать adb logcat
для отладки вашего приложения для Android.