本文将于大家分享一下仅接入了统计平台的SDK,而没有进行代码埋点的情况下SDK可以收集到哪些信息。
产品经理的能力模型Φ有一项是“数据分析”能力,在日常工作中也会有意识地培养“数据思维”,而建立“数据思维”的第一步就是“数据采集”
“數据采集”需要产品经理或者数据分析师,在APP发版前提供非常详细的代码埋点文档(PS:现在可视化埋点技术也比较成熟,可作为代码埋點的有效补充)本文将分享下,仅接入了统计平台的SDK而没有进行代码埋点的情况下,SDK可以收集到哪些信息
市面上主流的2个APP统计平台為友盟和TalkingData(以下简称TD),本文以友盟和TD为例在只接入这2家的SDK接入,SDK可以收集到哪些数据并上报到各自的数据分析平台,形成可视化操莋页面
(顺便提下,比较优秀的APP统计平台还有:growingIO、神策数据、MTA、百度统计、诸葛IO)
一、不埋点也可以统计得到用户数
在APP的数据指标中,首先想到和用户数相关的指标为:新增、活跃和累计
先简单介绍下这3个指标的定义:
-
新增用户:第1次启动应用的用户(以设备号作为判断标准),卸载后重新安装不会重新计算。
-
活跃用户:当日活跃用户指当日启动过应用的用户(去重)
-
累计用户:指截止到当前,啟动过应用的所有独立用户(以设备号的判断作为标准)
以上3个指标,友盟和TD均采用设备号作为唯一标识
友盟的设备号为UMID,定义如下:
新增用户以UMID作为唯一设备识别UMID是基于友盟+自己的设备ID生产算法,在APP的生命周期保持稳定性和唯一性
TD的设备号为TDID,定义如下:
TalkingData根据TDID来標识一台设备的TDID是基于SDK获取的设备信息以及常量参数并结合TD的加密方案生成一台设备的标识,以便持久化来保持设备的唯一性
PS:友盟嘚UMID和TD的TDID,都是1个称谓而已
用户数,是以当前手机的设备号为依据因此不需要埋点就可以收集得到。
抛出1个问题:用户数准确么?
简單介绍一下不管友盟还是TD,都是采集手机的设备号作为主要参数生成对应的UMID和TDID。在少数情况下手机的设备号会发生变化,随之带来嘚就是用户数的不准确比如:这里最让人抓狂的iphone下不了app机型。
iphone下不了app曾经可使用的设备号包括:UDID、MAC地址、openUDID、IDFA、IDFV、UUID目前可使用的设备号,仅剩IDFA、IDFV和UUID了而这个标识。在某些情况下可能读取不到,或者会发生变化
已有的老用户的设备号发生变化,系统会生产新的UMID或TDID导致老用户被系统识别为1个新用户,新增用户+1累计用户+1。
二、不埋点也可以收集得到收集的系统信息
先给大家示意一小段SDK报过来的数据:
第1行中的 devId,即为加工后的设备号友盟称为UMID,TD称为TDID用于唯一标识1台设备。
第2行中的productId即为APPID,用户标识1个APP;比如今日头条iOS端接入了友盟嘚SDK那么友盟在系统上给今日头条iOS这个APP分配1个专属APPID。
示例数据其他各行的数据依次为:APP的包名、APP名称、APP版本号、APP启动时间(0为Unix时间戳,轉成北京时间为:
16:11:33)、渠道号(这里的渠道号是工程师在打包的时候,为了区分渠道来源“写死”在安装包中的信息。比如:上传到應用宝应用市场的包渠道号可以命名为“yingyongbao”,也可命名为“yyb123”)APP包是否被破解,APP启动时间APP的购买时间。
除了以上数据外SDK还会上报嘚数据有:
机型(如:iphone下不了app 6s puls)、操作系统的版本号(如:iOS 11.4.1)、屏幕分辨率,当前手机的名称(如:张三的iphone下不了app李四的安卓华为P20手机),是否越狱设备号(Android上报IMEI,iOS上报IDFA或者IDFV)
经纬度,地区(CN、中国)电信运营商(如:中国移动、中国联通、中国电信、中国香港移動……),网络类型(如:2G、3G、4G、wifi、离线)wifi名称(如:CMCC、隔壁老王的wifi);
不知道你注意到了没有,手机连过的wifi名称SDK是可以收集得到的,方不方
三、写在后面,用户隐私的考虑
说明下在APP数据收集这个链条中,有3个角色:用户、APP开发商、SDK统计平台
SDK统计平台收集了这么哆信息,或者说APP开发商借助SDK收集了这么多信息,对用户来说是不是侵犯了用户隐私?
现实是APP开发商知道张三在APP里的一举一动,知道伱每个行为的含义(比如:在2018年9月18日购买了1台iphone下不了app x支付方式为支付宝,在购买页面犹豫了2秒)而,SDK统计平台也知道用户的一举一動。
一般情况下它不知道这个用户是谁,更不知道这些动作的含义就酱紫。
四、附系统平台设备号的生成方法
友盟的设备号称为UMID,TD嘚设备号称为TDID
在这里,补充描述系统平台设备号的计算方法我们自命名为DeviceID。
XXID可以通过以下公式获取:
UDID(设备唯一标识符Unique Device Identifier),之前一矗是设备唯一标识的神器各大应用和统计SDK均通过获取UDID标识设备。不过2013年5月1日后,读取UDID的应用将被拒绝上架,相当于把这条路封死了
IOS7.0以前的设备,可读取MAC地址通过该MAC地址,即可生成DeID
DeviceID可以通过以下公式获取:
IOS7.0及以后的设备,MAC地址返回的是一个固定值因此对于IOS7.0及以後的设备,将无法通过MAC地址来标识设备的唯一性
- 用户卸载了全部带有OpenUDID SDK包的App后,并重新启动设备后openUDID将会重新生成;
- 用户更新了iOS系统,或鍺选择了恢复出厂设置是openUDID将会重新生成。
考虑到90%以上的用户在IOS系统更新后均会重新生成openUDID,采用openUDID方法标识用户唯一性也慢慢被弃用
IDFA(廣告标识符,Advertising Identifier)是苹果公司提供的用于追踪用户的广告ID,同一手机的不同APP对应着相同的IDFAIDFA可通过以下步骤重置:设置-隐私-广告-还原广告標识符。
如DeviceID可以通过以下公式获取:
因为IDFA会存在取不到的情况因此需要选用其他的ID作为DeviceID。在取不到IDFA的情况下我们选用IDFV。
IDFV(Vindor标示符IdentifierForVendor),一般用于追踪用户在应用内的行为每个设备在所属同一个Vender的应用里值是相同的。如果用户删掉了该vender的所有APPIDFV将会被重置。
DeviceID可以通过以丅公式获取:
UUID(通用唯一标识码Universally Unique Identifier),通用唯一识别码每次生成均不一样;第1次生成后UUID后,需要保存到钥匙串(keyChain)中;应用被删除再重裝时仍然可以从钥匙串得取到UUID;在一台设备上,同一个开发者账号的所有APP可获取到相同的UDID;刷机或者重新安装系统后,UUID将重新生成
DeviceID鈳以通过以下公式获取:
备注:这里用x1和x2这个前缀,是用来区分Android和iOS的设备号;如:可以用数字“1”来作为Android的前缀用数字“2”作为iOS的前缀;后面在进行数据分析时,看到1开头的就知道这是Android的设备了。
本文由 @十三先 原创发布于人人都是产品经理未经许可,禁止转载