友盟+搜索

{{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]; }

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

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

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

页面的统计

实现页面的统计需要在每个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模式。

游戏方法详解

充值

玩家支付货币兑换虚拟币,用于统计游戏的收入情况

// 充值.
+[MobClickGameAnalytics pay:(double)cash source:(int)source coin:(double)coin];
// 充值并购买道具.
+[MobClickGameAnalytics pay:(double)cash source:(int)source item:(NSString *)item amount:(int)amount price:(double)price];

字段 含义 取值
cash 真实币数量 >=0的数,最多只保存小数点后2位
source 支付渠道 1 ~ 99的整数, 其中1..20 是预定义含义,其余21-99需要在网站设置。
coin 虚拟币数量 大于等于0的整数, 最多只保存小数点后2位
item 道具ID 非空字符串
amount 道具数量 大于0的整数

source对应的数字、含义如下表:

数值 含义
1 App Store
2 支付宝
3 网银
4 财付通
5 移动通信
6 联通通信
7 电信通信
8 paypal

Demo 在游戏中充值或者购买虚拟币的时候调用此方法,比如通过支付宝用 10元钱 购买了 1000 个金币,可以这样调用:

[MobClickGameAnalytics pay:10 source:2 coin:1000];

有些时候在游戏中会直接购买某个道具,比如10元购买 2个魔法药水,每个药水50个金币,可以调用下面的方法在付费的同时购买道具。

[MobClickGameAnalytics 10 source:2 item:@"magic_bottle" amount:2 price:50];

测试方法及报表对应关系请见产品使用文档

购买

玩家用虚拟币兑换一定数量、价值的道具

// 购买道具.
+[MobClickGameAnalytics buy:(NSString *)item amount:(int)amount price:(double)price];

字段 含义 取值
item 道具ID 非空字符串
amount 道具数量 大于0的整数
price 道具单价 >=0

购买道具需要传递道具ID、数量(amount)、道具单价(price)。

Demo

在游戏中使用金币购买了1个头盔,一个头盔价值 1000 金币,可以这样统计:

[MobClickGameAnalytics buy:@"helmet" amount:1 price:1000];

测试方法及报表对应关系请见产品使用文档

消耗

玩家使用道具的情况

// 使用道具.
+[MobClickGameAnalytics use:(NSString *)item amount:(int)amount price:(double)price];

字段 含义 取值
item 道具ID 非空字符串
amount 道具数量 大于0的整数
price 道具单价 >=0

消耗道具需要传递道具ID、数量(amount)、道具单价(price)。

Demo

游戏中的物品损耗,比如使用了2瓶魔法药水,每个需要50个虚拟币,可以这样统计:

+[MobClickGameAnalytics use:@"magic_bottle" amount:2 price:50];

测试方法及报表对应关系请见产品使用文档

注意

  1. 目前每个游戏最多支持1000个道具的统计。

关卡

记录玩家在游戏中的进度

// 进入关卡.
+[MobClickGameAnalytics startLevel:(NSString *)level];
// 通过关卡.
+[MobClickGameAnalytics finishLevel:(NSString *)level];
// 未通过关卡.
+[MobClickGameAnalytics failLevel:(NSString *)level];

字段 含义 取值
level 关卡id 非空字符串(eg:level-01)

开发者需要在关卡状态变动时调用startLevel方法重新设置当前关卡。 多次调用startLevel,以最后设置的为准

在游戏开启新的关卡的时候调用 startLevel: 方法,在关卡失败的时候调用 failLevel: 方法,在成功过关的时候调用 finishLevel: 方法。

调用 failLevel: 或 finishLevel: 的时候会计算从 startLevel 开始的时长,作为这一关卡的耗时。level 字段最好为非空可排序的字符串。

SDK 默认减去程序切入后台的时间。

调用 failLevel: 或 finishLevel: 传入nil,则为当前关卡。

测试方法及报表对应关系请见产品使用文档

注意

  1. 目前每个游戏最多支持500个关卡。

额外奖励

针对游戏中额外获得的虚拟币进行统计,比如系统赠送,节日奖励,打怪掉落。

// 赠送金币.
+[MobClickGameAnalytics bonus:(double)coin source:(int)source];
// 赠送道具.
+[MobClickGameAnalytics bonus:(NSString *)item amount:(int)amount price:(double)price source:(int)source];

字段 含义 取值
coin 虚拟币数量 大于0的整数, 最多只保存小数点后2位
source 奖励渠道 取值在 1~10 之间。“1”已经被预先定义为“系统奖励”,2~10 需要在网站设置含义
item 道具ID 非空字符串
amount 道具数量 大于0的整数
price 道具单价 >=0

消耗道具需要传递道具ID、数量(amount)、道具单价(price)。

Demo

连续5天登陆游戏奖励1000金币,可以这样统计:

+[MobClickGameAnalytics bonus:1000 source:1];

如果在五一假期中举行登陆有奖活动,开发者想统计活动期间所赠送的金币数量,可以这样统计:

+[MobClickGameAnalytics bonus:10000 source:2];

然后在后台“设置”——“虚拟币来源管理”中将“2”这个事件设为节日奖励。即可看到相应的数据了。

注意:所有的浮点类型,只精确到百分位;所有的数值类型不能为负数,否则不予处理。tigger的取值在1~10之间,“1”已经被预先定义为“系统奖励”,超过这个范围将不予处理。

玩家信息统计

增加玩家账号统计维度,同时可以追踪玩家的等级情况。以便结合关卡和付费数据整理出更有价值的用户。开发者应该在程序开始的地方尽早调用。

账号统计

注意:使用老版SDK中账号统计的开发者,请尽早跟新SDK并使用新接口


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

PUID:玩家账号ID.长度小于64字节

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

+ (void)profileSignOff;

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

当玩家使用游戏自有账号登录时,可以这样统计:

[MobClickGameAnalytics profileSignInWithPUID:@"playerID"];

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

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

等级统计接口

当玩家建立角色或者升级时,需调用此接口

+ (void)setUserLevelId:(int)level;

level:大于1的整数,最多统计1000个等级

当玩家从1级升至2级时,可以这样统计:

[MobClickGameAnalytics setUserLevelId:2];

高级功能集成指南

使用自定义事件

使用自定义事件功能请先在网站应用管理后台(设置->编辑自定义事件)中添加相应的自定义事件后,服务器才会对相应的自定义事件请求进行处理。这里我们将提供几个简单而通用的接口:

事件数量统计

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

    [MobClick event:(NSString *)eventId];
    
    

    eventId为当前统计的事件ID。

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

    [MobClick event:@"Forward"];
    
    
    • 考虑事件在一个属性上的取值,可以调用如下方法:
    [MobClick event:(NSString *)eventId attributes:(NSDictionary *)attributes];
    
    

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

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

    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
                       @"book", @"type", @"3", @"quantity", nil];
    [MobClick event:@"purchase" attributes:dict];
    
    
  • 有时,只需考虑事件在一个属性上的取值,可以调用如下方法:

    [MobClick event:(NSString *)eventId label:(NSString *)label];
    
    

    label为当前事件的取值。

    示例: 统计游戏中“死亡”事件发生的关卡数,那么可以在死亡的函数里调用

    [MobClick event:@"player_dead" label:@"level"];
    
    

事件时长统计

有的事件是持续发生的,需要记录其持续的时间,这里提供了两种解决方法。

在事件开始和结束时调用[MobClick beginEvent:][MobClick endEvent:]两个函数

示例: 跟踪播放音乐事件发生的总时间,那么在音乐播放开始时调用:

[MobClick beginEvent:@"music_play"];

在音乐播放结束时调用:

[MobClick endEvent:@"music_play"];

  • 跟踪时长的事件包含多个属性
[MobClick beginEvent:(NSString *)eventId primarykey:(NSString *)keyName attributes:(NSDictionary *)attributes];

[MobClick endEvent:(NSString *)eventId primarykey:(NSString *)keyName];

primarykey这个参数用于和eventId一起标示一个唯一事件,并不会被统计;

对于同一个事件在beginEventendEvent 中要传递相同的eventIdprimarykey

(为什么要增加primarykey,请看时长统计常见错误案例)

示例: 跟踪每种类型的音乐播放了多久,那么在音乐播放开始时调用

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
                      @"popular", @"type", @"JJLin", @"artist",@"registered",@"User_status", nil];
[MobClick beginEvent:@"music" primarykey:@"m7" attributes:dict];

在音乐播放结束时调用:

[MobClick endEvent:@"music" primarykey:@"m7"];

  • 自己计算并上传event时长,在您想跟踪时长的代码部分,调用如下方法

在您想跟踪时长的代码部分,调用如下方法(单位为毫秒)

[MobClick event:(NSString *)eventId durations:(int)millisecond];
[MobClick event:(NSString *)eventId label:(NSString *)label durations:(int)millisecond];
[MobClick event:(NSString *)eventId attributes:(NSDictionary *)attributes durations:(int)millisecond];

时长是友盟统计的一个新功能,使用过程中可能会出现一些常见的错误,开发者应该尽量的避免。

注意

  1. event_idtag 不能使用特殊字符,且长度不能超过128个字节;map中的keyvalue 都不能使用特殊字符,key 不能超过128个字节,value 不能超过256个字节
  2. idtsdu是保留字段,不能作为eventIdkey的名称。
  3. 每个应用至多添加500个自定义事件,每个eventkey不能超过10个,每个key的取值不能超过1000个(不允许通过key-value结构来统计类似搜索关键词,网页链接等随机生成的字符串信息)。

使用分发渠道分析

您选择多个分发渠道时,例如某Cydia源,或某网站,可以为不同渠道进行分发渠道的设定,分别打包成不同的渠道包,以便统计终端用户的程序安装渠道。

注意:

每台设备仅记录首次安装激活的渠道,在其他渠道再次安装不会重复计量。 所以在测试不同的渠道的时候,请使用不同的设备来分别测试。

示例: 在91和tongbu发布:

- [MobClick startWithAppkey:@"xxxxxxxxxxxxxxx" reportPolicy:REALTIME channelId:@"91store"];

- [MobClick startWithAppkey:@"xxxxxxxxxxxxxxx" reportPolicy:REALTIME channelId:@"tongbu"];

使用在线配置功能

在iOS游戏统计分析SDK3.6.6.0及以上版本中,已经废除了在线参数的功能,如果使用在线参数功能,请下载独立的在线参数SDK 。

在线参数SDK下载链接:http://dev.umeng.com/online-parameters/ios-doc--2/intergration

以下【在线参数】内容仅针对3.6.6.0以前版本的SDK

这个功能目前可以帮您在网站上动态配置两种类型的参数:

  • 自定义key-value型的键值对

  • 数据发送策略

示例: 动态修改应用的欢迎语,修改应用中开关选项的"on"或"off",以及类似游戏中虚拟物品的价格。

您需要在

[MobClick startWithAppkey:@"xxxxxxxxxxxxxxx"];

之后添加

[MobClick updateOnlineConfig];

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

[MobClick getConfigParams:@"xxxx"];

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

[MobClick getConfigParams];

这两个方法都是从[NSUserDefaults standardUserDefaults]获取缓存的值, 所以上面的[MobClick updateOnlineConfig]方法要先在app启动时被调用。

注意:
updateOnlineConfig 在app启动时 application:didFinishLaunchingWithOptions: 执行,前后台切换是不会执行的,如果需要在切换时更新在线参数,可以在相关回调里执行updateOnlineConfig

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

如果此时未联网或在线参数获取失败,这个通知是不会被发出的。

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

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onlineConfigCallBack:) name:UMOnlineConfigDidFinishedNotification object:nil];

- (void)onlineConfigCallBack:(NSNotification *)notification {
    NSLog(@"online config has fininshed and params = %@", notification.userInfo);
}

最后别忘记调用removeObserver:name:object: 删除这个监听。

页面访问路径统计

您可以统计每个View停留时长及路径。
需要配对使用

 - (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [MobClick beginLogPageView:@"PageOne"];
}    
- (void)viewWillDisappear:(BOOL)animated 
{
    [super viewWillDisappear:animated];
    [MobClick endLogPageView:@"PageOne"];
}        

注意: 我们针对页面访问进行的是抽样统计,所以只有数据量达到一定规模之后才可以看到

如果您想自己传递时长(单位为秒),我们也提供了方法。

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

按渠道自动更新检测

在网站上分渠道提交app的版本号,更新日志及openURL后,您只需添加一行代码来完成自动更新检查。
请将下面代码添加到[MobClick startWithAppkey:@"xxxxxxxxxxxxxxx"];之后

[MobClick checkUpdate];

如果想对UIAlertView的标题和按钮文字做多国语言支持,则需要对下面三个词组做翻译。

umUpdateTitle :标题

umUpdateCancel : 放弃按钮

umUpdateOK : 确定按钮

当然您可以更简单的自定义标题和按钮的文字

[MobClick checkUpdate:@"New version" cancelButtonTitle:@"Skip" otherButtonTitles:@"Goto Store"];

如果默认的行为不满足你的需求,您可以完全自定义自动更新检查行为。只需实现

- (void)appUpdate:(NSDictionary *)appInfo;

这个delegate方法。appInfo是服务器传回来的app相关信息。

Xcode4有两个版本号,一个是Version,另一个是Build,对应于Info.plist的字段名分别为CFBundleShortVersionString,CFBundleVersion。 友盟SDK为了兼容Xcode3的工程,默认取的是Build号,如果需要取Xcode4的Version,可以使用下面 的方法。

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

自定义事件案例

自定义事件用于追踪用户的行为,包括记录行为发生的次数、持续的时长以及该行为的具体细节。不同的需求可以采用不同的方式来跟踪。以音乐类应用为例,如果想监控music play(播放音乐)事件,那么

跟踪播放音乐事件发生的总次数和平均每次启动该事件发生的次数,只需要下面一行代码:

[MobClick event:@"music_play"];

跟踪播放音乐事件发生的总时间:

在音乐播放开始的时调用:

[MobClick beginEvent:@"music_play"];

在音乐播放结束时调用:

[MobClick endEvent:@"music_play"];

播放音乐事件还有很多其它特征:比如所播放音乐的风格、表演者,用户播放音乐时的状态(登录或匿名)。了解这些细节需要下面的代码:

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:

更进一步,您可以捕捉到每种状态的持续时间,比如每种风格的音乐播放了多久。您需要采用如下方法:

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:

在音乐播放开始时调用:

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
[MobClick beginEvent:@"music" primarykey :(NSString *)keyName];

在音乐播放结束时调用:

[MobClick endEvent:@"music" primarykey :(NSString *)keyName];

媒体类应用都可以依照上面的方法去追踪事件,比如阅读文章、观看视频、播放音乐等。这样可以清楚地了解哪些作品有更高点击率、更长展示时间,以及更受用户喜欢,从而在内容选择和推荐上更有针对性。

再来看一个游戏案例:这是一个即时策略的塔防游戏,采用的是内置付费模式。

首先,我们想观察玩家在每次过关时的状态,那么可以监控”user_status”这个事件。

NSDictionary *status = [NSDictionary dictionaryWithObjectsAndKeys:

这样,我们就会知道每次过关时,等级怎样,剩余多少金币,是否购买玩了多少次,玩了多少时间。从而了解玩家在哪一关的流失率较高,接下来应该重点去改善。

进一步,我们可以验证关卡难度,即监控”player_dead”这个事件。

[MobClick event:@"player_dead" label:@"level"];                      

可以观察玩家在哪一关的死亡率最高,是否与上面流失率最高的关卡吻合,这样能判断关卡难度是否是造成流失的主要原因。如果是,我们可以通过降低关卡难度来让更多的玩家留在游戏中;如果不是,那么需要从其他方面入手,比如丰富游戏内容增加对玩家吸引力、加强对新手的引导环节等。

购买监控道具购买是该游戏主要的收入模式,我们非常关心用户购买行为的发生次数,那么我们可以监控”purchase”这个事件:

[MobClick event:@"purchase"];                      

购买这个事件还有很多细节特征可以记录。比如,玩家是在哪些关购买的道具、购买道具的类型是什么、是否购买成功、购买道具时人物处于什么样的角色等等。您可以这么做:

NSDictionary *purchase = [NSDictionary dictionaryWithObjectsAndKeys:

知道了玩家更喜欢在哪几关购买道具,那么我们可以设法尽量让更多玩家到达那一关;知道了玩家喜欢什么样的道具,大概是什么样的功能和定价,那么我们可以考虑优化道具设计、适当促销,从而优化收益。

社交统计

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

准备社交数据

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

#import "MobClickSocialAnalytics.h"

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

MobClickSocialWeibo *weibo=[[MobClickSocialWeibo alloc] initWithPlatformType:@"sina" weiboId:@"1234" usid:@"67890" param:nil];

发送社交数据

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

[MobClickSocialAnalytics postWeiboCounts:@[weibo] appKey:UMENG_APPKEY topic:@"NICE DAY" completion: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代表网络连接等错误
};

测试与调试

开启调试模式

[MobClick setLogEnabled:YES];

调试步骤

  1. 确认测试手机(或者模拟器)已成功连入网络
  2. 启动应用程序,几分钟之后您应该已经可以看到相应的报表.

技术支持

点击访问:友盟开发者社区

联系客服:联系客服
Email:请发邮件至support@umeng.com,我们会尽快回复您。

为了能够尽快响应您的反馈,请提供您的appkey及log中的详细出错日志,您所提供的内容越详细越有助于我们帮您解决问题。