iOS 数据埋点

iOS 数据埋点

[toc]

前言

一般好的App为了后期版本迭代,会根据用户需求做进一步的优化,保留或是升级好的一部分,优化或者是移除一些无用的功能。那么我们怎么来知道哪些功能用户喜欢,哪些功能使用少呢?

首先通过产品定位及目标来确定自己需要哪些数据,其次通过在产品各个流程环节中设置数据埋点,最后,当用户使用App时,后台就能源源不断地接收到数据了。

那么我们怎么实现数据埋点呢?
网上有很多数据埋点的SDK,如友盟、极光、腾讯的MTA等。下面我将举例说明一下极光的埋点统计。

极光统计 iOS SDK 集成

创建应用


创建成功后自动生成 AppKey 用以标识该应用。

SDK导入


选择1:Cocoapods导入

  • 通过Cocoapods下载地址:
1
pod 'JAnalytics'
  • 如果需要安装指定版本则使用以下方式(以1.2.0版本为例):
1
pod 'JAnalytics', '1.2.0'

选择2:手动导入

  • 在极光官网下载最新SDK
  • 解压压缩包,将Lib下的所有文件复制到工程中
  • 增加相关的framework依赖
    • UIKit
    • SystemConfiguration
    • CoreTelephony
    • CoreGraphics
    • Security
    • Foundation
    • CoreLocation
    • CoreFoundation
    • CFNetwork
    • libz.tbd
    • libresolv.tbd
  • 可以开始使用统计SDK了!

添加头文件


请将以下代码添加到 AppDelegate.m 引用头文件的位置

// 引入JAnalytics功能所需头文件
#import "JANALYTICSService.h"
// 如果需要使用idfa功能所需要引入的头文件(可选)
#import <AdSupport/AdSupport.h>

添加初始化代码

请将以下代码添加到 -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

JANALYTICSLaunchConfig * config = [[JANALYTICSLaunchConfig alloc] init];

config.appKey = @"your appkey";

config.channel = @"channel";

[JANALYTICSService setupWithConfig:config];

iOS SDK API


登录事件模型

  • JANALYTICSLoginEvent
    该模型是登录事件模型,可以设置参数进行数据上报。
    参数说明:
参数名称 参数类型 参数说明
contentID NSString 登录方式(非空)
name BOOL 内容名称(非空)

调用示例:

JANALYTICSLoginEvent * event = [[JANALYTICSLoginEvent alloc] init];

event.success = YES;

event.method = @"login type";

event.extra = @{@"custom key1":@"custom value"};

[JANALYTICSService eventRecord:event];

极光运营统计图,可登录极光后找到程序应用后,找到统计界面打开查看登录统计,如下图:
A0F0740B-8870-4467-8440-8179DEE7D2F3

注意:
登录事件模型中扩展参数中不能使用以下 key 值:
login_method
login_success
此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.

SDK 页面流统计

+(void)startLogPageView:(NSString *)pageName

  • 接口说明:
    页面流统计开始接口,建议在ViewControler的viewDidAppear:方法中调用
  • 参数说明:
    pageName:要开始统计的页面名
  • 调用示例:

    - (void)viewDidAppear:(BOOL)animated {
        [JANALYTICSService startLogPageView:@"first_page_flow"];
    }
    

+(void)stopLogPageView:(NSString *)pageName

  • 接口说明:
    页面流统计结束接口,建议在ViewControler的viewDidDisappear:方法中调用;结束后,默认即时上报此页面。可通过[setFrequency:]方法更改为周期性上报策略
  • 参数说明:
    pageName:要结束统计的页面名
  • 调用示例:

    - (void)viewDidDisappear:(BOOL)animated {
        [JANALYTICSService stopLogPageView:@"first_page_flow"];
    }
    

极光运营统计图,可登录极光后找到程序应用后,找到统计界面打开查看登录统计,如下图:
0119D617-3D8D-4165-AF53-B1DFB3F23

浏览事件模型

  • JANALYTICSBrowseEvent
    该模型是浏览事件模型,可以设置参数进行数据上报。
    参数说明:
参数名称 参数类型 参数说明
contentID NSString 浏览内容id
name NSString 内容名称(非空)
type NSString 内容类型
duration CGFloat 浏览时长

调用示例:

JANALYTICSBrowseEvent * event = [[JANALYTICSBrowseEvent alloc] init];

event.name = @"browse name";

event.type = @"browse type";

event.contentID = @"browse id";

event.duration = 1.2;

event.extra = @{@"custom key1":@"custom value"};

[JANALYTICSService eventRecord:event];
注意:
浏览事件模型中扩展参数中不能使用以下 key 值:
browse_content_id
browse_name
browse_type
browse_duration
此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.

极光运营统计图,可登录极光后找到程序应用后,找到统计界面打开查看登录统计,如下图:

更多API

其他 API 的使用方法请参考接口文档:iOS SDK API

-------------本文结束感谢您的阅读-------------