友盟+搜索

{{errorMsg}}

集成准备

相关视频教程,请前往友盟课堂

获得Appkey

集成友盟SDK之前,您首先需要到友盟官网注册并且添加新应用,获得Appkey

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

image

FAQ

:应用的安卓版和IOS版能否共用一个appkey

:注册应用时,提示“应用名称已存在”

:友盟后台的应用名与实际应用名和包名无关,

下载SDK

下载统计SDK 并解压缩。

导入SDK

导入SDK有以下两种方法,

下载SDK并集成

请在你的工程目录结构中,添加友盟统计框架,在选项,选择文件UMMobClick.framework文件并选择确认;添加系统依赖框架(Framework)和编译器选项

如果使用UTDID,则下载UTDID.framework文件,并在工程配置的other linker flag中添加-force load和UTDID框架的路径,如下图

Utdid

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

Cocoapods是一个很好的依赖管理工具,推荐参考官方文档《CocoaPods安装和使用教程》。 如果你需要在Cocoapods中使用友盟统计SDK,请参考下面的流程。

使用 Cocoapods 安装 SDK

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

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

pod 'UMengAnalytics-NO-IDFA'//无IDFA版SDK(

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

pod install

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

基本功能集成

配置 (*代表你的工程名字)

导入头文件#import "UMMobClick/MobClick.h"

的配置主要包括填写Appkey,设置发送策略和填写渠道id三部分,代码示例如下:


#import "UMMobClick/MobClick.h"
... - (])application:(] *)application didFinishLaunchingWithOptions:( *)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"。

appkey填写

中的替换为您在友盟后台申请的应用Appkey(Appkey可在统计后台的 页面查看)。

channel填写

中的替换为您应用的推广渠道。

渠道命名规范:
  1. 可以由英文字母、阿拉伯数字、下划线、中划线、空格、括号组成,可以含汉字以及其他明文字符,但是
  2. 首尾字符不可以为空格
  3. 最多256个字符
  4. "App Store" 及其各种大小写形式,作为友盟保留的字段,不可以作为渠道名。

在您查看数据时,渠道会作为一个数据细分的维度。

FAQ

:如何添加渠道?

:一个包中只能添加一个渠道,多个渠道需要打多个包。开发者新增渠道需要在工程manifest中或者activity中调用接口添加我们的渠道信息,友盟后台没有添加渠道的地方。您也可以使用多渠道打包工具,点击这里

:如何删除不需要的渠道

:没有删除的功能,但是可以隐藏,在 里可以隐藏渠道

 渠道统计使用中的问题请参见友盟开发者社区: 友盟渠道统计使用的那些事儿

设置发送策略

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

iOS平台数据发送策略包括(启动时发送)和(按间隔发送)两种,友盟默认使用启动时发送(更省流量),您

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

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

发送策略设置方法

在后台 页面自定义发送间隔。具体如下图:

image

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

image

(1)在没有获取到在线配置时,默认使用启动时发送的策略;

(2)在打开debug调试模式或者使用集成测试时,不受发送策略控制。

(3)在iOS应用中,可以通过代码设置发送策略,也可以在后台进行设置,后台配置的优先级高于本地配置(即代码中的配置)。

version标识

以App打包时的Build号作为应用程序的版本标识,

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

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

FAQ

:在版本分布中没有看到应用相应的版本

:请查看,是否隐藏了该版本。

账号的统计

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

+ (void)profileSignInWithPUID:(NSString *)puid;
+ (void)profileSignInWithPUID:(NSString *)puid provider:(NSString *)provider;
  • PUID:用户账号ID.长度小于64字节
  • Provider:账号来源。如果用户通过第三方账号登陆,可以调用此接口进行统计。不能以下划线"_"开头,使用大写字母和数字标识,长度小于32 字节 ; 如果是上市公司,建议使用股票代码。
+(void)profileSignOff;
  • 账号登出时需调用此接口,调用之后不再发送账号相关内容。

示例:

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

[MobClick profileSignInWithPUID:@];

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

[MobClick profileSignInWithPUID:@ provider:@];

启动账号统计

集成账号统计功能后,请到,选择启动使用账号统计报表,如下图

image

如果您集成了新版SDK的账号接口,可以通过启动账号统计开关,来开启账号报表的展现。。您可以根据实际的需要来启动或者暂停该功能。可在下图所示位置查看

image

image

页面的统计

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

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

注意:

 页面统计的常见问题参见友盟开发者社区: 页面访问路径中你需要了解的知识点页面访问路径常见问题详解

日志加密设置

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

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

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

后台模式设置

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

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

后台模式默认为开启状态,对于已支持background模式和一般app不会有影响。您也可以将@param value设置为NO,来关闭掉background模式。

自定义事件的统计

自定义事件可以实现在应用程序中埋点来统计用户的点击行为。自定义事件目前包括“计数事件”和“计算事件”,二者的区别以及详细说明请点击这里

 自定义事件使用中的问题请参见友盟开发者社区: 自定义事件常见问题关于自定义事件的那些事儿

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

使用自定义事件功能请先登陆友盟官网,在“”()页面中添加相应的事件id(事件id可用英文或数字,),然后服务器才会对相应的事件请求进行处理。

计数事件

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

统计发生次数

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

[MobClick event:(NSString *)eventId];

为当前统计的事件ID。

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

[MobClick event:@"Forward"];

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

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

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

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

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

NSDictionary *dict = @{@: @, @ : @};
[MobClick event:@attributes:dict];    

计算事件

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

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

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

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

[MobClick event:@ attributes:@{@ : @} counter:];

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

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

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

[self umengEvent:@ attributes:@{@ : @} number:@];

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

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

错误分析

友盟iOS统计SDK。如果开发者自己做了错误捕捉,可以调用下面方法关闭友盟的错误统计:

如何定位错误?

 错误统计的常见问题参见友盟开发者社区: 友盟错误分析常见问题汇总

在线参数

为了避免SDK中自动更新功能影响开发者应用的审批,在新的SDK中去除了自动更新功能及API声明,因此之前使用该功能的开发者请按照这篇帖子替代相关代码:iOS统计SDK “自动更新” 移除后的说明

以下【在线参数】内容仅针对3.5.16以前版本的SDK 在线参数使您可以在网站上动态配置预设好的参数的参数值。例如: 动态修改应用的欢迎语,修改应用中开关选项的"on"或"off",以及类似游戏中虚拟物品的价格等。

您需要在;之后添加

[MobClick updateOnlineConfig];

在线参数需要在网站编辑,在程序中使用这句代码从服务器获取参数,并缓存本地。 当在项目里需要获取某个具体参数时调用

[MobClick getConfigParams:@];

为友盟服务器上事先设置好的参数id。如果你想获取所有的在线参数,请使用:

[MobClick getConfigParams];

这两个方法都是从获取缓存的值,所以上面的方法要

建议放在 里执行,这样可以尽早获取参数数据。 在前后台切换时是不会执行的,如果需要在前后台切换时更新在线参数,可以在相关回调里执行

如果您需要知道在线参数何时获取完毕,可以监听 ,当这个通知发生时,最新的在线参数会传递给

您可以用类似下面的代码来完成这个过程:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onlineConfigCallBack:) name:UMOnlineConfigDidFinishedNotification object:nil];
- (void)onlineConfigCallBack:(NSNotification *)notification {
    NSLog(@, notification.userInfo);
}

最后别忘记调用 删除这个监听。

社交统计

友盟社交统计SDK可以非常详尽地统计应用中发生的各种社交行为。 如果您自己实现了分享功能,也不想切换到友盟的社会化组件,但是想使用友盟的社交统计功能,您可以采用这个非常轻量级的SDK,只需要调用一行代码,便可享用到丰富的社交行为和社交用户分析报表。

准备社交数据

在你需要使用社交统计的文件里引用如下头文件

以微博平台为例,当你发送微博完成之后把微博类型、拿到的微博id、用户id等字段进行初始化,例如下面的写法:

MobClickSocialWeibo *weibo=[[MobClickSocialWeibo alloc] initWithPlatformType:@ weiboId:@ usid:@ param:nil];

发送社交数据

以微博平台为例,把微博数据发送到友盟服务器,使用如下的方法:

将UMENG_APPKEY替换为您在友盟后台申请得到的Appkey。

至此,您的社交统计功能集成完毕,可以登录友盟官网 页面查看统计报表。

方法说明

以微博平台为例,在你发送微博完成之后调用微博初始化方法

-(id)initWithPlatformType:(MobClickSocialTypeString)platformType weiboId:(NSString *)weiboId usid:(NSString *)usid param:(NSDictionary *)param;
形参 说明
platformType 微博平台名
weiboId 发送微博完成后,得到的微博id,可以设置为nil
usid 微博的用户id,可以设置为nil
param 微博相关参数,可以设置为nil

发送微博数据的方法:

+(void)postWeiboCounts:(NSArray *)weibos appKey:(NSString *)appKey topic:(NSString *)topic completion:(MobClickSocialAnalyticsCompletion)completion;
形参 说明
weibos 要统计的微博数组
appKey 友盟appkey
topic 话题,或者是你发送微博内容,可以设置为nil
completion 回调Block对象,可以设置为nil

回调方法的使用

例如传入下面的回调对象:

MobClickSocialAnalyticsCompletion completion = ^(NSDictionary *result, NSError *error) {
    NSLog(@"result is %@",result);
    //result里面包含分别为key为st、msg、data,分别代表错误码、错误描述、返回数据
    //error代表网络连接等错误
};

测试与调试

确认如下内容

  • 确认APPKEY正确
  • 确认添加了
  • 确认测试手机(或者模拟器)已成功连入网络
  • 集成中可能出现的问题,点击这里

使用集成测试服务(推荐)

集成测试是通过收集和展示已注册测试设备发送的日志,来检验SDK集成有效性和完整性的一个服务。 所有由注册设备发送的应用日志将实时地进行展示,您可以方便地查看包括应用版本、渠道名称、自定义事件、页面访问情况等数据,提升集成与调试的工作效率。

,您不必再担心因为测试而导致的数据污染问题,让数据更加真实有效的反应用户使用情况。

使用集成测试模式请先在程序入口处调用如下代码,打开调试模式:

[MobClick setLogEnabled:YES];

 使用集成测试请点击这里

使用普通测试流程

如果您不使用集成测试服务来测试数据,那您可以通过普通测试流程查看测试数据。 使用普通测试流程,您的测试数据会与用户的真实使用数据同时处理,从而导致数据污染。

使用普通测试流程,请先在程序入口添加以下代码打开调试模式:

[MobClick setLogEnabled:YES];

打开调试模式后,您可以在logcat中查看您的数据是否成功发送到友盟服务器,以及集成过程中的出错原因等,友盟相关log的tag是MobclickAgent。

FAQ

:集成测试与普通测试的区别

:集成测试与普通测试两者都需要添加代码打开调试模式,但是集成测试需要添加测试设备,集成测试功能说明参见这里。集成测试隔离测试数据,普通的测试不区分测试数据与真实数据;集成测试的结果需在实时日志中查看,普通测试则是在友盟相关的log中查看。

技术支持

为了能够尽快响应您的反馈,请提供您的appkey及logcat中的详细出错日志,您所提供的内容越详细越有助于我们帮您解决问题。常见问题请阅读友盟论坛中统计SDK常见问题索引