com.beatles.unity.native-analytics v0.2.3
uNativeAnalytics
com.beatles.unity.native-analytics
package: "com.beatles.unity.native-analytics": "0.1.0"
uNativeAnalytics是一个将Facebook
, Appsflyer
, Firebase
, 三个统计服务整合在一起的工具。他的优势有:
- 性能,由于它的主要逻辑是放到了Native层,所以他的性能要优于AF,facebook的官方unity统计库。
- 功能补齐,补齐某些平台上的功能缺失,将AF特有的归因属性设置到其他平台的
UserProperty
- 方便调试 统一了Log输出格式,并且支持IOS没有Xcode情况下log的输出。
- 开放本地接口,本地的其他服务(例如广告SDK)可以直接使用本地的统计接口而不是先传送到Mono层,在由Mono层的逻辑负责分发。
快速开始
首先加入对Facebook,和Firebase的依赖,详情
https://firebase.google.com/docs/unity/setup
初始和使用:
//初始化
GameAnalytics.Init(Env.DEBUG);
//设置AF相关配置
#if UNITY_ANDROID
GameAnalytics.SetAppId(Application.identifier);
#elif UNITY_IOS
GameAnalytics.SetAppId("1234567890");
#endif
GameAnalytics.SetAppsflyerDevKey("xxxxxxxxxxxxx");
//初始化Firebase
FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
{
var dependencyStatus = task.Result;
if (dependencyStatus == DependencyStatus.Available)
{
//安装
GameAnalytics.InstallPlatform(AnalyticsPlatform.Firebase);
}
});
//初始化Facebook
FB.Init(() =>
{
//安装
GameAnalytics.InstallPlatform(AnalyticsPlatform.Facebook);
}, OnHideUnity);
//使用范例
GameAnalytics.SetUserProperty("user_age", "20");
GameAnalytics.SetUserId("xxxxxxxxxx");
GameAnalytics.SendEvent("scr_show_home_page", new Dictionary { ["times_count"] = 2 });
API
- SetUserProperty: 设置用户属性
- SetUserId: 设置用户id
- SendEvent: 发送事件
结构
之前的方案
修改后
//todo 阐述af和Facebook特别耗性能
由于Firebase和Facebook都是一个核心库+多个功能插件的形式,所以我们没有在这个库中做初始化FB和Firebase的操作.
Firebase/Facebook 流程
如何测试
有两种方式测试
1.看本地log
android
使用ADB过滤 Analytics
iOS
- 使用
Console
程序,首先在菜单栏Action
选中Include Info Messages
和Include Debug Messages
- 通过筛选
subsystem:AnalyticsLogger
- 使用
2.服务提供商
- Firebase DebugView https://firebase.google.com/docs/analytics/debugview?authuser=0
- Appsflyer 归因测试 https://support.appsflyer.com/hc/en-us/articles/207032166-Pre-install-campaigns-for-Android-configuration-and-testing#testing
存在的问题
1.目前SendEvent
不支持多线程,请不要多线程访问SendEvent
,不用紧张,得益于Unity的编程模型,这种问题很难出现 :)
2.Firebase 初始化可能出现线程锁死,导致ANR。这个问题报告在这里:
https://github.com/firebase/quickstart-unity/issues/600
https://github.com/firebase/quickstart-unity/issues/416
1.0.0
计划:
规范接口
修复存在的问题
链接
Firebase Analytics : https://firebase.google.com/docs/analytics
Facebook Analytics: https://analytics.facebook.com/get-started/Apps#fq
Appsflyer: https://support.appsflyer.com/hc/en-us/categories/201114756-SDK-integration-
4 years ago