评测环境
3G/WIFI网络下:
测试环境 |
Mac OS X 10.9.4 + Xcode 5.1.1 |
测试对象 |
百度移动统计(iOS版) |
测试手机 |
iPhone 5s |
系统版本 |
iOS 7.1.2 |
手机网络 |
3G/WIFI |
测试内容 |
百度移动统计 |
测试版本 |
Baidu_Mtj_iOS_SDK_V3.3 |
测试时间 |
2014-9-15 17:00 -2014-9-22 9:50 |
基本参数:
如何收费 |
免费 |
支持平台 |
iOS,Android |
Log数据包 |
1k |
集成SDK后多久可看到数据 |
60分钟 |
对APP体积增加大小 |
180k左右 |
用户量 |
每天处理会话请求超过10亿次 |
耗流量 |
小 |
自定义事件上限 |
暂无 |
单个事件参数上限 |
暂无 |
稳定性 |
很稳定 |
参数值上限 |
暂无 |
及时性 |
及时 |
无网络环境 |
支持 |
精准度 |
精准 |
对应用运行的影响 |
小 |
集成过程
客户端集成
1.在百度统计开发平台创建项目
项目创建地址: http://mtj.baidu.com/
点击 “新增应用”,创建我们的项目
创建名为“DevStore服务评测Demo”的应用
创建成功,保存下appkey,集成SDK后续过程会用到
至此,我们的项目在开发平台创建完成。下载我们需要集成的SDK,SDK下载地址: http://mtj.baidu.com/web/welcome/sdk
2.集成SDK
创建工程项目
项目创建完成
引用配置SDK
SDK下载解压如下,当前最新版本为V3.3
注:iOS_manual.pdf为百度统计SDK的接入指南文档
Products-armv7-armv7s文件夹是包含的有armv7 & armv7s架构以及模拟器 i386的SDK,示例Demo,Api 文档
Products-Support-arm64 文件夹是包含的有 arm64 & armv7 & armv7s 架构以及模拟器i386 的SDK,示例Demo,Api 文档
为了平台适应的兼容性我们这里采用Products-Support-arm64文件夹中提供的SDK,如下:
注:iOS-api 提供相应架构的SDK
iOS-demo 示例Demo
iOS-doc api文档
打开iOS-api文件夹,依次为真机使用的SDK,模拟器使用SDK,TouchJSON类库,通用的SDK。
可以根据不同的应用场景选用SDK,我这里的服务评测Demo,使用的通用SDK。
集成入项目,如下图SDK文件夹中:
注:引用百度统计SDK的时候需要同时加入TouchJSON类库,TouchJSON不支持ARC,这里需要做下处理下,ARC项目集成非ARC类库需要加入-fno-objc-arc如下(同样如果是非ARC项目引用ARC类库需要加入-fobjc-arc)。
加入依赖类库
注:AdSupport.framework要设置可选,同样如无用到广告服务为了上架审核通过,可以移除此项,后续代码集成部分中有涉及到.
OK,编译正常,下面开始我们的代码集成部分。
3.代码实现
在项目AppDelegate.m文件中里面加入
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#
import
"AppDelegate.h"
#
import
"BaiduMobStat.h"
#
import
<AdSupport/AdSupport.h>
//根据需要添加
#define APP_VERSION [[NSBundle mainBundle] infoDictionary][@
"CFBundleShortVersionString"
]
@implementation
AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
BaiduMobStat *statTracker=[BaiduMobStat defaultStat];
//获取统计对象的实例
statTracker.enableDebugOn=YES;
//测试环境建议开启,发布环境,为减少IO消耗应当设NO
statTracker.logStrategy=BaiduMobStatLogStrategyCustom;
//发送策略,自定义模式
statTracker.sessionResumeInterval =
10
;
//Session失效时间[0~600s],默认30s,意味着30s发送一次日志
statTracker.logSendInterval=
1
;
// 设置日志发送时间间隔[1~24h]
//statTracker.channelId=@"" 在管理后台添加渠道ID,默认appstore
statTracker.logSendWifiOnly=NO;
//只在WIFI下发送统计,这里为了统计的完整性建议设NO
statTracker.shortAppVersion=APP_VERSION;
//便于统计这里设置版本号
[statTracker startWithAppId:@
"1c4f7a954c"
];
//做管理后台创建的app Id
/*
NSString *adId=@"";
if ([[[UIDevice currentDevice] systemVersion] floatValue]>=6.0) {
adId=[[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
}
statTracker.adid=adId;
如没有用到广告服务adid这个参数可以不设置,设置可以提高统计精度。
如果没有本身项目未用到广告服务设置此字段可能导致审核被拒
*/
return
YES;
}
|
主要功能
百度移动统计是百度推出的基于移动APP统计的分析工具,主要有用户分析统计,页面访问统计,应用内事件统计,渠道版本统计,错误分析等功能。
功能特色
DEMO展示
ViewController.m文件中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
/**
* 触发事件
*/
-(IBAction)eventTrigger:(UIButton *)button
{
BaiduMobStat* statTracker = [BaiduMobStat defaultStat];
[statTracker logEvent:@
"Trigger"
eventLabel:@
"触发事件"
];
//eventID在需要在管理后台设置,eventLabel不为空
}
/**
* 触发crash
*/
-(IBAction)crashTrigger:(UIButton *)button
{
//触发一个越界Crash
NSArray *testAry=@[@
"1"
,@
"2"
,@
"3"
];
NSLog(@
"%@"
,testAry[3]);
}
/**
* 访问页面
*/
-(IBAction)visitViewController:(UIButton *)button
{
ViewDetailController *viewDetailViewController=[[ViewDetailController alloc] init];
viewDetailViewController.view.backgroundColor=[UIColor colorWithRed:0.231 green:0.319 blue:0.392 alpha:1.000];
[self.navigationController pushViewController:viewDetailViewController animated:YES];
}
/**
* 触发一个1s的事件
*/
-(IBAction)eventTriggerWithOneSecond:(UIButton *)button
{
BaiduMobStat* statTracker = [BaiduMobStat defaultStat];
[statTracker logEventWithDurationTime:@
"TriggerOneSecond"
eventLabel:@
"触发1s事件"
durationTime:1000];
}
/**
* 自定义事件
*/
-(IBAction)customEventTrigger:(UIButton *)button
{
static
Boolean isStart =
false
;
if
(isStart ==
false
)
{
//EventId是需要在管理后台设置的
BaiduMobStat* statTracker = [BaiduMobStat defaultStat];
[statTracker eventStart:@
"Custom"
eventLabel:@
"自定义事件 start"
];
isStart =
true
;
[button setTitle:@
"自定义事件 结束"
forState:UIControlStateNormal];
}
else
{
BaiduMobStat* statTracker = [BaiduMobStat defaultStat];
[statTracker eventEnd:@
"Custom"
eventLabel:@
"自定义事件 end"
];
isStart =
false
;
[button setTitle:@
"自定义事件 开始"
forState:UIControlStateNormal];
}
|
访问测试页面中的关键代码
1
2
3
4
5
6
7
8
9
10
11
|
#define LifeCycle
-(
void
) viewDidAppear:(
BOOL
)animated
{
[[BaiduMobStat defaultStat] pageviewStartWithName:@
"测试页面"
];
}
-(
void
) viewDidDisappear:(
BOOL
)animated
{
[[BaiduMobStat defaultStat] pageviewEndWithName:@
"测试页面"
];
}
|
注:自定义事件和一些渠道及其他参数需在管理后台设置如下
测试日志
遇到问题
在集成百度统计SDK过程中,笔者参照官方提供的文档以及示例Demo没有遇到太大问题,只有错误信息那里始终是暂无数据(人为的制造了Crash),如果只用到统计功能的话可以忽略。或者咨询官方,或者等待百度后续更新。
上手难易
集成比较容易,有一定iOS开发经验即可接入,文档比较详细,在测试模式可以打开日志查看一些错误信息。比较隐秘的有一点笔者在集成SDK过程中找不到appkey,找了好久才在管理平台的设置里面的应用信息里面找到(管理后台创建应用的appkey即为代码集成中app Id)
开发文档
1、在线文档地址: http://mtj.baidu.com/sdk/ios_3.3/
转自:http://www.devstore.cn/evaluation/testInfo/101-183.html