Skip to content

游戏分析(数据统计)

GameFrameX 的 GameAnalytics 游戏数据分析的组件 提供游戏开发者集成和使用游戏数据分析的功能的接口。包含了不同类型的事件上报和计时器功能。该组件作为游戏框架的一部分,便于游戏开发者集成和使用游戏数据分析的功能。


提示

支持多个实现库共存。按照组件列表的顺序依次执行上报调用

初始化(自动初始化.)

在Unity的Awake方法中,GameAnalyticsComponent被初始化,并创建了一个GameAnalyticsManager实例。通过调用Init 方法,完成具体的初始化过程,并设置_isInit标志为true,以确保后续的方法只在初始化之后被执行。

提示

在初始化的时候将会把实现类中的参数列表以字典的方式传递给实现类。根据自己的需求获取所需要的字段内容

csharp
public void Init()
{
    _gameAnalyticsManager.Init();
    _isInit = true;
}

计时功能

开始计时

StartTimer方法允许开发者为某个事件开始计时。在事件开始时调用此方法,并传入事件名称。

csharp
public void StartTimer(string eventName)
{
    if (!_isInit)
    {
        return;
    }

    _gameAnalyticsManager.StartTimer(eventName);
}

结束计时

结束特定事件的计时,使用StopTimer方法,并传入相应的事件名称。

csharp
public void StopTimer(string eventName)
{
    if (!_isInit)
    {
        return;
    }

    _gameAnalyticsManager.StopTimer(eventName);
}

事件上报

简单事件上报

用于上报不包含额外数据的简单事件。只需调用Event方法并传入事件名称。

csharp
public void Event(string eventName)
{
    if (!_isInit)
    {
        return;
    }

    _gameAnalyticsManager.Event(eventName);
}

带数值的事件上报

上报包含数值信息的事件。调用Event方法,并传入事件名称以及相关的数值。

csharp
public void Event(string eventName, float eventValue)
{
    if (!_isInit)
    {
        return;
    }

    _gameAnalyticsManager.Event(eventName, eventValue);
}

带自定义字段的事件上报

上报包含自定义字段的事件。在调用Event方法时传入事件名称和一个字典类型的自定义字段数据。

csharp
public void Event(string eventName, Dictionary<string, string> customF)
{
    if (!_isInit)
    {
        return;
    }

    // 将字符串字典转换为对象字典
    var value = new Dictionary<string, object>();
    foreach (var kv in customF)
    {
        value[kv.Key] = kv.Value;
    }

    _gameAnalyticsManager.Event(eventName, value);
}

带数值和自定义字段的事件上报

上报一个同时包含数值信息和自定义字段的事件,需要调用Event方法并传入事件名称、事件数值以及自定义字段的字典。

csharp
public void Event(string eventName, float eventValue, Dictionary<string, string> customF)
{
    if (!_isInit)
    {
        return;
    }

    var value = new Dictionary<string, object>();
    foreach (var kv in customF)
    {
        value[kv.Key] = kv.Value;
    }

    _gameAnalyticsManager.Event(eventName, eventValue, value);
}

使用事项

  • 请确保在使用组件的任何方法之前,组件已被正确初始化。
  • _isInitfalse,则不进行任何操作,确保了只有在组件初始化后事件上报或计时才有效作用。
  • 上报的事件名称应该具有代表性和唯一性,以确保数据分析的准确性。

集成提示

  • 工程中应引入命名空间GameFrameX.GameAnalytics.Runtime
  • 确保GameAnalyticsManager被正确实例化,并已经通过GameFramework注册。
  • 对于自定义字段,使用Dictionary<string, string>类型保持键值对的数据结构。

使用方式(任选其一)

  1. 直接在 manifest.json 的文件中的 dependencies 节点下添加以下内容

    json
       {"com.gameframex.unity.gameanalytics": "https://github.com/GameFrameX/com.gameframex.unity.gameanalytics.git"}
  2. 在Unity 的Packages Manager 中使用Git URL 的方式添加库,地址为:https://github.com/GameFrameX/com.gameframex.unity.gameanalytics.git

  3. 直接下载仓库放置到Unity 项目的Packages 目录下。会自动加载识别