分享

关于友盟统计分析 iOS SDK——真正的独立第三方评测来了_U盟友盟统计分析论坛_友盟开发者社区

 琉璃000 2016-03-09


评测环境

评测环境:

测试对象

友盟iOS统计SDK v3.1.2

测试环境

MAC OS X(10.10) Xcode (5.1)

测试设备

iPhone 4S

系统版本

iOS 5.1

设备网络

wifi

测试方法

客户端运行实例 测试API接口

测试时间

2014-07-25 10:10

测试时长

3小时


基本参数:

是否免费

免费

支持平台

Android、iOS、Windows Phone、  Windows RT

统计延时

1-3秒

单个事件参数上限

10

参数值上限

1000

无网络环境

支持

对应用运行的影响

耗流量

统计log数据包

0.7K


集成过程

客户端集成


如何快速集成友盟统计SDK:

注册友盟账号=》创建应用=》下载SDK=》集成开发=》测试应用=》发布应用


1.注册友盟账号

友盟开发者账号的注册地址:

http://www./users/sign_up


2.创建新应用

使用注册的友盟账号登录后进入我的产品,在屏幕左方会看到一个“添加新应用”按钮,点击选择添加新应用:

创建新应用


提交成功后会获得Appkey并提示如下界面,然后就可以进入测试模式。


获得Appkey


3.下载IOS SDK

进入我的产品,选择刚创建的应用,左下方有个iOS 统计SDK下载的按钮,点击即可下载统计SDK。


下载IOS SDK


4.集成开发

1)新建一个工程


新建工程


2)添加友盟SDK和静态库

    将下载的iOS SDK压缩包中的UMAnalytics_Sdk_3.1.2文件夹加入到工程中去,再添加libz.dylib。

3)导入头文件,添加测试文件

    在.pch文件先加入如下代码:

1#import 'MobClick.h'
2#define APPKEY @'53cde22c56240b55aa02368c'

随便用一张测试图片加入到工程中去。


4)基本功能集成

首先配置统计发送策略和渠道


01- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
02{
03//reportPolicy:发送策略,只在模拟器和DEBUG模式下生效,真机release模式会自动改成BATCH。
04    //channelId:应用推广渠道
05    [MobClick startWithAppkey:APPKEY reportPolicy:BATCH channelId:@'Web'];
06    //设置APP版本号
07    [MobClick setAppVersion:XcodeAppVersion];
08    //设置打印sdk的log信息
09    [MobClick setLogEnabled:YES];
10}


实现页面的统计需要在每个View中配对调用如下方法:


1- (void)viewWillAppear:(BOOL)animated{
2    [super viewWillAppear:animated];
3    [MobClick beginLogPageView:@'PageOne'];
4}
5  
6- (void)viewWillDisappear:(BOOL)animated{
7    [super viewWillDisappear:animated];
8    [MobClick endLogPageView:@'PageOne'];
9}

5)添加测试设备

由于这里使用的是测试数据,需要添加测试设备,并且自定义事件;

进入我的产品,管理,选择集成测试中的测试设备,这里可以看到测试设备列表,选择添加测试设备,进入如下界面;


添加测试设备


选择设备所属平台,中间那个就是iPhone设备,在下方会出现这样一段代码:


1Class cls = NSClassFromString(@'UMANUtil');
2SEL deviceIDSelector = @selector(openUDIDString);
3NSString *deviceID = nil;
4if(cls && [cls respondsToSelector:deviceIDSelector]){
5  deviceID = [cls performSelector:deviceIDSelector];
6}
7NSLog(@'{\'oid\': \'%@\'}', deviceID);

把这段代码复制到项目工程中任意可运行处,运行工程;

将会产生日志输出,即设备识别信息,将输出的日志信息复制到上图中的设备识别信息栏中去。


编辑设备信息



确定后编辑设备信息完成。

6)统计自定义事件

    要使用自定义事件,首先,在应用界面的统计分析-设置-事件页面中添加新的事件。


添加事件


正确填写完相关信息即可完成事件创建。


事件管理


例如要统计一个音乐播放事件,有name和singer参数,要统计它的发生次数,统计代码部分:


1NSDictionary *dict = @{@'name':@'Snow',@'singer':@'Bandari'};
2[MobClick event:@'1001' attributes:dict];

这里的event是事件ID,attributes是参数,需要传进来一个字典。这样就可以统计事件在不同属性的取值。


7)获取在线参数

需要预先在网站上配置好参数,进入组件-在线参数添加新参数


添加参数


添加完成后,在项目工程中添加如下代码:


1//从服务器获取在线参数,缓存本地
2[MobClick updateOnlineConfig];
3//通知监听在线参数获取完毕
4[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onlineConfigCallBack:) name:UMOnlineConfigDidFinishedNotification object:nil];
5- (void)onlineConfigCallBack:(NSNotification *)notification {
6    NSLog(@'online config has fininshed and params = %@', notification.userInfo);
7}

8)社交统计

使用社交统计需要引用头文件:


1#import 'MobClickSocialAnalytics.h'

例如当发送完一条新浪微博后,把发送拿到的微博类型,微博id,用户id初始化:


1MobClickSocialWeibo *weibo = [[MobClickSocialWeibo alloc]initWithPlatformType:MobClickSocialTypeSina weiboId:sinaWbId usid:nil param:nil];


参数:PlatformType是平台名,weiboId是发送完新浪微博获得的微博id,usid是用户id,param是微博相关参数;

然后把微博数据统计发送到友盟服务器:


1[MobClickSocialAnalytics postWeiboCounts:@[weibo] appKey:APPKEY topic:@'这是测试用,你们不要理我' completion:^(NSDictionary *response, NSError *error) {
2            NSLog(@'社交回调response:%@',response);
3        }];

参数:WeiboCounts是微博数组,appKey是应用的Appkey,topic是发送微博内容或话题。


9)广告(防止被AppStore审核拒绝)

获取广告URL,然后用一个WebView来展示:


1NSString *urlStr = [MobClick getAdURL];
2NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlStr]];
3[webVIew loadRequest:request];

主要功能

应用趋势(包括新增用户、活跃用户、留存用户、启动次数等信息)


应用趋势


渠道分析:显示用户来自的渠道和新增用户,活跃用户,累计占比等


渠道分析


终端属性(设备终端,网络及运营商,地域)


终端属性



功能特色——社会化分享统计


社会化分享统计


自定义事件统计


自定义事件统计




DEMO展示

部分测试DEMO如下所示:


01- (void)viewDidLoad
02{
03    [super viewDidLoad];
04     
05    self.title = @'友盟统计';
06     
07    UILabel *countLabel = [[UILabel alloc]initWithFrame:CGRectMake(30, 20, 100, 44)];
08    countLabel.text = @'计数统计';
09    countLabel.textAlignment = UITextAlignmentCenter;
10    [self.view addSubview:countLabel];
11     
12    NSArray *musicArr = @[@'轻音乐',@'摇滚',@'民谣'];
13    for (int i = 0; i<3; i ) {
14        UIButton *musicBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
15        [musicBtn setTitle:[musicArr objectAtIndex:i] forState:UIControlStateNormal];
16        musicBtn.frame = CGRectMake(20, 20 50 64*i, 120, 44);
17        musicBtn.tag = 1001 i;
18        [musicBtn addTarget:self action:@selector(musicEvent:) forControlEvents:UIControlEventTouchUpInside];
19        [self.view addSubview:musicBtn];
20    }
21     
22    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@'微博分享' style:UIBarButtonItemStyleBordered target:self action:@selector(shareBtnClick)];
23     
24    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@'广告' style:UIBarButtonItemStyleBordered target:self action:@selector(openGG)];
25     
26}
27  
28  
29- (void)musicEvent:(UIButton *)sender
30{
31    switch (sender.tag) {
32        case 1001:
33        {
34            NSDictionary *dict = @{@'name':@'Snow',@'singer':@'Bandari'};
35            [MobClick event:@'1001' attributes:dict];
36        }
37            break;
38        case 1002:
39        {
40            NSDictionary *dict = @{@'name':@'回不去了',@'singer':@'信乐团'};
41            [MobClick event:@'1002' attributes:dict];
42        }
43            break;
44        case 1003:
45        {
46            NSDictionary *dict = @{@'name':@'山楂树之恋',@'singer':@'徐千雅'};
47            [MobClick event:@'1003' attributes:dict];
48        }
49            break;
50        default:
51            break;
52    }
53}
54- (void)shareBtnClick
55{
56    [UMSocialSnsService presentSnsIconSheetView:self appKey:APPKEY shareText:@'这是测试用,你们不要理我'
57                                     shareImage:[UIImage imageNamed:@'27.jpg'] shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina, nil] delegate:self];
58}
59  
60- (void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
61{
62    if (response.responseCode == UMSResponseCodeSuccess)
63    {
64        NSLog(@'share to sns name is %@',[[response.data allKeys]objectAtIndex:0]);
65        NSDictionary *dict = response.data;
66        NSString *sinaWbId = [NSString stringWithFormat:@'%@',[[[[dict objectForKey:@'sina']objectForKey:@'data']objectForKey:@'send_result']objectForKey:@'id']];
67        NSLog(@'weiboID:%@',sinaWbId);
68        MobClickSocialWeibo *weibo = [[MobClickSocialWeibo alloc]initWithPlatformType:MobClickSocialTypeSina weiboId:sinaWbId usid:nil param:nil];
69        [MobClickSocialAnalytics postWeiboCounts:@[weibo] appKey:APPKEY topic:@'这是测试用,你们不要理我' completion:^(NSDictionary *response, NSError *error) {
70            NSLog(@'社交回调response:%@',response);
71        }];
72    }
73}
74  
75- (void)openGG{
76    NSString *urlStr = [MobClick getAdURL];
77    NSLog(@'%@',urlStr);
78    GGViewController *ggVC = [GGViewController new];
79    ggVC.urlString = urlStr;
80    [self.navigationController pushViewController:ggVC animated:YES];
81}
82  
83- (void)viewWillAppear:(BOOL)animated{
84    [super viewWillAppear:animated];
85    [MobClick beginLogPageView:@'PageOne'];
86}
87  
88- (void)viewWillDisappear:(BOOL)animated{
89    [super viewWillDisappear:animated];
90    [MobClick endLogPageView:@'PageOne'];
91}

更多测试DEMO可以下载评测DEMO包查看


测试日志

使用统计SDK可以获取的终端信息:


使用统计SDK可以获取的终端信息



获取在线参数配置:


获取在线参数配置


社交分享统计:


社交分享统计


遇到问题


1.进行统计的时候,网站的测试日志没有立即显示,原因是发送策略选择的是启动时发送,必须要在APP下次启动的时候才会发送统计的数据。


遇到问题


2.统计自定义事件,统计分析内的事件消息数为0,原因是笔者用的是测试设备,想要看到自定义事件消息,需要从管理内的集成测试历史日志看到。


遇到问题


上手难易


友盟统计iOS  SDK集成简单,对于刚接触统计的,只需要参考快速开始文档就可以轻松集成,如果想要使用高级功能如:自定义事件,在线参数,就需要多研究一会官方文档。


开发文档


iOS版本的统计分析参考文档地址:

http://dev./analytics/ios/quick-start#1


统计分析使用指南:

http://dev./analytics/guide/functions/funnel


另外SDK下载的压缩包内也有API文档。


查看原文


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多