如何使用友盟统计
送给有需要的朋友,这里我封装了友盟统计的功能,只需要导入这个类,就可以很方便的使用: [objc] view plaincopyprint? 01.// 02.// HYBUMAnalyticsHelper.h 03.// UMAnalyticsDemo 04.// 05.// Created by 黄仪标 on 14/11/19. 06.// Copyright (c) 2014年 黄仪标. All rights reserved. 07.// 08. 09.#import 《Foundation/Foundation.h》 10. 11./*! 12. * @brief 友盟统计功能相关操作API封装 13. * 14. * @author huangyibiao 15. */ 16.@interface HYBUMAnalyticsHelper : NSObject 17. 18./*! 19. * 启动友盟统计功能 20. */ 21.+ (void)UMAnalyticStart; 22. 23./// 在viewWillAppear调用,才能够获取正确的页面访问路径、访问深度(PV)的数据 24.+ (void)beginLogPageView:(__unsafe_unretained Class)pageView; 25. 26./// 在viewDidDisappeary调用,才能够获取正确的页面访问路径、访问深度(PV)的数据 27.+ (void)endLogPageView:(__unsafe_unretained Class)pageView; 28. 29.@end // // HYBUMAnalyticsHelper.h // UMAnalyticsDemo // // Created by 黄仪标 on 14/11/19. // Copyright (c) 2014年 黄仪标. All rights reserved. // #import 《Foundation/Foundation.h》 /*! * @brief 友盟统计功能相关操作API封装 * * @author huangyibiao */ @interface HYBUMAnalyticsHelper : NSObject /*! * 启动友盟统计功能 */ + (void)UMAnalyticStart; /// 在viewWillAppear调用,才能够获取正确的页面访问路径、访问深度(PV)的数据 + (void)beginLogPageView:(__unsafe_unretained Class)pageView; /// 在viewDidDisappeary调用,才能够获取正确的页面访问路径、访问深度(PV)的数据 + (void)endLogPageView:(__unsafe_unretained Class)pageView; @end [objc] view plaincopyprint? 01.// 02.// HYBUMAnalyticsHelper.m 03.// UMAnalyticsDemo 04.// 05.// Created by 黄仪标 on 14/11/19. 06.// Copyright (c) 2014年 黄仪标. All rights reserved. 07.// 08. 09.#import “HYBUMAnalyticsHelper.h“ 10.#import “MobClick.h“ 11. 12.#define kUMAnalyticsAppKey @“546c4457fd98c5cb9a00319d“ 13. 14.@implementation HYBUMAnalyticsHelper 15. 16.+ (void)UMAnalyticStart { 17. [MobClick startWithAppkey:kUMAnalyticsAppKey reportPolicy:BATCH channelId:@“App Store“]; 18. 19. // version标识 20. NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@“CFBundleShortVersionString“]; 21. [MobClick setAppVersion:version]; 22. 23.#if DEBUG 24. // 打开友盟sdk调试,注意Release发布时需要注释掉此行,减少io消耗 25. [MobClick setLogEnabled:YES]; 26.#endif 27. return; 28.} 29. 30.+ (void)beginLogPageView:(__unsafe_unretained Class)pageView { 31. [MobClick beginLogPageView:NSStringFromClass(pageView)]; 32. return; 33.} 34. 35.+ (void)endLogPageView:(__unsafe_unretained Class)pageView { 36. [MobClick endLogPageView:NSStringFromClass(pageView)]; 37. return; 38.} 39. 40.@end
android 友盟统计有什么用
统计的维度很多,不过最基本的新增用户和启动次数。关于这个,可能就需要涉及到Android的activity的生命周期和状态改变。为了更好的理解,做了个简单的代码尝试。protectedvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.e(TAG,“enter onCreate”);}protectedvoid onStart() { super.onStart(); Log.e(TAG,“onStart“); }
友盟统计怎么统计在线人数
友盟统计是如何识别用户的? 友盟UMID 方案解析!香布拉啦2014-12-16 11:401. 基本概念根据能否追踪到单个独立的设备, 可以将一个统计系统分为可区分统计(Discriminative Statistics)和不可区分统计(Non-Discriminative Statistics)。友盟提供的是可区分统计,也就是会利用一个身份标识符(Unique ID,以后简称 ID)长期追踪单个设备的数据。作为对比,早期的网站统计都是不可区分统计,例如页面访问次数,独立 IP 数等;现代的网站统计都是基于 Cookie 或硬件指纹的可区分统计。由于智能设备提供了足够多的硬件指纹和计算能力,友盟从第一天开始就专注于可区分统计。大多数移动统计的 ID 都是通过系统 ID 生成的,包括但不限于 IMEI、MAC、Android ID。最著名的 ID 莫过于 UDID, 迫于隐私的压力,苹果最终废弃了 UDID 和 MAC 地址。大多数网站统计都是基于 Cookie的,因此是暂态ID(Temporal ID)。OpenUDID 就是一个典型的暂态ID。苹果的 IDFA 和 IDFV 都是系统ID,但是他们同时也是暂态ID。由于可区分统计涉及到用户隐私,因此友盟在计算中使用的都不是系统 ID ,而是自己的 UMID。友盟不会向第三方提供包含原始 ID 或 UMID 的数据,而是提供聚合后的结果。UMID 既不是系统ID也不是暂态ID,它是一个在不断演化的ID解决方案。本文将会解释友盟为什么要设计 UMID,又为何要不断地改进这个方案。2. ID质量进行可区分统计的基础是确立一个可靠的身份标识符,这看上去是一个很简单的事情,只需要选择一个ID,或者人为构造一个类Cookie ID,就可以完成独立用户量、留存等分析。但遗憾的是,除了苹果已经废除的UDID,几乎没有一个接近完美的ID。为了方便讨论,首先忽略假数据的存在,假设每个设备都有一个真实的身份标识X。可区分统计的目标是选择一个合适的身份标识I,使得基于I的统计结果尽可能地和 X 一致。首先,我们引入两个概念ID冲突(Collision)和ID漂移(Jitter)。ID冲突对于某个设备集合(Device Cohort),在某个时间段内,总是可以测量 X 和 I 的数量,用 Count(X) 和 Count (I) 来表示。如果在足够短的时间内Count(X) 》 Count(I)我们称 I 是一个存在冲突的 ID。ID漂移对于某个设备集合(Device Cohort),在某个时间段内,总是可以测量 X 和 I 的数量,用 Count(X) 和 Count (I) 来表示。如果在足够长的时间内Count(X) 《 Count(I)则我们称 I 是一个存在漂移的 ID。Android 设备的IMEI 就是一个存在严重冲突的 ID,根据我们的估算,其冲突率大于 3%。这是因为很多山寨机的IMEI 是相同的。Android 设备的 MAC 也是一个存在冲突的ID,因为很多山寨机的MAC也是相同的。此外,MAC还是一个典型的存在严重漂移的 ID,这是因为 Android 的源代码中有一段随机生成MAC 地址后24位的代码被滥用了(参考阅读: MAC地址漂移的问题)。定性分析接下来,我们可以定性分析一下ID冲突和漂移对统计数据的影响:当一个ID仅存在冲突的时候,利用这个ID统计的DAU和安装都会被低估,但是有可能会高估留存。但是这些影响都是温和的,例如5% 的ID冲突仅仅会导致DAU至多被低估 5%,而对留存的影响几乎可以忽略。当一个ID仅存在漂移的时候,利用这个ID统计的DAU和安装都会被高估,同时会影响留存。当漂移较大的时候,对统计指标的影响是剧烈的。例如,一个每日漂移为5%的ID,可能会造成DAU被高估2%,但是会每天造成5%的虚假安装(这是因为漂移会影响所有用户,包括不活跃用户),同时这些虚假安装的留存在短期内偏高,但是长期留存则偏低(短期内没有漂移的时候就会偏高,时间长了,漂移了就会偏低)。任何类Cookie的ID都会有类似的性质,因此传统的网站统计正在全面转向更为可靠的设备指纹。当一个ID既存在冲突又存在漂移的时候,利用这个ID统计出来的DAU和安装是完全不可靠的。以MAC地址为例,存在漂移的这部分设备的MAC地址会频繁变化,因此会制造大量的虚假安装,同时留存率非常低。对于用户量不大的应用而言,选择存在这类ID的后果是灾难性的。综上所述,当ID的漂移和冲突足够小的时候,他们对可区分统计的影响都是可以忽略的。当这些误差不可忽略的时候,ID的冲突造成的影响是温和的,而ID的漂移则会严重