1、注册并登录https://www.talkingdata.com/ ,选择Game Analytics产品线
2、创建应用并获取App ID
成功登录后您会进入服务中心页面,只需点击游戏运营分按钮,即可开通游戏运营分析的使用。完全免费
如果已创建的应用,请从“游戏管理->基本信息”中查看App ID。
3、获取SDK
邮箱收到后下载SDK
4、https://github.com/TalkingData/GameAnalytics_SDK_Unity下载集成文件
5、将下载的文件Assets文件夹放入Unity内
6、按照集成说明将对应文件放到位置
集成说明
- 下载本项目(封装层)到本地;
- 访问 TalkingData官网 下载最新版的 Android 和 iOS 平台 Game Analytics SDK( Native SDK)
- 方法1:选择 Unity 平台进行功能定制;
- 方法2:分别选择 Android 和 iOS 平台进行功能定制,请确保两个平台功能项一致;
- 将下载的最新版
Native SDK
复制到封装层
中,构成完整的 Unity SDK。(邮箱发送的SDK)
- Android 平台
将最新的.jar
文件复制到Assets/Plugins/Android
目录下 - iOS 平台
将最新的.h
和.a
文件复制到Assets/Plugins/iOS
目录下
- 按
Native SDK
功能选项对封装层
代码进行必要的修改,详见“注意事项”第2条; - 将 Unity SDK 集成您需要统计的工程中,并按 集成文档 进行必要配置和功能调用。
7、按照注意事项修改:有ios端将宏打开,在Unity中添加宏(安卓和Ios要分别添加)
注意事项
- 分别选择 Android 和 iOS 平台进行功能定制时,请确保两个平台功能项一致。
- 如果申请 Native SDK 时选择了可选功能,则需要在本项目中启用所选功能对应的封装层代码。
a) 在Assets/Plugins/iOS/TalkingDataGA.mm
文件中释放所选功能的宏定义。
b) 在 Unity 中添加相应功能的宏定义
打开Build Settings
,先在Platform
中选择Android
或iOS
平台,再点击Switch Platform
。当切换完平台后,点击Player Settings
,然后在Other Settings
的Scripting Define Symbols
中输入所选功能相应的宏(如果有多个宏,需要用分号隔开;Android 和 iOS 需要分别添加)。
各功能宏定义如下:
功能 | 宏定义 |
自定义事件 | TDGA_CUSTOM |
推送营销 | TDGA_PUSH |
8、按照文档添加对应代码
SDK初始化:
TalkingDataGA.OnStart("A527A3A546F04615******", "TalkingData");// TalkingDataGA.OnStart("游戏ID", "渠道");
设置唯一账户
TDGAProfile profile = TDGAProfile.SetProfile(TalkingDataGA.GetDeviceId());
自定义事件
自定义事件用于统计任何您期望去追踪的数据,如:点击某功能按钮、填写某个输入框、触发了某个广告等。
开发者可以自行定义eventId,在游戏中需要追踪的位置进行调用,注意eventId中仅限使用中英文字符、数字和下划线,不要加空格或其他的转义字符。
Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("key", "value"); // 自定义参数
TalkingDataGA.OnEvent("事件ID", dic);
8、注意问题
获取sdk获取过来的是安卓的jdk和ios的.h和.mm文件需要到https://github.com/TalkingData/GameAnalytics_SDK_Unity下载assets文件拖入相应位置。
9:完成Demo:
/// <summary>
/// 初始化
/// </summary>
private void initSDK() {
try
{
TalkingDataGA.BackgroundSessionEnabled();
TalkingDataGA.OnStart("759999D967AE4B24AA4945B61A91710F", "TalkingData");
string userId = TalkingDataGA.GetDeviceId();
TDGAProfile profile = TDGAProfile.SetProfile("User" + userId);
}
catch (System.Exception e)
{
throw;
}
}
/// <summary>
/// 按钮点击分析广告数据
/// </summary>
/// <param name="value"></param>
private void AnalyticsClickData(String value) {
Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("type", value);
TalkingDataGA.OnEvent("AdClickEvent", dic);
}
/// <summary>
/// 广告奖励分析广告数据
/// </summary>
/// <param name="value"></param>
private void AnalyticsRewardData(string value)
{
Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("type", value);
TalkingDataGA.OnEvent("AdRewardEvent", dic);
}