• 想获取用户各项行为数据吗?
  • 想轻松查看用户行为图表吗?
  • 想高效进行 App 运营管理吗?

想,来我带你玩转 App 数据统计。这里我使用专业、轻便的 JAnalytics

本文内容分为两部分:代码示例&使用技巧部分、控制台图表查看部分。

代码示例&使用技巧

集成

  1. 下载 JAnalytics SDK
  2. 添加 Lib 文件夹下的全部文件至 Xcode Project
  3. 增加相关的 framework 依赖:

    UIKit.framework

    SystemConfiguration.framework

    CoreTelephony.framework

    CoreGraphics.framework

    Security.framework

    Foundation.framework

    CoreLocation.framework

    CoreFoundation.framework

    CFNetwork.framework

    libz.tbd

    libresolv.tbd

初始化 SDK

#import "JANALYTICSService.h"

application:didFinishLaunchingWithOptions 中添加以下代码:

代码示例
JANALYTICSLaunchConfig * config = [[JANALYTICSLaunchConfig alloc] init];
config.appKey = @"your appkey";
config.channel = @"channel";
[JANALYTICSService setupWithConfig:config];

其中的 appKey 参数,需要你在极光控制台注册个帐号,并创建一个 App 项目来获取。

页面流统计

  • +startLogPageView:开始统计某页面,可以写在 ViewControler 的 viewDidAppear:
  • +stopLogPageView:结束统计某页面,可以写在 ViewControler 的 viewDidDisappear:
代码示例
- (void)viewDidAppear:(BOOL)animated {
[JANALYTICSService startLogPageView:@"页面名称"];
}
- (void)viewDidDisappear:(BOOL)animated {
[JANALYTICSService stopLogPageView:@"页面名称"];
}
使用技巧

以上方法需要在所有 Controller 中全部写一遍,建议在自己的 UIViewController 基类 BaseViewController 或者为 UIViewController 添加 Category,添加以下代码。只要写一遍即可统计所有现有或者新增的页面,既减少了代码量,也不用担心有遗漏的页面:

- (void)viewDidAppear:(BOOL)animated {
[JANALYTICSService startLogPageView:NSStringFromClass([self class])];
}
- (void)viewDidDisappear:(BOOL)animated {
[JANALYTICSService stopLogPageView:NSStringFromClass([self class])];
}

在以上代码的基础上还可单独定义一个类似 PageNameFromClass 的方法,通过获取 class 转为具体的页面名称

地理位置统计

+setLatitude:longitude::上报地理位置信息

代码示例
[JANALYTICSService setLatitude:116.46 longitude:39.92];

崩溃日志统计

+crashLogON:开启对 crash日志的收集

建议在 application:didFinishLaunchingWithOptions 调用该方法。

代码示例
[JANALYTICSService setLatitude:116.46 longitude:39.92];

事件统计

+eventRecord通过传入不同的事件模型来进行各种事件的统计,现支持的事件有:注册、登录、购买、浏览、计数、计算。

代码示例
[JANALYTICSService eventRecord:event];

其中的 event 需要根据事件的不同进行创建。

例如注册事件:

JANALYTICSRegisterEvent * event = [[JANALYTICSRegisterEvent alloc] init];
event.success = YES;//是否注册成功
event.method = @"注册方法";
event.extra = @{@"自定义 key1":@"自定义 value1"};
[JANALYTICSService eventRecord:event];

各种不同事件的创建方法参照此处

控制台图表查看


控制台统计页面可以查看到 App 中各项数据的统计图表。

  • 免费功能:包括推送统计、用户统计、参与留存、错误分析、事件统计、页面统计等,也足以满足各项统计需求了。
  • VIP 功能:包括 终端统计、排行统计、用户画像等高级功能。

其中的各项数据一般会在 App 调用相应接口之后每隔 1 小时进行刷新。

另外每项统计下面又包含多种不同功能,大家可以依次尝试一下。

作者:pikacode - 极光

原文:iOS 轻松使用 App 数据统计

知乎专栏:极光日报

iOS 轻松使用 App 数据统计的更多相关文章

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

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

  2. 个推数据统计产品(个数)iOS集成实践

    最近业务方给我们部门提了新的需求,希望能一站式统计APP的几项重要数据.这次我们尝试使用的是个推(之前专门做消息推送的)旗下新推出的产品“个数·应用统计”,根据官方的说法,个推的数据统计产品通过专业的 ...

  3. Fiddler基本原理与抓取Andriod与IOS的App数据包

    Fiddler基本原理 Fiddler数据包的原理是Fiddler将自己设置为一个代理服务器,默认监听127.0.0.1:8888端口同时将浏览器的HTTP.HTTPS协议设置为使用代理服务器也就是使 ...

  4. iOS-----GitHub上比较齐全的iOS 工具和App

    Github-iOS 工具 和 App   系统基础库 Category/Util sstoolkit 一套Category类型的库,附带很多自定义控件 功能不错-       BFKit 又一套Ca ...

  5. Apple的App Analytics统计平台你必须知道的Q&A整理与翻译

    Apple的App Analytics统计平台你必须知道的Q&A整理与翻译 Apple最近在iTunesConnect里最新发布了App Analytics统计平台,提供了现有友盟统计平台和自 ...

  6. Android之友盟多渠道打包与数据统计

    文章大纲 一.多渠道打包与数据统计介绍二.友盟实现多渠道打包实战三.友盟数据统计实战四.项目源码下载五.参考文章   一.多渠道打包与数据统计介绍   多渠道打包,相信很多同学都知道.在Android ...

  7. <iOS开发>之App上架流程(2017)

    本文主要介绍了App上架流程,以及上架过程中会遇到的一些问题. 一.App上架前的准备. 上架前,需要开发人员有苹果开发者账号,具体请阅读苹果开发者账号注册申请流程.本文是在已经拥有开发者账号的前提下 ...

  8. iOS 最新公布app到AppStore全流程具体解释

    一.生成公布证书(证书的作用:类似于驾照,证明你的身份能够进行开发人员一些操作) 打开https://developer.apple.com 点击右上角开发人员中心 这里输入你付款过的Apple 帐号 ...

  9. App渠道统计方法全面解析 总有一种适合你

    一.App渠道统计对于App推广运营的重要性 (理解App渠道统计重要性的老司机,请直接移步到第二部分) App服务的竞争重点已经由功能竞争转向市场和运营的竞争,而App的推广与运营离不开App渠道统 ...

随机推荐

  1. 解决:EXCEL复制粘贴,精度丢失

    公司一部分数据是存在elasticsearch里面的,但里面的ID设计得特别长,我是打算把ID号考出来,用jmeter批量 删除的,但复制粘贴到excel里,ID就会精度丢失. 后来找到一个办法,解决 ...

  2. ansible的ad-hoc模式

    一.什么是ad-hoc模式 ansible中有两种模式,分别是ad-hoc模式和playbook模式 ad-hoc简而言之,就是"临时命令" 二.ad-hoc模式使用的场景 场景一 ...

  3. leetcode array解题思路

    Array *532. K-diff Pairs in an Array 方案一:暴力搜索, N平方的时间复杂度,空间复杂度N 数组长度为10000,使用O(N平方)的解法担心TLE,不建议使用,尽管 ...

  4. [JSON] Validating/Asserting JSON response with Jsonlurper

    import groovy.json.JsonSlurper def response = messageExchange.response.responseContent log.info &quo ...

  5. hdu 4068 I-number

    #include<stdio.h> #include<string.h> ]; int al; int mysum() //求各位和 { ; al=strlen(a); ; i ...

  6. 白盒测试实践项目(day1)

    由于近期各种考试逼近,我们小组白盒测试实践项目进度有些慢,在任务决定后的两天里,我们小组各个成员的进度完成不一. 胡俊辉熟悉了怎么使用Junit对部分代码的测试,初步掌握了Junit的简单使用. 汪鸿 ...

  7. smarty内置函数、自定义函数

    1.把字符串里的d字母替换成h格式:{'d'|str_replace:'h':$str}; d要查找的字符 h要替换的字符 $str字符串 2.function test($param){$p1=$p ...

  8. 使用Selenium&PhantomJS的方式爬取代理

    前面已经爬取了代理,今天我们使用Selenium&PhantomJS的方式爬取快代理 :快代理 - 高速http代理ip每天更新. 首先分析一下快代理,如下 使用谷歌浏览器,检查,发现每个代理 ...

  9. javascript总结37:DOM:innerText 和 innerHTML

    innerText 和 innerHTML 作用: 给双标签的元素设置内容/获取双标签里面的内容 不同点: innerText 只是用于获取文本或设置文本 innerHTML 不仅可以用于设置/获取文 ...

  10. 开源SLAM

    GitHub 上优秀的开源SLAM repo (更新中):https://www.jianshu.com/p/464ca0d0c254 当前的开源SLAM方案:https://www.cnblogs. ...