友盟统计

官方文档:http://dev.umeng.com/analytics/ios-doc/integration

1. 集成准备

1.1 获得Appkey

集成友盟SDK之前,您首先需要到友盟官网(http://dev.umeng.com/analytics/ios-doc/www.umeng.com)注册并且添加新应用,获得Appkey

特别提醒:我们建议开发者在注册账号时使用企业邮箱,避免使用个人邮箱注册,防止由于个人离职带来的问题,建议使用的账号形式 :umeng@企业域名、apps@企业域名、dev@企业域名。


dev5.png

1.1.1 FAQ

Q :应用的安卓版和IOS版能否共用一个appkey
A :不同平台的应用禁止使用相同的Appkey,需要分开注册。

Q :注册应用时,提示“应用名称已存在”
A :友盟后台的应用名与实际应用名和包名无关,建议命名为“应用名+平台(IOS/Android)”。

1.2 下载SDK

下载地址:http://dev.umeng.com/analytics/ios-doc/sdk-download

1.3 导入SDK

1.3.1 下载SDK并集成

请在你的工程目录结构中,添加友盟统计框架,在选项TARGETS--> Build Phases-->Link Binary With Libraries-->Add Other,选择文件UMMobClick.framework文件并选择确认;添加系统依赖框架(Framework)和编译器选项 TARGETS-->Build Phases-->Link Binary With Libraries--> + -->CoreTelephony.framework libz.tbd libsqlite.tbd.

如果使用UTDID,则下载UTDID.framework文件,并在工程配置的other linker flag中添加-force load和UTDID框架(Taobao提供的一个设备标识生成库)的路径,如下图

utdid.png

另外需要加入系统库Security.framework的引用。

如果你需要在Cocoapods中使用友盟统计SDK,请参考下面的流程。

1.3.2 使用 Cocoapods 安装 SDK

1.Cocoapods 安装完成后,在你的项目根目录创建一个 Podfile 文件,添加如下内容:

pod 'UMengAnalytics'//标准SDK,含IDFA


pod 'UMengAnalytics-NO-IDFA'//无IDFA版SDK(请根据需要选择其中一个)

2.在terminal下运行命令如下:

pod install

命令执行完成后即可完成统计SDK的下载安装。

2. 基本功能集成

2.1 配置 AppDelegate.m (代表你的工程名字)

导入头文件#import "UMMobClick/MobClick.h"
*AppDelegate.m 的配置主要包括填写Appkey,设置发送策略和填写渠道id三部分,代码示例如下:

#import "UMMobClick/MobClick.h"

...
- (BOOL])application:(UIApplication] *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UMConfigInstance.appKey = @"xxxxxxxxxxxxxx...";
    UMConfigInstance.ChannelId = @"App Store";
    UMConfigInstance.eSType = E_UM_GAME; //仅适用于游戏场景,应用统计不用设置   
    …  
    [MobClick startWithConfigure:UMConfigInstance];//配置以上参数后调用此方法初始化SDK!
}

UMConfigInstance为SDK参数配置的实例类,只需要将其成员中标注为required的参数赋值,optional的为可选项。
appKey为开发者在友盟后台申请的应用Appkey(Appkey可在统计后台的 “统计分析->设置->应用信息” 页面查看);
ChannelId的值为应用的渠道标识。默认为 @"App Store"。

2.1.1 appkey填写

将UMConfigInstance.appkey:@"xxxxxxxxxxxxxxx"中的xxxxxxxxxxxxxxx替换为您在友盟后台申请的应用Appkey(Appkey可在统计后台的 “统计分析->设置->应用信息” 页面查看)。

2.1.2 channel填写

将UMConfigInstance.ChannelId:@"Web" 中的Web 替换为您应用的推广渠道。channelId为nil或@""时,默认会被当作@"App Store"渠道。

渠道命名规范:
可以由英文字母、阿拉伯数字、下划线、中划线、空格、括号组成,可以含汉字以及其他明文字符,但是不建议使用中文命名,会出现乱码。
首尾字符不可以为空格
最多256个字符
"App Store" 及其各种大小写形式,作为友盟保留的字段,不可以作为渠道名。
在您查看数据时,渠道会作为一个数据细分的维度。
非常重要:每台设备仅记录首次安装激活的渠道,如果该设备再次安装其他渠道包,则数据仍会被记录在初始的安装渠道上。 所以在测试不同的渠道时,请使用不同的设备来分别测试。也可使用集成测试功能进行测试,了解更多集成测试(http://dev.umeng.com/analytics/functions/testmode)

2.1.3 FAQ

Q :如何添加渠道?
A :一个包中只能添加一个渠道,多个渠道需要打多个包。开发者新增渠道需要在工程manifest中或者activity中调用接口添加我们的渠道信息,友盟后台没有添加渠道的地方。您也可以使用多渠道打包工具,点击这里:http://bbs.umeng.com/thread-8199-1-1.html

Q :如何删除不需要的渠道
A :没有删除的功能,但是可以隐藏,在 设置--渠道里可以隐藏渠道

2.1.4 设置发送策略

发送策略设定了用户产生的数据发送回友盟服务器的频率。

iOS平台数据发送策略包括BATCH(启动时发送)和SEND_INTERVAL(按间隔发送)两种,友盟默认使用启动时发送(更省流量),您可以在代码reportPolicy:BATCH中更改发送策略。

  1. 启动时发送:新增、活跃、启动次数等数据在APP本次打开时即刻发送,使用时长、自定义事件、错误统计等在使用过程中产生的所有消息数据都在下次启动应用时发送。如果应用程序启动时处在不联网状态,那么消息将会缓存在本地,下次再尝试发送。

  2. 按间隔发送:按特定间隔发送数据,间隔时长介于90秒与1天之间。新增、活跃、启动次数等数据在APP本次打开时即刻发送,使用时长、自定义事件、错误统计等在使用过程中产生的所有数据都按间隔发送,如果应用程序启动时处在不联网状态,那么消息将会缓存在本地,下次再尝试发送。

2.1.5 发送策略设置方法

在后台 统计分析->设置->发送策略 页面自定义发送间隔。具体如下图:

153335kh7yge36136o67dl.png.thumb.jpg.png

点击发送策略之后,可以看到设置页面

153343tv1zhcx96cg4g1gg.png.thumb.jpg.png

注意 :
(1)在没有获取到在线配置时,默认使用启动时发送的策略;
(2)在打开debug调试模式或者使用集成测试时,不受发送策略控制。
(3)在iOS应用中,可以通过代码设置发送策略,也可以在后台进行设置,后台配置的优先级高于本地配置(即代码中的配置)。

2.1.6 version标识

以App打包时的Build号作为应用程序的版本标识,不能通过友盟SDK或友盟后台配置。

友盟SDK为了兼容Xcode3的工程,默认取的是Build号,如果需要取Xcode4及以上版本的Version,可以在StartWithAppkey之前调用下面的方法:

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
[MobClick setAppVersion:version];

2.1.7 FAQ

Q :在版本分布中没有看到应用相应的版本
A :请查看设置--版本--已隐藏版本列表,是否隐藏了该版本。

2.2 账号的统计

友盟在统计用户时以设备为标准,如果需要统计应用自身的账号,请使用以下接口(需使用3.6.4及以上版本SDK):

+ (void)profileSignInWithPUID:(NSString *)puid;
+ (void)profileSignInWithPUID:(NSString *)puid provider:(NSString *)provider;

PUID:用户账号ID.长度小于64字节
Provider:账号来源。如果用户通过第三方账号登陆,可以调用此接口进行统计。不能以下划线"_"开头,使用大写字母和数字标识,长度小于32 字节 ; 如果是上市公司,建议使用股票代码。

+(void)profileSignOff;

账号登出时需调用此接口,调用之后不再发送账号相关内容。

2.2.1 示例:

当用户使用自有账号登录时,可以这样统计:

[MobClick profileSignInWithPUID:@"playerID"];

当用户使用第三方账号(如新浪微博)登录时,可以这样统计:

[MobClick profileSignInWithPUID:@"playerID" provider:@"WB"];

2.2.2 启动账号统计

集成账号统计功能后,请到我的产品-设置-应用信息,选择启动使用账号统计报表,如下图

%E8%B4%A6%E5%8F%B7.png

如果您集成了新版SDK的账号接口,可以通过启动账号统计开关,来开启账号报表的展现。账号统计报表开关仅作用于报表的展现,不影响数据的计算。您可以根据实际的需要来启动或者暂停该功能。集成此功能的第二天才能在后台报表看见账号的数据。可在下图所示位置查看

111.png
222.png

3. 页面的统计

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

 - (void)viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
        [MobClick beginLogPageView:@"PageOne"];//("PageOne"为页面名称,可自定义)
    }
- (void)viewWillDisappear:(BOOL)animated 
    {
        [super viewWillDisappear:animated];
        [MobClick endLogPageView:@"PageOne"];
    }   

注意: 页面统计集成正确,才能够获取正确的页面访问路径、访问深度(PV)的数据。

3.1 日志加密设置

您可以通过如下代码来设置加密模式。

/** 设置是否对日志信息进行加密, 默认NO(不加密). */
+ (void)setEncryptEnabled:(BOOL)value;

如果@param value为YES,SDK会对日志进行加密。加密模式可以有效防止网络攻击,提高数据安全性。
如果@param value为NO,SDK将按照非加密的方式来传输日志。
如果您没有设置加密模式,SDK的加密模式为NO(不加密)。

3.2 后台模式设置

您可以设置在应用切入后台时,是否进入background模式。 对于支持backgound模式的APP,SDK可以确保在进入后台时,完成对日志的持久化工作,保证数据的完整性。您可以通过以下方法对后台模式进行设置:

/** 设置是否开启background模式, 默认YES. */
+ (void)setBackgroundTaskEnabled:(BOOL)value;

后台模式默认为开启状态,对于已支持background模式和一般app不会有影响。您也可以将@param value设置为NO,来关闭掉background模式。
到此,基本统计功能集成已经完成。

4. 自定义事件的统计

自定义事件可以实现在应用程序中埋点来统计用户的点击行为。自定义事件目前包括“计数事件”和“计算事件”

4.1 使用自定义事件的依赖条件

使用自定义事件功能请先登陆友盟官网,在“统计分析->设置->事件”(子账户由于权限限制可能无法看到“设置”选项,请联系主帐号开通权限。)页面中添加相应的事件id(事件id可用英文或数字,不要使用中文和特殊字符且不能使用英文句号“.”您可以使用下划线“_”),然后服务器才会对相应的事件请求进行处理。

4.2 计数事件

使用计数事件需要在后台添加事件时选择“计数事件”。

4.2.1 统计发生次数

在您希望跟踪的代码部分,调用如下方法:

[MobClick event:(NSString *)eventId];

eventId 为当前统计的事件ID。

示例:统计微博应用中"转发"事件发生的次数,那么在转发的函数里调用:

[MobClick event:@"Forward"];

4.2.2 统计点击行为各属性被触发的次数

考虑事件在不同属性上的取值,可以调用如下方法:

[MobClick event:(NSString *)eventId attributes:(NSDictionary *)attributes];

attributes 为当前事件的属性和取值(键值对),不能为空。

示例:统计电商应用中“购买”事件发生的次数,以及购买的商品类型及数量,那么在购买的函数里调用:

NSDictionary *dict = @{@"type" : @"book", @"quantity" : @"3"};
[MobClick event:@"purchase" attributes:dict];    

4.3 计算事件

使用计算事件需要在后台添加事件时选择“计算事件”。

4.3.1 统计数值型变量的值的分布

统计一个数值类型的连续变量(该变量必须为整数),用户每次触发的数值的分布情况,如事件持续时间、每次付款金额等,可以调用如下方法:

+[MobClick event:(NSString *)eventId attributes:(NSDictionary *)attributes counter:(int)number]; 

示例:购买《Swift Fundamentals》这本书,花了110元

[MobClick event:@"pay" attributes:@{@"book" : @"Swift Fundamentals"} counter:110];

如果您使用的是V3.1.2以下版本的SDK,请使用下面的方法:

-(void)umengEvent:(NSString *)eventId attributes:(NSDictionary *)attributes number:(NSNumber *)number{
        NSString *numberKey = @"__ct__";
        NSMutableDictionary *mutableDictionary = [NSMutableDictionary dictionaryWithDictionary:attributes];
        [mutableDictionary setObject:[number stringValue] forKey:numberKey];
        [MobClick event:eventId attributes:mutableDictionary];
}

示例:购买《Swift Fundamentals》这本书,花了110元

[self umengEvent:@"pay" attributes:@{@"book" : @"Swift Fundamentals"} number:@(110)];

4.3.2 统计点击次数及各属性触发次数

计算事件除能够统计数值型的参数外还具有计数事件的所有功能。

5. 错误分析

友盟iOS统计SDK默认自带错误分析功能,不需要开发者手动调用。如果开发者自己做了错误捕捉,可以调用下面方法关闭友盟的错误统计:

[MobClick setCrashReportEnabled:NO];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容