Unity3D 集成文档
工程配置
首先需要说明,Unity下载的只是桥接文件,不含最新版本的jar,对应组件的jar请去下载中心下载。
如果对于文档仍有疑问的,请参照我们在github上的
注意:1.demo使用xcode9编译会报错,请使用xcode8及以下版本运行demo。
2.Android由于工程配置需要导出工程进行工程依赖以及相关配置,请使用Android Studio。
Android
导出Android工程,请确认libs下有以下jar:

然后找到Android工程的Application文件(如果没有,请新建一个,并在AndroidManifest中引用),在onCreate中添加如下代码:
@Override
publicvoid onCreate(){
super.onCreate();
UMU3DCommonSDK.init(this,"59892f08310c9307b60023d0","Umeng",UMConfigure.DEVICE_TYPE_PHONE,
"669c30a9584623e70e8cd01b0381dcb4");
initUpush();
}其中init方法第一个参数为Context,第二个参数为友盟+Appkey,第三个参数为渠道,第四个参数为硬件类型,第五个参数为push Secret
iOS
导出iOS工程,找到UnityAppController.mm文件,使用头文件#import “UNUMConfigure.h”并在didFinishLaunchingWithOptions中添加:
[UNUMConfigure initWithAppkey:@"599d6d81c62dca07c5001db6" channel:@"App Store"];其中第一个参数为appkey,第二个参数为渠道
U-App集成
下载并导入SDK
将下载的SDK zip包解压缩,需要导入如下包:
Common.unitypackage //基础服务包
UmengGameAnalytics_v3.2.unitypackage //统计包
添加依赖
Android:
sdk已经默认自动添加如下permission
检测联网方式,区分用户设备使用的是2G、3G或是WiF
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>访问互联网
<uses-permission android:name="android.permission.INTERNET"/>获取用户手机的IMEI,用来唯一的标识用户
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>如果您的应用会运行在无法读取IMEI的平板上,我们会将mac地址作为用户的唯一标识
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>iOS:
需要导出后,在xcode里手动添加依赖库
TARGETS—>Build Phases—>Link Binary With Libraries—> + —>libz.tdbTARGETS—>Build Phases—>Link Binary With Libraries—> + —>libsqlite3.tbd// 购买道具.
使用自定义事件
使用自定义事件功能请先在网站应用管理后台(设置->编辑自定义事件)中添加相应的自定义事件后,服务器才会对相应的自定义事件请求进行处理。这里我们将提供几个简单而通用的接口:
计数事件
在您希望跟踪的代码部分,调用如下方法:
void Event(string eventId)
void Event(string eventId, string label)eventId为当前统计的事件ID。
label为当前事件的属性和取值(键值对)。
示例:统计微博应用中”转发”事件发生的次数,那么在转发的函数里调用
GA.Event(“Forward”);示例: 统计游戏中“死亡”事件发生的关卡数,那么可以在死亡的函数里调用
GA.Event(“player_dead”, “level1”);考虑事件附带属性,可以调用如下方法:
void Event(string eventId, Dictionary attributes)attributes为当前事件的属性 , 属性中的Key-Vaule Pair不能超过10个。
示例:统计电商应用中“购买”事件发生的次数,以及购买的商品类型及数量,那么在购买的函数里调用:
var dict = new Dictionary();
dict[“book”]=”3”;
GA.Event(“purchase”, dict);计算事件
程序中的某些事件,如登录、分享、下载等,是定性变量(categorical variable),对应的统计项是字符串类型。开发者只需了解它们发生的次数及独立用户数,使用计数事件即可满足。
还有一些事件,如上面提到的支付金额、内容浏览数量等是连续变量,对应的统计项是数值类型。开发者需要查看这些事件的数值分布特征,这就需要使用计算事件。
void Event(string eventId, Dictionary attributes, int value)eventId为当前统计的事件ID。
attributes为当前事件的属性和取值(键值对)。
value为定性变量(categorical variable)。
注意事项
event id不能使用特殊字符(例如:’\t’、’\n’、’�’ 等),不建议使用中文,且长度不能超过128个字节;
map中的key和value 都不能使用特殊字符(例如:’\t’、’\n’、’�’ 等),key 不能超过128个字节,value 不能超过256个字节。
id,ts,du是保留字段,不能作为event id及key的名称。
每个应用至多添加500个自定义事件,每个event 的 key不能超过10个,每个key的取值不能超过1000个。如需要统计支付金额、使用时长等数值型的连续变量,请使用计算事件(不允许通过key-value结构来统计类似搜索关键词,网页链接等随机生成的字符串信息)。
渠道分析
有时需要统计应用程序的分发渠道,例如有多少用户来从应用汇 下载了您的应用,又有多少用户通过GooglePlay下载到您的应用程序。你调用初始化接口时传入的channelId可以完成这个功能。
注意:
每台设备仅记录首次安装激活的渠道,在其他渠道再次安装不会重复计量。 所以在测试不同的渠道的时候,请使用不同的设备来分别测试。channelId注意不能是纯数字。
使用页面访问统计
您可以统计每个UI视图的停留时长及路径 为UI设计提供参考
需要配对使用,如
GA.PageBegin(“UIPanel1”);
…
GA.PageEnd(“UIPanel1”);
注意:
我们针对页面访问进行的是抽样统计,所以只有数据量达到一定规模之后才可以看到。
由于这组方法的调用,需要保证线性不交叉,每个 PageBegin 都有一个 PageEnd 配对,如下:
PageBegin ->PageEnd-> PageBegin -> PageEnd -> PageBegin ->PageEnd
这样才能保证每个页面统计的正确
集成测试
//集成测试请使用此函数获得 设备的识别信息
public static string GetDeviceInfo()SetLogEnabled(bool value)设置为true,umeng SDK 会输出log信息,记得release产品时要设置回false。SetLogEncryptEnabled(bool value)设置是否对日志信息进行加密, 默认false(不加密)。value 设置为true, SDK会将日志信息做加密处理
U-Game相关集成方法
充值
玩家支付货币兑换虚拟币,用于统计游戏的收入情况
public enum PaySource
{
AppStore = 1,
支付宝 = 2,
网银 = 3,
财付通 = 4,
移动 = 5,
联通 = 6,
电信 = 7,
Paypal = 8,
Source9,// 目前1-20的来源已经被友盟+预定义,如果使用自定义来源请使用21-99之间的id。
Source10,
…
Source20,
}
// 充值.
void Pay(double cash, PaySource source, double coin);
// 充值并购买道具.
void Pay(double cash, PaySource source, string item, int amount, double price);字段 | cash | source | coin | item | amount | price |
含义 | 真实币数量 | 支付渠道 | 虚拟币数量 | 道具ID | 道具数量 | 道具单价 |
取值 | 大于0的整数 | 枚举类型, 目前1-20的来源已经被预定义,如果使用自定义来源请使用21-99之间的id。 | 大于0的整数, 最多只保存小数点后2位 | 非空字符串 | 大于0的整数 | 大于0的数, 最多只保存小数点后2位 |
在游戏中充值或者购买虚拟币的时候调用此方法,比如通过支付宝用 10元钱 购买了 1000 个金币,可以这样调用:
GA.Pay(10, GA.PaySource.AppStore, 1000);有些时候在游戏中会直接购买某个道具,比如10元购买 2个魔法药水,每个药水50个金币,可以调用下面的方法在付费的同时购买道具。
GA.Pay(10, GA.PaySource.AppStore, “magic_bottle”, 2, 50);购买
玩家用虚拟币兑换一定数量、价值的道具
// 购买道具
void Buy(string item, int amount, double price);字段 | item | amount | price |
含义 | 道具ID | 道具数量 | 道具单价 |
取值 | 非空字符串 | 大于0的整数 | 大于0的数, 最多只保存小数点后2位 |
买道具需要传递道具ID、数量(amount)、道具单价(price)。在游戏中使用金币购买了1个头盔,一个头盔价值 1000 金币,可以这样统计:
GA.Buy(“helmet”, 1, 1000);消耗
玩家使用道具的情况
// 使用道具.
void Use(string item, int amount, double price);字段 | item | amount | price |
含义 | 道具ID | 道具数量 | 道具单价 |
取值 | 非空字符串 | 大于0的整数 | 大于0的数, 最多只保存小数点后2位 |
消耗道具需要传递道具ID、数量(amount)、道具单价(price)。
游戏中的物品损耗,比如使用了2瓶魔法药水,每个需要50个虚拟币,可以这样统计:
GA.Use(“magic_bottle”, 2, 50);关卡
记录玩家在游戏中的进度
// 进入关卡.
void StartLevel(string level);
// 通过关卡.
void FinishLevel(string level);
// 未通过关卡.
void FailLevel(string level);字段 | level |
含义 | 关卡id |
取值 | 非空字符串(eg:level-01) |
开发者需要在关卡状态变动时调用startLevel方法重新设置当前关卡。 多次调用startLevel,以最后设置的为准
在游戏开启新的关卡的时候调用 startLevel 方法,在关卡失败的时候调用 failLevel 方法,在成功过关的时候调用 finishLevel 方法。
调用 failLevel 或 finishLevel 的时候会计算从 startLevel 开始的时长,作为这一关卡的耗时。level 字段最好为非空可排序的字符串。
SDK 默认减去程序切入后台的时间。
玩家信息统计
增加玩家账号统计维度,同时可以追踪玩家的等级情况。以便结合关卡和付费数据整理出更有价值的用户。开发者应该在程序开始的地方尽早调用。
账号统计
**注意:SetUserInfo已弃用,使用老版SDK中账号统计的开发者,请尽早更新SDK并使用新接口:**
void ProfileSignIn(string userId)
void ProfileSignIn(string userId,string provider)
ID:玩家账号ID,长度小于64字节
provider : 不能以下划线”_”开头,使用大写字母和数字标识; 如果是上市公司,建议使用股票代码。
使用sign-In函数后,如果结束该userId的统计,需要调用ProfileSignOfff函数
void ProfileSignOff()
示例:当玩家使用游戏自有账号登录时,可以这样统计
GA.ProfileSignIn(“playerID”)
当玩家使用第三方账号(如新浪微博)登录时,可以这样统计:
GA.ProfileSignIn(“playerID”,”WB”)
玩家等级统计
当玩家建立角色或者升级时,需调用此接口
void SetUserLevel(int level);
level:大于1的整数,最多统计1000个等级
当玩家从1级升至2级时,可以这样统计:
GA.SetUserLevel(2);
额外奖励
游戏中发生的金币、道具赠送行为
public enum BonusSource
{
系统奖励 = 1,
Source2,// 如果使用其他的来源 请使用Source2 到Source 10 并在友盟+后台网站设置 对应的定义
Source3,
…
Source10,
}
// 赠送金币.
void Bonus(double coin, BonusSource source);
// 赠送道具.
void Bonus(string item, int amount, double price, BonusSource source);字段 | coin | source | item | amount | price |
含义 | 虚拟币数量 | 奖励渠道 | 道具ID | 道具数量 | 道具单价 |
取值 | 大于0的整数, 最多只保存小数点后2位 | 枚举类型, 其中Source1预定义为“系统奖励”,Source2~Source10的定义需要在友盟+后台设置 | 非空字符串 | 大于0的整数 | 大于0的数, 最多只保存小数点后2位 |
=0 消耗道具需要传递道具ID、数量(amount)、道具单价(price)。 Demo
连续5天登录游戏奖励1000金币,可以这样统计:
GA.Bonus(1000,GA.BonusSource.系统奖励);
如果在五一假期中举行登录有奖活动,开发者想统计活动期间所赠送的金币数量,可以这样统计:
GA.Bonus(10000,BonusSource.Source2);
然后在后台“设置”——“虚拟币来源管理”中将“2”这个事件设为节日奖励。即可看到相应的数据了。