跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

高级功能

一、启动来源统计功能

1.1业务使用场景:

App运营可通过「渠道分析」回答用户为什么来,但无法掌握到用户从哪儿来、为什么回访,缺乏对全生命周期流量价值的完整评估,导致难以判断哪些入口真正驱动用户的持续活跃。

U-App「启动来源分析」功能,完整还原用户每一次打开App的真实路径,全面洞察活跃用户构成与留存表现

如需使用本功能,请启动参数上报API(handleSceneWillConnectWithOptions),可归因分享、push推送、应用商店、短信、第三方应用等场景来源,为业务效果评估提供数据支撑。上报时可参考以下类目说明:

image

1.2接口函数:

/** 进端采集
 @param connectionOptions: UIScene模式下的启动参数
*/
+ (void)handleSceneWillConnectWithOptions:(id)connectionOptions;

1.3参数:

参数

类型

描述

备注

connectionOptions

UISceneConnectionOptions

UIScene模式下的启动参数

1.4示例代码:

- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
 [UMConfigure handleSceneWillConnectWithOptions:connectionOptions];
}

二、账号统计功能

设置上报用户上报后,在U-App中的应用及实践场景可参考文档:用户账号及用户属性

【友盟+】在统计用户时以设备为标准,如果需要统计应用自身的账号,可以使用此功能

2.1接口函数:

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

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

+ (void)profileSignOff;

2.2参数:

参数

类型

描述

备注

puid

NSString

用户ID

provider

NSString

账号来源

不能以下划线”_”开头,使用大写字母和数字标识; 如果是上市公司,建议使用股票代码。

2.3示例代码:

友盟+在统计用户时以设备为标准,若需要统计应用自身的账号,下述两种API任选其一接口:

// PUID:用户账号ID.长度小于64字节
// Provider:账号来源。不能以下划线"_"开头,使用大写字母和数字标识,长度小于32 字节 ; 

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

Signoff调用后,不再发送账号内容。

[MobClick profileSignOff];

常见问题

[账号统计问题]

三、设置用户属性

可通过如下接口设置用户属性,同一个 key 多次设置时,value 值会进行覆盖替换

3.1接口函数:

/** 设置用户属性(自定义)
@param value : 用户属性值(NSString,NSNumber);
@param key : 用户属性键;
*/
+ (void)userProfile:(id)value to:(NSString *)key;
/** 设置用户属性(电话)
@param mobile : 电话;
*/
+ (void)userProfileMobile:(NSString *)mobile;
/** 设置用户属性(邮箱)
@param email : 邮箱;
*/
+ (void)userProfileEMail:(NSString *)email;
重要

用户属性设置一定要在账号统计调用后即profileSignInWithPUID:。

3.2参数:

参数

类型

描述

备注

key

NSString

属性键

小于128字节,允许:英文([a-z;A-Z])、数字(0-9)、下划线 进行定义,使用其中一种或者几种都可以。 不允许:不能以“数字”、"_"开头

value

id

属性值

小于256字节

3.3代码示例:

[MobClick userProfile:@"value" to:@"key"];

四、页面统计功能

4.1页面统计两种方式对比

1

4.2集成方式

4.2.1AUTO模式

接口函数:

+ (void)setAutoPageEnabled:(BOOL)value;

示例代码:

//设置为自动采集页面
[MobClick setAutoPageEnabled:YES];
4.2.2MANUAL模式

接口函数:

+ (void)logPageView:(NSString *)pageName seconds:(int)seconds;

+ (void)beginLogPageView:(NSString *)pageName;

+ (void)endLogPageView:(NSString *)pageName;

参数:

参数

类型

描述

备注

pageName

NSString

统计的页面名称

seconds

int

时长

单位为秒

4.2.3注意:

必须配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计,若只调用某一个函数不会生成有效数据;

在该页面展示时调用beginLogPageView:,当退出该页面时调用endLogPageView。

示例代码:

在ViewController类的viewWillAppear: 和 viewWillDisappear:中配对调用如下方法:

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

您也可以根据您自己的业务场景,在viewDidAppear:和viewDidDisappear:等方法中配对调用beginLogPageView:和endLogPageView:两个函数来完成自动统计。

常见问题

[页面统计问题]

五、事件统计功能

自定义事件可以用于追踪用户行为,记录行为发生的具体细节。本文适用于不低于6.0.0版本的sdk(包含6.0.0版本),若您使用的sdk版本低于6.0.0,为便于您获取更好的产品使用,建议您先进行SDK升级。

5.1事件基本构成

  • event ID:自定义事件ID,指一个操作

    例如:您可定义“pause”或“play”作为一个事件。您也可更加具体,创建一个“music_willbe_finished”的事件,并设定在音乐播放了 90% 的那一刻触发;友盟+提供了两种自定义事件的形式:多参数类型事件和计算事件。

  • key:自定义事件下的参数,一个可选的描述符,用于定义事件操作的属性信息

    例如,您可以定义“music_style”或“singer_name”作为“play”事件的参数,也可以定义“play_time”作为事件的参数。

  • value:自定义事件参数下的参数值,用于描述事件属性的详细信息。

    例如,“play”事件下“music_style”的参数值可以是“slight”、“rock”等。数值型参数的取值是数字变量。值可以是明确的数字,如“23”;也可以是在其他位置定义的基于推断值的变量,如“downloadTime”。

5.2使用自定义事件的依赖条件与限制

  • 请先登陆 【友盟+】官网 ,进入选择“应用”->设置->事件 (子账户由于权限限制可能无法看到”设置”选项,请联系主账号开通权限。)页面中添加相应的事件ID,然后服务器才会对相应的事件请求进行处理;

  • 在页面注册事件类型时请选择“多参数类型事件”类型;

  • 自定义事件ID不可更改,需与代码中“String event_id”保持一致,参数(key)无须手动注册;

  • 请在SDK初始化之后调用事件统计接口;

  • 如果需要在子进程中对自定义事件进行统计,需要在SDK初始化完成后调用函数UMConfigure.setProcessEvent。

  • event ID或者key请使用英文、数字、下划线、中划线及加号进行定义,使用其中一种或者几种都可以,不能以“数字”开头,避免使用中文。为保证数据计算的准确性,非这些“合法”以外的字符无法添加,具体限制请查看下文注意事项;

  • 不同版本下,自定义事件数量

    功能/版本

    免费版

    专业版

    尊享版

    自定义事件量(个)

    100

    500

    2000

    事件参数量(个)

    50

    200

    200

    事件参数值量(个)

    1000

    2000

    5000

  • 为方便使用者理解及使用,可通过显示名称进行重命名(支持中文),进入【应用设置-事件-编辑】进行操作;

  • 埋码完成后,建议使用集成测试进行验证;

5.3注意事项

  • event id长度不能超过128个字节,key不能超过128个字节,value不能超过256个字节

  • id、ts、du、token、device_name、device_model 、device_brand、country、city、channel、province、appkey、app_version、access、launch、pre_app_version、terminate、no_first_pay、is_newpayer、first_pay_at、first_pay_level、first_pay_source、first_pay_user_level、first_pay_versio是保留字段,不能作为event id 及key的名称

5.4多参数类型事件

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

复制代码到剪切板

+ (void)event:(NSString *)eventId; 
+ (void)event:(NSString *)eventId label:(NSString *)label; 
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes;
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes counter:(int)number;

参数

类型

描述

备注

eventId

NSString

网站上注册的事件Id

无

label

NSString

分类标签

不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签。

attributes

NSDictionary

自定义属性

属性中的key-value必须为String类型, 每个应用至多添加500个自定义事件,key不能超过100个。

counter

int

自定义数值

无

示例1:

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

复制代码到剪切板

[MobClick event:@"Forward"];

示例2:

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

复制代码到剪切板

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

5.5计算事件

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

复制代码到剪切板

字符串型:

+ (void)beginEvent:(NSString *)eventId;
+ (void)endEvent:(NSString *)eventId;
+ (void)beginEvent:(NSString *)eventId label:(NSString *)label;
+ (void)endEvent:(NSString *)eventId label:(NSString *)label;
+ (void)beginEvent:(NSString *)eventId primarykey :(NSString *)keyName attributes:(NSDictionary *)attributes;
+ (void)endEvent:(NSString *)eventId primarykey:(NSString *)keyName;
+ (void)event:(NSString *)eventId durations:(int)millisecond;
+ (void)event:(NSString *)eventId label:(NSString *)label durations:(int)millisecond;
+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes durations:(int)millisecond;

数值型:

+ (void)event:(NSString *)eventId attributes:(NSDictionary *)attributes counter:(int)number;

参数

类型

描述

备注

eventId

NSString

网站上注册的事件Id

label

NSString

分类标签

不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签。

attributes

NSDictionary

自定义属性

属性中的key-value必须为String类型, 每个应用至多添加500个自定义事件,key不能超过100个 。

primarykey

NSString

唯一标识

这个参数用于和event_id一起标示一个唯一事件,并不会被统计;对于同一个事件在beginEvent和endEvent 中要传递相同的eventId 和 primarykey。

durations

int

时长

传入自己统计的时长(单位:毫秒)。

注意:

beginEvent需要和endEvent配对使用,需要传入相同的eventId。

示例:

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

复制代码到剪切板

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

FAQ

[自定义事件无数数据]

六、稳定性功能

稳定性模块再次升级,独立为应用性能监控产品,新增用户细查、崩溃回调等多种功能。

产品介绍文档为:https://developer.umeng.com/docs/193624/detail/194565

6.1历史文档

从SDK版本7.2.0以上已经关闭了老版本的错误统计(OC层异常捕获),新版错误统计(稳定性)支持采集OC层、Swift层和Cpp层的异常捕获,提供用户崩溃时的行为分析功能。

6.1.1崩溃采集

如果您使用的是7.2.0以上版本SDK,同时集成使用了UMCrash.framework插件,则默认开启新版本的稳定性功能

说明

请务必在工程中引入 UMCrash.framework 增加系统库 libc++.tbd Targets->BuildSettings 中 , Other Linker Flags增加-ObjC,⼀定要添加此项,注意是⼤写C,不是⼩写c

CoreTelephony.framework  获取运营商标识
libz.tbd  数据压缩
libsqlite.tbd  数据缓存
libc++.tbd  异常捕获
SystemConfiguration.framework  判断网络状态

6.1.2Crash Log查看

新版本查看Crash Log,需要断开Xcode调试,,然后打开控制台,看iPhone日志,当App产生crash后再启动会发送。在Log中会有Crash Log Start 和Crash Log End中间就是上次产生的crash。

6.1.3注意事项

  • 统计SDK 7.2.0及以上版本(含7.2.0)已经关闭了老版本的错误统计(OC层异常捕获)功能,如果您想继续使用错误统计(OC)功能,请集成并使用UMCrash.framework稳定性组件,该组件提供更全面、更强大的异常捕获功能。

  • 原错误统计的开关接口【+ (void)setCrashReportEnabled:(BOOL)value;】方法去除

  • 原错误回调接口【+ (void)setCrashCBBlock:(CallbackBlock)cbBlock;】 方法移至UMCrash.framework中的UMCrashConfigure中

  • 如果想测试稳定性是否集成成功,可以下载demo验证,具体可以看文档:https://developer.umeng.com/docs/119267/detail/176778

  • 错误统计功能用于收集app使用过程中产生的Crash信息,目前稳定性收集到的错误会向下传递,不会影响其他SDK收集或自己收集崩溃信息。

6.1.4常见问题

如何设置符号表

七、设置加密功能

此功能用于设置是否对要发送的统计信息进行加密 详细文档

接口:

/** 设置是否对统计信息进行加密传输, 默认NO(不加密).
 @param value 设置为YES, umeng SDK 会将日志信息做加密处理
 */
+ (void)setEncryptEnabled:(BOOL)value;

示例代码:

#import <UMCommon/UMCommon.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[UMConfigure setEncryptEnabled:YES];//打开加密传输
[UMConfigure setLogEnabled:YES];//设置打开日志
[UMConfigure initWith
:@"Your AppKey" channel:@"App Store"];
}