菜单

行为事件上报

本文档详细介绍了SDK提供的事件上报功能,帮助开发者全面采集用户行为事件数据,为业务分析和运营决策提供数据支持。

通过上报应用内用户行为事件,您可以:

  • ​完整记录用户行为​​:追踪用户在应用内的关键操作路径
  • 支持多维度分析​​:通过事件属性丰富分析维度
  • ​构建数据闭环​​:为产品优化和精准运营提供数据基础

通过 GravityEngineAPI.Track() 可以上报事件及其属性。一般情况下,您可能需要上传十几到上百个不同的事件,如果您是第一次使用引力引擎事件采集系统,我们推荐您先上传几个关键事件。

我们也支持了若干自动采集事件,包括游戏启动、关闭、异常、小游戏添加收藏、Unity 场景加载或者卸载等事件,您可以根据业务需求选择是否开启自动采集事件。

自定义事件上报

如需上报自定义事件,您必须先在元事件中添加,否则会上报失败!

您必须先在元事件中添加自定义事件,然后在游戏中指定位置埋点调用 Track 方法上报自定义事件。

Dictionary<string, object> properties = new Dictionary<string, object>();
properties["channel"] = "base";//字符串,长度不超过2048
properties["age"] = 1;//数字
properties["isVip"] = true;//布尔
properties["birthday"] = DateTime.Now;//时间
properties["movies"] = new List<string>() { "Interstellar", "The Negro Motorist Green Book" };//字符串元素的数组 最大元素个数为 500

GravityEngineAPI.Track("TEST_EVENT_NAME",properties);
  • 事件名称是 string 类型,只能以字母开头,可包含数字,字母和下划线 “_”,长度最大为 50 个字符。
  • 事件属性是 Dictionary<string, object> 类型,其中每个元素代表一个属性;
    • 事件属性 Key 为属性名称,为 string 类型,规定只能以字母开头,包含数字,字母和下划线 “_”,长度最大为 50 个字符;
    • 属性 Value 支持stringintfloatboolDateTimeList<string>

当您调用 Track() 时,SDK 会取系统当前时间作为事件发生的时刻,如果您需要指定事件时间,可以传入 DateTime 类型的参数来设置事件触发时间。

SDK 提供了时间校准接口,允许使用服务器时间对 SDK 时间进行校准,具体请参考 Demo 中对 CalibrateTime 和 CalibrateTimeWithNtp 方法的使用。

尽管事件可以设置触发时间,但是接收端会做如下的限制:只接收相对服务器时间在前 10 天至后 1 小时的数据,超过时限的数据将会被视为异常数据,整条数据无法入库!

公共属性

公共事件属性指的就是每个事件都会带有的属性,对于一些重要的属性,譬如玩家的区服和渠道等,这些属性需要设置在每个事件中,此时您可以将这些属性设置为公共事件属性。

公共属性需要先在事件属性中添加,否则会上报失败!

设置公共属性

您可以调用 SetSuperProperties 来设置公共事件属性,我们推荐您在发送事件前,先设置公共事件属性。

Dictionary<string, object> superProperties = new Dictionary<string, object>()
    {
        {"SERVER", 0},
        {"CHANNEL", "A3"}
    };
GravityEngineAPI.SetSuperProperties(superProperties);

公共事件属性将会被保存到缓存中,无需每次启动 APP 时调用。如果调用 SetSuperProperties 上传了先前已设置过的公共事件属性,则会覆盖之前的属性。如果公共事件属性和 Track() 上传的某个属性的 Key 重复,则该事件的属性会覆盖公共事件属性。

删除公共属性

如果您需要删除某个公共事件属性,可以调用 UnsetSuperProperty 清除其中一个公共事件属性;

// 清除属性名为 CHANNEL 的公共属性
GravityEngineAPI.UnsetSuperProperty("CHANNEL");

清空公共属性

如果您想要清空所有公共事件属性,则可以调用 ClearSuperProperties;

// 清空所有公共属性
GravityEngineAPI.ClearSuperProperties();

获取公共属性

如果您想要获取所有公共事件属性,可以调用GetSuperProperties;

// 获取所有公共属性
GravityEngineAPI.GetSuperProperties();

记录事件时长

如果您需要记录某个事件持续时长,您可以调用 TimeEvent() 来开始计时,配置您想要计时的事件名称,当您上传该事件时,将会自动在您的事件属性中加入 $event_duration 这一属性来表示记录的时长,单位为秒。

// 调用 TimeEvent 开启对 TIME_EVENT 事件的计时
GravityEngineAPI.TimeEvent("TIME_EVENT");

// do some thing...

// 通过 Track 上传 TIME_EVENT 事件时,会在属性中添加 $event_duration 属性
GravityEngineAPI.Track("TIME_EVENT");

立即上报事件

如果需要立即上报缓存的事件,可以调用 Flush() 来上报所有缓存的事件。

// 调用 Flush() 上报缓存事件
GravityEngineAPI.Flush();
上一个
快速集成
下一个
用户属性上报
最近修改: 2025-08-23Powered by