ios swift工程友盟埋点统计集成
2019-02-26 本文已影响3人
CSCloud
1. cocoapods集成友盟第三方SDK
pod 'UMCCommonLog' // 控制台打印相关信息SDK
pod 'UMCCommon' // 友盟通用方法SDK
pod 'UMCSecurityPlugins' // 友盟安全插件SDK
pod 'UMCAnalytics' // 友盟数据分析SDK
pod 'UMCPush' // 友盟推送SDK,这个后期会用到
pod 'UMCErrorCatch' // 友盟错误捕获SDK,有点类似bugly,目前还是使用bugly
2. swift工程,需要在桥接文件里面导入SDK头文件
#import <UMCommon/UMCommon.h>
#import <UMAnalytics/MobClick.h>
3. appdelegate类启动函数里面初始化SDK
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
UMConfigure.setEncryptEnabled(true)
UMConfigure.setLogEnabled(false) // 是否打印友盟输出信息
UMConfigure.initWithAppkey("5c6d2a64b465f55a3800023d", channel: "") // 初始化
MobClick.setScenarioType(.E_UM_NORMAL) // 参数是普通统计还是游戏统计
return true
}
4. 封装一个事件点击类
class CSCMobClick: NSObject {
override init() {
super.init()
}
static func event(eventId: String!, label: String!) {
// MobClick.event(eventId, label: label)
var attributes = [AnyHashable: Any]()
attributes["label"] = label
CSCMobClick.event(eventId: eventId, attributes: attributes)
}
static func event(eventId: String!, attributes: [AnyHashable: Any]!) {
var tmpAttributes = attributes
// 这里可以传一些所有点击事件都需要传的参数
MobClick.event(eventId, attributes: tmpAttributes)
}
}
注:看个人需求可以扩展封装类,满足自己工程的需求
5. 友盟-我的产品-移动统计-进入新版-应用列表-选择自己的应用-功能使用-自定义事件里面-添加事件
一般分为计数事件和计算事件,简单点击次数的统计用计数事件,需要统计一个事件的时长使用计数事件
6. 工程中在对应事件触发处插入统计代码
CSCMobClick.event(eventId: "事件ID", attributes: 参数)
7. 点击事件函数对应参数可以查看SDK文档
//---------------------------------------------------------------------------------------
/// @name 事件统计
///---------------------------------------------------------------------------------------
/** 自定义事件,数量统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
@param eventId 网站上注册的事件Id.
@param label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签.
@param accumulation 累加值。为减少网络交互,可以自行对某一事件ID的某一分类标签进行累加,再传入次数作为参数。
@return void.
*/
+ (void)event:(NSString *)eventId; //等同于 event:eventId label:eventId;
/** 自定义事件,数量统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
*/
+ (void)event:(NSString *)eventId label:(NSString *)label; // label为nil或@""时,等同于 event:eventId label:eventId;
/** 自定义事件,数量统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID
*/
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes;
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes counter:(int)number;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
beginEvent,endEvent要配对使用,也可以自己计时后通过durations参数传递进来
@param eventId 网站上注册的事件Id.
@param label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签.
@param primarykey 这个参数用于和event_id一起标示一个唯一事件,并不会被统计;对于同一个事件在beginEvent和endEvent 中要传递相同的eventId 和 primarykey
@param millisecond 自己计时需要的话需要传毫秒进来
@return void.
@warning 每个event的attributes不能超过10个
eventId、attributes中key和value都不能使用空格和特殊字符,必须是NSString,且长度不能超过255个字符(否则将截取前255个字符)
id, ts, du是保留字段,不能作为eventId及key的名称
*/
+ (void)beginEvent:(NSString *)eventId;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)endEvent:(NSString *)eventId;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)beginEvent:(NSString *)eventId label:(NSString *)label;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)endEvent:(NSString *)eventId label:(NSString *)label;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)beginEvent:(NSString *)eventId primarykey :(NSString *)keyName attributes:(NSDictionary *)attributes;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)endEvent:(NSString *)eventId primarykey:(NSString *)keyName;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)event:(NSString *)eventId durations:(int)millisecond;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)event:(NSString *)eventId label:(NSString *)label durations:(int)millisecond;
/** 自定义事件,时长统计.
使用前,请先到友盟App管理后台的设置->编辑自定义事件 中添加相应的事件ID,然后在工程中传入相应的事件ID.
*/
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes durations:(int)millisecond;