Unity SDK 集成
一、说明
1.适用范围:
本文档适用于使用Unity来开发的产品。
本文档适用于Android4.0(API Level14)及以上的安卓系统,及IOS9.0及以上的苹果系统.
2.统计说明:
为了能够在接入过程中保持概念统一,针对通用概念做如下说明:
设备
指某台安装了Unity应用的终端。账号
指用户在某台设备上安装了应用之后,在应用中的唯一标识。
二、接入流程
1.申请APP GUID
1)打开https://go.tkioglobal.com,使用您已注册的热云账号进行登录。
2)进入”Apps&Assets“创建App,获取”APP GUID“,APP GUID为应用的唯一标识,用于集成到SDK中。
注:为了保证您的数据安全,请勿泄露您的APP GUID。
2.导入SDK
1)点击下载 Unity SDK,下载SDK压缩包,解压至本地目录。
2导入方法:将zip包解压缩后将包内Assets文件夹下的文件拷贝到项目Assets下。
3.接入SDK
详见“三、接入方法说明”
4.测试
1)在开发环境中进行Debug测试,日志TAG为Tracking:
publicvoidSetPrintLog(boolprint)
注:热云SDK所有API接口的http response均以status:0表示成功,若不成功,会在返回的json里提示详细错误信息。
2)查看测试数据:
在"Apps&Assets"-"Install Feed Validation"中查看最近一次您上报的激活数据,如提示”Integration Success“说明SDK初始化(激活事件)成功;
在”Event Manager“中查看您最近一次上报的事件数据,如在页面中显示您上报的事件名,说明事件上报成功
三、接入方法说明
1.添加权限和依赖框架
1)Android
1.1权限列表
在AndroidManifest.xml文件中添加如下权限
//网络访问权限
<uses-permissionandroid:name="android.permission.INTERNET"/>
//获取网络状态权限
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
//获取wifi状态权限
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
//读取sd卡的权限
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>
注:Android系统版本6.0以上,必须先获取权限,再调用初始化接口。反之,会影响激活数据精准度。
1.2如需混淆,则加入如下配置
-dontwarn com.reyun.tracking.**
-keep class com.reyun.tracking.** {*;}
2)添加sdk所需依赖框架(IOS)
使用Security.framework来存储设备标识,
使用CoreTelephony.framework来获取运营商信息,
使用AdSupport.framework来获取Advertising Identifier信息,
使用SystemConfiguration.framework来检查当前网络环境,
使用iAd.framework、AVFoundation.framework来获取数据。
使用libsqlite3.dylib用来存储数据。
使用libz.tbd来压缩数据
- 添加方法:
在工程目录中,选择
TARGETS-->Build Phases-->Link Binary With Libraries-->+ -->选择Security.framework、CoreTelephony.framework、AdSupport.framework、libsqlite3.tbd、iAd.framework、SystemConfiguration.framework、AVFoundation.framework、libz.tbd等库文件。
注:
1)如上动态库请全部配置,避免报错。
2)xcode 7及以上版本,.dylib后缀结尾的系统库均更改为.tbd后缀结尾
2.初始化SDK
方法用途:
用于应用启动后,初始化热云SDK。报送应用安装或启动事件。
方法接口:
Init(string appKey, string channelId)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| appKey | String | 是 | APP GUID | |
| channelId | String | 是 | 最长64位 | 默认填写_default_; |
示例代码:
ReyunTracing.Instance.Init("your appkey","channelid");
3.统计用户注册数据
方法用途:
用于用户注册完成,报送应用注册事件。
方法接口:
public void Register(string userName, string userId, string referralFrom)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| userId | String | 是 | 最长64位 | 账号唯一标识,仅支持英文、数字、下划线 |
| userName | String | 是 | 最长64位 | 用户名称 |
| referralFrom | String | 是 | 最长64位 | 事件来源 |
示例代码:
ReyunTracing.Instance.Register("nsername_reg", "userid_reg", "from_reg");
4.统计用户登录数据
方法用途:
用于用户登录完成、切换账号时,报送应用登录事件。
方法接口:
public void Login(string userName, string userId, string referralFrom)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| userId | String | 是 | 最长64位 | 账号唯一标识,仅支持英文、数字、下划线 |
| userName | String | 是 | 最长64位 | 用户名称 |
| referralFrom | String | 是 | 最长64位 | 事件来源 |
示例代码:
ReyunTracing.Instance.Login("username_login", "userid_login", "from_login");
5.统计用户付费数据(建议使用服务器REST API报送)
方法用途:
用于用户充值成功,统计充值数据,所有付费相关分析的数据报表均依赖此方法。
注:前端报送支付有掉单风险,收入数据会出现误差,为确保支付数据准确,建议使用服务器报送支付(请参考S2S集成文档)。
方法接口:
public void Setryzf(string name, string userId, string checkoutAsGuest, string contentId, string ryTID, string hbType, float hbAmount)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | NSString* | 是 | 最长64位 | 付费名称 |
| userId | NSString* | 是 | 最长64位 | 用户唯一id(账号id) |
| checkoutAsGuest | NSString* | 是 | 最长64位 | 任何有关游客下单的数据 |
| contentId | NSString* | 是 | 最长64位 | 付费商品id |
| ryTID | NSString* | 是 | 最长64位 | 流水单id,确保唯一 |
| hbType | NSString* | 是 | 最长3位 | 货币类型,按照国际标准组织ISO4217中规范的3位大写字母,如USD |
| hbAmount | float | 是 | 最长16位 | 付费金额 |
示例代码:
ReyunTracing.Instance.Setryzf("name_Ryzf", "userId_Ryzf", "checkoutAsGuest_Ryzf", "contentId_Ryzf", "ryTID_Ryzf", "hbType_Ryzf", 2);
6.上报订单事件
方法用途:
上报订单事件。
使用方法:
当订单产生成功时调用此方法进行事件上报。
方法接口:
public void SetDD(string name, string userId, string checkoutAsGuest, string contentId, string ryTID, string hbType, float hbAmount)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | NSString* | 是 | 最长64位 | 付费名称 |
| userId | NSString* | 是 | 最长64位 | 用户唯一id(账号id) |
| checkoutAsGuest | NSString* | 是 | 最长64位 | 任何有关游客下单的数据 |
| contentId | NSString* | 是 | 最长64位 | 付费商品id |
| ryTID | NSString* | 是 | 最长64位 | 流水单id,确保唯一 |
| hbType | NSString* | 是 | 最长3位 | 货币类型,按照国际标准组织ISO4217中规范的3位大写字母,如USD |
| hbAmount | float | 是 | 最长16位 | 付费金额 |
示例代码:
ReyunTracing.Instance.SetDD("name_dd", "userId_dd", "checkoutAsGuest_dd", "contentId_dd", "ryTID_dd", "hbType_dd", 1);
7.上报订阅事件
方法用途:
上报订阅事件。
使用方法:
当用户订阅时调用此方法进行事件上报。
方法接口:
public void SetSubscribe(string name, string userId, string checkoutAsGuest, string contentId, string ryTID, string hbType, float hbAmount)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | NSString* | 是 | 最长64位 | 付费名称 |
| userId | NSString* | 是 | 最长64位 | 用户唯一id(账号id) |
| checkoutAsGuest | NSString* | 是 | 最长64位 | 任何有关游客下单的数据 |
| contentId | NSString* | 是 | 最长64位 | 付费商品id |
| ryTID | NSString* | 是 | 最长64位 | 流水单id,确保唯一 |
| hbType | NSString* | 是 | 最长3位 | 货币类型,按照国际标准组织ISO4217中规范的3位大写字母,如USD |
| hbAmount | float | 是 | 最长16位 | 付费金额 |
示例代码:
ReyunTracing.Instance.SetSubscribe("name_Subscribe","userId_Subscribe", "checkoutAsGuest_Subscribe", "contentId_Subscribe", "ryTID_Subscribe", "hbType_Subscribe", 3);
8.统计搜索
方法用途:
用于统计用户在app内搜索内容
方法接口:
public void SetSearch(string uri, string results)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| uri | String | 是 | 最长64位 | 搜索内容 |
| results | String | 是 | 最长64位 | 搜索结果 |
示例代码:
ReyunTracing.Instance.SetSearch("uri", "result");
9.统计浏览
方法用途:
用于统计用户浏览内容
方法接口:
public void SetView(string name, string user_id, string referral_from, string content_id)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | String | 是 | 最长64位 | 浏览内容 |
| userId | String | 是 | 最长64位 | 用户唯一id(账号id) |
| referralFrom | String | 是 | 事件引荐来源 | |
| contentId | String | 是 | 最长64位 | 浏览内容唯一id |
示例代码:
ReyunTracing.Instance.SetView("name_view", "userid_view", "referral_from_view", "content_id_view");
10.统计加入购物车
方法用途:
用于统计用户加购
方法接口:
publicvoidSetAddToCart(stringname,stringuser_id,stringreferral_from,stringcontent_id)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | String | 是 | 最长64位 | 加购内容 |
| userId | String | 是 | 最长64位 | 用户唯一id(账号id) |
| referralFrom | String | 是 | 事件引荐来源 | |
| contentId | String | 是 | 最长64位 | 加购内容唯一id |
示例代码:
ReyunTracing.Instance.SetAddToCart("name_addtocart", "user_id_addtocart", "referral_from_addtocart", "content_id_addtocart");
11.统计加入愿望清单(收藏)
方法用途:
用于统计用户将商品加入愿望清单
方法接口:
publicvoidSetAddToWishlist(stringname,stringuser_id,stringreferral_from,stringcontent_id)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | String | 是 | 最长64位 | 收藏内容 |
| userId | String | 是 | 最长64位 | 用户唯一id(账号id) |
| referralFrom | String | 是 | 事件引荐来源 | |
| contentId | String | 是 | 最长64位 | 收藏内容唯一id |
示例代码:
ReyunTracing.Instance.SetAddToWishlist("name_Wishlist", "user_id_Wishlist", "referral_from_Wishlist", "content_id_Wishlist");
12.统计完成教程
方法用途:
用于统计用户完成前置的教程
方法接口:
public void SetTutorialComplete(string name, string user_id, string duration)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | String | 是 | 最长64位 | 教程名称 |
| userId | String | 是 | 最长64位 | 用户唯一id(账号id) |
| duration | String | 是 | 最长64位 | 完成教程所花费的时间,单位:秒 |
示例代码:
ReyunTracing.Instance.SetTutorialComplete("name_Tutorial", "userid_Tutorial", "duration_Tutorial");
13.统计等级达成
方法用途:
用于统计用户达成等级
方法接口:
public void SetLevelComplete(string name, string user_id, string duration)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | String | 是 | 最长64位 | 等级信息 |
| userId | String | 是 | 最长64位 | 用户唯一id(账号id) |
| duration | String | 是 | 最长64位 | 达成等级所花费的时间,单位:秒 |
示例代码:
ReyunTracing.Instance.SetLevelComplete("name_Level", "userid_Level", "duration_Level");
14.统计成就达成
方法用途:
用于统计用户达成成就
方法接口:
public void SetAchievement(string name, string user_id, string duration)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| name | String | 是 | 最长64位 | 成就信息 |
| userId | String | 是 | 最长64位 | 用户唯一id(账号id) |
| duration | String | 是 | 最长64位 | 达成成就所花费的时间,单位:秒 |
示例代码:
ReyunTracing.Instance.SetAchievement("name_Achievement", "userid_Achievement", "duration_Achievement");
15.统计广告点击
方法用途:
用于统计用户点击广告动作
方法接口:
public void SetAdClick(string ad_type, string ad_network_name, string placement)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| adType | String | 是 | 最长64位 | 广告类型或唯一标识(id) |
| adNetworkName | String | 是 | 最长64位 | 广告平台名称 |
| placement | String | 是 | 最长64位 | 广告位名称 |
示例代码:
ReyunTracing.Instance.SetAdClick("ad_type_click", "ad_network_name_click", "placement_click");
16.统计广告观看
方法用途:
用于统计用户观看广告动作
方法接口:
publicvoidSetAdView(stringad_type,stringad_network_name,stringplacement)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| adType | String | 是 | 最长64位 | 广告类型或唯一标识(id) |
| adNetworkName | String | 是 | 最长64位 | 广告平台名称 |
| placement | String | 是 | 最长64位 | 广告位名称 |
示例代码:
ReyunTracing.Instance.SetAdView("ad_type_view", "ad_network_name_adview", "placement_view");
17.统计评分
方法用途:
用于统计用户评分
方法接口:
public void SetRating(float rating_value, float max_rating_value)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| ratingValue | float | 是 | 最长64位 | 用户评分值 |
| maxRatingValue | float | 是 | 最长64位 | 最高评分值 |
示例代码:
ReyunTracing.Instance.SetRating(3.5f, 4.6f);
18.自定义事件
方法用途:统计自定义事件,自定义事件名称不能与上述标准事件一致,后台每个app最多可显示100个事件(包括标准事件)。
方法接口:
publicvoidSetEvent(stringeventName,Dictionary<string,string>param)
参数说明:
| 参数 | 类型 | 是否必填 | 长度 | 说明 |
|---|---|---|---|---|
| eventName | String | 是 | 最长64位 | 自定义事件名 |
| param | Dictionary <string, string> | 是 | 键值对不能超过20个,键为String型,值不做要求 | 自定义参数 |
示例代码:
Dictionary<string, string> param = new Dictionary<string, string>();
param.Add("event", "levelup");
param.Add("currentlevel", "10");
ReyunTracing.Instance.SetEvent("evnetname", param);
四、技术支持
如有任何问题,请及时联系我们的技术支持工程师:
技术支持邮箱:[email protected]
技术支持QQ:2785608528