最近业务方给我们部门提了新的需求,希望能一站式统计APP的几项重要数据。这次我们尝试使用的是个推(之前专门做消息推送的)旗下新推出的产品“个数·应用统计”,根据官方的说法,个推的数据统计产品通过专业的移动应用数据分析,可以为用户的应用提供实时数据统计分析服务,包括了解版本质量、渠道状况、用户画像等。数据最后以可视化形式展现,很直观。我们尝试了一段时间,发现效果还是很不错的,这篇文章将为大家介绍如何从零开始快速高效地集成个数iOS SDK。

一、登录账号并创建应用获取 APP ID

1、 访问[个推开发者中心](https://dev.getui.com/dev/#/login),点击立即注册:

(也可以从个推官网进入www.getui.com,点击右上角“开发者中心”。)当然,如果你已经注册过个推推送的账号,直接登录使用即可。

2、根据个人情况填写并注册账号:

3、返回[个推开发者中心](https://dev.getui.com/dev/#/login)使用上个步骤注册好的账号登录,进入开发者平台面板后,选择左边菜单栏的个数·应用统计:

4、进入个数·应用统计面板后,选择右上角的新增应用添加新的应用:

5、填写应用相关信息,勾选iOS,点击提交新增应用:

6、新增应用成功会自动返回应用列表,找到新增的应用,点击应用配置:

7、在配置信息下可以看到APP ID,将其复制保存,后续集成将会使用到APP ID:

二、配置个数SDK

个数iOS SDK提供两种集成方式,分别是CocoaPods集成和Xcode手动集成,两种集成方式本文都会介绍。在集成SDK时选择其中一种即可(推荐使用CocoaPods集成)。

三、CocoaPods集成方式

1、安装CocoaPods

安装方式很简单 , Mac下都自带ruby,使用ruby的gem命令即可下载安装:

$ sudo gem install cocoapods

$ pod setup

2、准备Podfile

使用时需要新建一个名为Podfile的文件(若已存在该文件则不需要重新创建),如下格式,将依赖的库名字依次列在文件中即可:

target 'YourTargetName' do

platform :ios, "8.0"

pod 'GCSDK'

end

3、完成GCSDK导入

将编辑好的Podfile文件放到你的项目根目录中,执行如下命令即可:

$ cd "<path/to/project>"

$ pod install

4、使用CocosPods集成SDK后,需要关闭原工程,重新在项目根目录下打开 yourProjectName.xcworkspace的文件进行后续开发:

四、Xcode 集成方式

1、个数应用统计提供了一个 SDK 开发工具包,包含了iOS SDK的全部所需资源,前往个推文档中心下载,地址:http://docs.getui.com/download.html,选择个数·应用统计下的iOS端下载SDK资源包 :

2、解压资源包内容可以看到如下文件结构:

3、资源包内容详解

接入文档/个数集成文档.pdf : 个数集成文档;

资源文件/GTCountSDK.h: 个数SDK头文件

资源文件/libGTCountSDK.a: 个数SDK主包静态库

资源文件/libGTCommonSDK.a: 个数SDK工具库

Demo工程/GTCountDemo/: 个数demo工程

4、注意:libGTCountSDK.a、libGTCommonSDK.a 使用lipo工具将

支持i386、x86_64、arm64、armv7的代码打包到了一起,所以这个库将同时支持simulator和device,支持的iOS版本为 7.0 及以上。

5、个数SDK静态库设置

右击添加文件,导入资源文件目录下的文件。

6、添加依赖库(必须,如下图)

添加系统库支持:

* libsqlit3.tbd

* libz.tbd

* AdSupport.framework

7、设置 Other Linker Flags

找到主工程的target -> Build Setting -> Linking -> Other Linker Flags,将其设置为-ObjC(如图所示):

五、初始化并启动SDK

1、初始化启动接口的相关信息:

2、在项目工程的AppDelegate.m中添加头文件,使用前面获取的APP ID初始化并启动SDK:

#import 'GTCountSDK.h'

#define kGcAppId @"xxxxxxx"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// 启动个数 SDK

[GTCountSDK startSDKWithAppId:kGcAppId withChannelId:@"appstore"];

// 使用 SDK 实例的 reportStrategy 属性设置上报策略。

[[GTCountSDK sharedInstance] setReportStrategy:GESHU_STRATEGY_WIFI_ONLY]

// 使用 SDK 实例的 sessionTime 属性获取 sessionTime 的值。

NSLog(@"sessionTime %ld",[[GTCountSDK sharedInstance]sessionTime]);

return YES;

}

六、高级功能:自定义事件

自定义事件可以统计某些用户自定义埋点的发生时间以及次数,例如广告点击、短信数量等。通常event_id用于表示某种行为或功能的统计(如统计“发送”按钮被触发多少次),而参数则用于标识统计的具体对象(如功能为“下载”的按钮),由event_idproperties唯一标识一个事件。

自定义事件主要分为两种:

(1)次数统计:统计指定行为被触发的次数。

(2)时长统计:统计指定行为消耗的时间,单位为秒。需要eventBegineventEnd接口成对使用才可生效。

其中每类事件都支持使用properties参数类型。

注意:event_id需要先在个推开发者中心(https://dev.getui.com/)进行配置,才能参与正常的数据统计。event_id不能包含空格或转义字符,如下:

1、点击侧边菜单栏事件列表。

2、点击新增事件按钮。

3、根据事件类型分别输入相应的事件ID以及事件名称。

4、在移动端项目中添加对应事件类型和对应event_id的事件:

@implementation TrackCountEventController

- (IBAction)clickCount:(id)sender {

[GTCountSDK trackCountEvent:@"countid1" withArgs:@{@"ckey1":@"cvalue1"}];

}

-(void) viewDidAppear:(BOOL)animated {

// 为了正确统计,要确保开始和结束接口的参数 self.eventProperty 内存地址是一致的。

self.eventProperty = @{@"key":@"value1"};

[GTCountSDK trackCustomKeyValueEventBegin:@"eid1" withArgs:self.eventProperty];

[super viewDidAppear:animated];

}

- (void)viewWillDisappear:(BOOL)animated {

[GTCountSDK trackCustomKeyValueEventEnd:@"eid1" withArgs:self.eventProperty];

[super viewWillDisappear:animated];

}

@end

七、高级功能:数据上报策略

个数应用统计可自定义数据上报策略,开发者可根据自身应用需求设置,能够有效控制用户流量开销。

1、SDK的数据上报策略包括以下 5 种(默认为 GESHU_STRATEGY_PERIOD,周期为 60 分钟):

2、注意:数据上报策略建议在应用启动时设置。数据上报策略使用以下接口进行设置和查看:

/**

设置上报策略

*/

@property(nonatomic,assign)GeShuStatReportStrategyType reportStrategy;

3、WIFI 环境下上报策略

考虑到 WIFI 网络环境下上报数据的代价较小,因此默认情况在 WIFI 环境下,使用实时上报策略。若要关闭该策略,可以调用以下接口关闭:

/**

智能上报

开启以后设备接入WIFI会实时上报

否则按照全局策略上报

默认打开

*/

@property (nonatomic, assign)BOOL smartReporting;

4、数据上报策略相关接口

/**

统计上报策略为 BATCH 时,触发上报时最小缓存消息数,默认32条

*/

@property (nonatomic, assign)NSUInteger minBatchReportNumber;

/**

上报策略为 PERIOD 时发送间隔,单位分钟,默认一天(60分钟)

*/

@property (nonatomic, assign)NSUInteger periodMinutes;

八、集成 SDK 的应用提交App Store注意事项

1、为了获取精准的统计结果,需添加AdSupport.framework库支持,因此在提交App Store时需做以下操作:

(1)在App内投放广告,获取IDFA可通过苹果审核。

(2)App内无广告,但先前投放了特定广告,可参考如下勾选,通过苹果审核。

勾选如图:

以上就是我集成个推应用统计产品(个数)的全过程,希望对你有帮助!如果大家有什么其他问题,我们可以留言区交流。

个推数据统计产品(个数)iOS集成实践的更多相关文章

  1. 个推应用统计产品(个数)Android集成实践

    前段时间,我们公司的产品又双叒叕给我们提了新需求,要求我们把APP相关的数据统计分析一下,这些指标包括但不限于应用每日的新增.活跃.留存率等等,最好每天都能提供数据报表.这种事情真是想想就麻烦,大家最 ...

  2. 金牌架构师:我们是这样设计APP数据统计产品的

    前言:近期,智能大数据服务商“个推”推出了应用统计产品“个数”,今天我们就和大家来谈一谈个数实时统计与AI数据智能平台整合架构设计. 很多人可能好奇,拥有数百亿SDK的个推,专注消息推送服务多年,现在 ...

  3. 心知天气数据API 产品的高并发实践

    心知天气数据API 产品的高并发实践 心知天气作为国内领先的商业气象服务提供商,天气数据API 产品从公司创立以来就一直扮演着很重要的角色.2009 年API 产品初次上线,历经十年,我们不断用心迭代 ...

  4. 个推用户画像产品(个像)iOS集成实践

    最近业务方给我们部门提了新的需求,希望能构建精准用户画像.我们尝试使用的是个推(之前专门做消息推送的公司)旗下新推出的产品“个像·用户画像”.根据官方的说法,个像能够为APP开发者提供丰富的用户画像数 ...

  5. React Native 轻松集成统计功能(iOS 篇)

    最近产品让我加上数据统计功能,刚好极光官方支持数据统计 支持了 React Native 版本 第一步 安装: 在你的项目路径下执行命令: npm install janalytics-react-n ...

  6. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器功能简介---实时数据统计报表、视频文件上传、点播、分享、集成

    熟悉EasyDSS流媒体服务器的小伙伴应该都知道,EasyDSS通过将EasyRTMP推流的直播流进行直播转码.智能处理.视频分发,再通过 CDN 分发节点分发到终端播放 SDK为观众播放高清低延时的 ...

  7. 李洪强iOS之集成极光推送三iOS集成指南

    李洪强iOS之集成极光推送三iOS集成指南 SDK说明 适用版本 本文匹配的 SDK版本:r2.1.5 以后.查看最近更新了解最新的SDK更新情况.使用Xcode 6及以上版本可以使用新版Push S ...

  8. iOS 轻松使用 App 数据统计

    想获取用户各项行为数据吗? 想轻松查看用户行为图表吗? 想高效进行 App 运营管理吗? 想,来我带你玩转 App 数据统计.这里我使用专业.轻便的 JAnalytics. 本文内容分为两部分:代码示 ...

  9. 个推用户画像产品(个像)Android集成实践

    我们团队之前一直是个推推送的忠实用户,近期个推新推出了产品“个像·用户画像”,刚好非常契合我们的业务需求,于是我们也试用了一下.总的来说效果还不错,这篇文章就为大家介绍一下如何从零开始快速集成个像An ...

随机推荐

  1. Android开发——进程间通信之Messenger

    0.  前言 不论是Android还是其他操作系统,都会有自己的IPC机制,所谓IPC(Inter-Process Communication)即进程间通信.首先线程和进程是很不同的概念,线程是CPU ...

  2. 巧用Alt 键

    1,查看表的元数据信息 在TSQL 查询编辑器中,选中一个表,如图 点击Alt+F1,就可以查看表的元数据,列的定义和ID列等 2,使用Alt批量插入逗号 在TQL语句中,有时为了使用 in 子句,必 ...

  3. 《Effective Java》学习笔记 —— 枚举、注解与方法

    Java的枚举.注解与方法... 第30条 用枚举代替int常量 第31条 用实例域代替序数 可以考虑定义一个final int 代替枚举中的 ordinal() 方法. 第32条 用EnumSet代 ...

  4. numpy 初识(三)

    基本运算 exp: e sqrt:开放 floor:向下取整 ravel:矩阵拉成一个向 T:转置(行和列变换) 改变形状: resize: 更改其形状(返回值为None)a.resize(6,2) ...

  5. 由Windows开发平台向Linux平台转移的一些想法

    从毕业到现在已经快20年了,一直在从事Windows平台上的开发工作.刚毕业那会大约是97,98年左右,工作的平台除了Windows平台还有Dos平台,因为在学校学习时,也是从Dos开始的.因此对于从 ...

  6. python 游戏(数字推理游戏Bagels)

    1.游戏思路和流程图 实现功能:玩家猜测三位不一样的数字,猜错了有提示,提示分别为(位置错误数字正确),(位置和数字正确),(数字和位置都不正确) 游戏流程图 2. 使用模块和游戏提示 import ...

  7. 【Alpha】第十次Scrum meeting

    姓名 今日完成任务 所耗时间 刘乾 使用jinja2引擎成功做出第一个模板py文件和latex文件!这是零的突破!(途中遇到很多坑我也就不吐槽了,真是理想与现实差距满满啊) Issue链接:https ...

  8. 第一次Spring会议成果意见汇总

    第一组:9-625  只看到了界面,而两台笔记本电脑通过局域网进行通信的功能则没有看到,没有看到实质性的成果.他们的软件还是非常实用的,它仅通过局域网就能通信,大大减少了流量费用,提高了通信效率,希望 ...

  9. ElasticSearch 2 (28) - 信息聚合系列之高层概念

    ElasticSearch 2 (28) - 信息聚合系列之高层概念 摘要 和查询表达式(query DSL)一样,聚合也有一种可编辑的语法:可以根据我们的需要混合以及匹配使用独立的功能单元.这也就是 ...

  10. centos 7 安装截图软件shutter

    1.解决 epel-release依赖问题 ,执行命令: yum insatll epel-release 2.然后下载nux-dextop-release-0-5.el7.nux.noarch.rp ...