分享 个推数据统计产品 (个数) iOS 集成实践

HongJack · July 27, 2018 · 1820 hits

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

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

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

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

3、返回个推开发者中心使用上个步骤注册好的账号登录,进入开发者平台面板后,选择左边菜单栏的个数·应用统计:

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 "" $ pod install

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

四、Xcode 集成方式

1、个数应用统计提供了一个 SDK 开发工具包,包含了 iOS SDK 的全部所需资源,前往个推文档中心下载,地址:http://docs.getui.com/download.htmliOS端下载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_id 和 properties 唯一标识一个事件。

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

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

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

其中每类事件都支持使用 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 内无广告,但先前投放了特定广告,可参考如下勾选,通过苹果审核。

勾选如图:

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

No Reply at the moment.
You need to Sign in before reply, if you don't have an account, please Sign up first.