原文地址:http://www.cnblogs.com/BigPolarBear/p/3359526.html

要识别用户,首先就是要选择一个标识符,通过这个标识符来识别这个用户的设备(而不是用户),这个标识符要能够保证一个设备上返回的值是一样的,并且在其他设备上不会出现相同的值。

在iOS7之前,曾经有过很多方法来识别用户的设备,从最原始的设备udid、mac地址,到被各广告统计平台广泛使用的开源方案OpenUDID。

但随着AppStore开始拒绝接受使用udid的应用,到mac地址在iOS7上所有设备上都返回相同的值,再到iOS7上对剪贴板的限制,导致OpenUDID无法被不同应用共享相同的值,注定了上面提到的这些id们不得不退出历史的舞台。

随着iOS7快速占据了半壁江山,设备id的控制权终于彻底回到了Apple手中,同时也让用户能够把控自己的隐私,充分表明了是苹果对用户隐私保护的决心。

好了,其实就一个问题:iOS7时代我们用什么来追踪和识别用户?


先给结论

  • idfa: 适用于对外:例如广告推广,换量等跨应用的用户追踪等
  • idfv: 适用于对内:例如分析用户在应用内的行为等

PS:尘埃落定,跟着Apple走,大家不用再犹豫了。


再给解释

idfa

  • 全名:advertisingIdentifier
  • 代码:

      #import <AdSupport/AdSupport.h>NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
    
  • 来源:iOS6.0及以后

  • 说明:直译就是广告id, 在同一个设备上的所有App都会取到相同的值,是苹果专门给各广告提供商用来追踪用户而设的,用户可以在 设置|隐私|广告追踪 里重置此id的值,或限制此id的使用,故此id有可能会取不到值,但好在Apple默认是允许追踪的,而且一般用户都不知道有这么个设置,所以基本上用来监测推广效果,是戳戳有余了。
  • 注意:由于idfa会出现取不到的情况,故绝不可以作为业务分析的主id,来识别用户。

idfv

  • 全名:identifierForVendor
  • 代码:

      NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    
  • 来源:iOS6.0及以后

  • 说明:顾名思义,是给Vendor标识用户用的,每个设备在所属同一个Vender的应用里,都有相同的值。其中的Vender是指应用提供商,但准确点说,是通过BundleID的DNS反转的前两部分进行匹配,如果相同就是同一个Vender,例如对于com.somecompany.appone,com.somecompany.apptwo 这两个BundleID来说,就属于同一个Vender,共享同一个idfv的值。和idfa不同的是,idfv的值是一定能取到的,所以非常适合于作为内部用户行为分析的主id,来标识用户,替代OpenUDID。
  • 注意:如果用户将属于此Vender的所有App卸载,则idfv的值会被重置,即再重装此Vender的App,idfv的值和之前不同。

历史上的英雄们

UDID

设备唯一标识符(Unique Device Identifier)之前被各种国内外统计平台,应用开发商广泛使用,后Apple从2013年05月01日起拒绝接受使用UDID的应用后,立毙!

Mac地址

每一个网卡都有一个唯一的标识,即Mac地址,显然用来标识一个手机是绰绰有余的了,也有一些开源的方案也用到了它,国内UMTrack等也用它作为过主id,随着iOS7返回同样的值后,不得不退隐江湖。

OpenUDID

在Apple拒绝UDID后,OpenUDID作为独立于Apple的开源方案,被广大的开发者所接受,各大统计广告平台都从UDID等方案切换到OpenUDID的方案(看来大家都不想完全被Apple束缚啊),但不幸的事,同样由于iOS7对剪贴板的限制,导致同一个设备上应用间,无法再共享一个OpenUDID,即OpenUDID作为设备唯一标识的能力被大大削弱。也可以看到随着iOS7的来临,各广告平台都迅速更新自己的SDK,来切换到苹果的idfa的方案上来。

其他

CFUUID、NSUUID等自己生成,自己存储管理的就不细说啦。

DeviceToken

这是推送用的令牌,用户如果没开推送,或者拒绝了,这个就没有了!

转载于:https://www.cnblogs.com/now-or-never/p/4931420.html

iOS追踪设备和用户相关推荐

  1. iOS各种设备识别码IDFA、UDID、UUID、MAC、OpenUDID、IDFV

    今天在app服务端接口文档中看到2个接口名称,是和idfa相关的,就搜索了解了一下,顺便梳理了ios各种设备识别码. *IDFA英文全称Identifier+for+Advertising,即广告标示 ...

  2. iOS获取设备的唯一标识的方法

    各种获取设备唯一标识的方法介绍 一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,它就是苹果iOS设备的唯一识别码,它 ...

  3. 蓝牙资讯|苹果与谷歌起草蓝牙定位追踪设备行业规范

    苹果与谷歌于当地时间5月2日联合提交了一份行业规范草案,以帮助应对蓝牙定位追踪设备遭滥用的问题.目前已有包括三星在内的追踪设备制造厂商宣布支持该草案. 据了解,苹果与谷歌此次联合提交的行业规范草案将云 ...

  4. iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?

    http://www.ithao123.cn/content-8688001.html iOS获取设备唯一标识的各种方法?IDFA.IDFV.UDID分别是什么含义? [摘要:1.UDID (Uniq ...

  5. iOS7时代我们用什么来追踪和识别用户?

    要识别用户,首先就是要选择一个标识符,通过这个标识符来识别这个用户的设备(而不是用户),这个标识符要能够保证一个设备上返回的值是一样的,并且在其他设备上不会出现相同的值. 在iOS7之前,曾经有过很多 ...

  6. 三大运营商将上线 5G 消息;苹果谷歌联手,追踪 30 亿用户;jQuery 3.5.0 发布 | 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦 ...

  7. Android wear 睡眠追踪,为什么智能手表还不是最理想的睡眠追踪设备

    原标题:为什么智能手表还不是最理想的睡眠追踪设备 智能手表是一种极具发展潜力的新型设备,越来越多的用户对AppleWatch或是Android Wear们产生兴趣.除了智能化的第二屏功能,大部分智能手 ...

  8. 量化和优化Android设备的用户体验

    (本文为作者李晓峰原创,英文版原文发表在http://software.intel.com/en-us/articles/quantify-and-optimize-the-user-interact ...

  9. 天下3服务器全部显示test,《天下》iOS品鉴 Test Flight 用户使用流程

    原标题:<天下>iOS品鉴 Test Flight 用户使用流程 <天下>手游在正式上线前,希望能通过 Beta Testing 收集玩家的反馈和发现游戏的问题,目前我们可以通 ...

最新文章

  1. 两个月番茄组长的收获总结
  2. Keil 函数内联 inline
  3. SSClone非ARP会话劫持原理分析
  4. C++:C++在图片特定区域之外产生随机数
  5. java的string类_Java中的String类笔记
  6. LOJ#6284. 数列分块入门 8
  7. Iphone通过ssh进行访问
  8. (转)Windows API User32.dll详细介绍
  9. 智慧交通信息服务平台产品解决方案
  10. 三菱FX5U常见问题解析
  11. Delphi 编译的程序在win10中怎样默认以管理员身份运行
  12. Linux_常用的磁盘列阵(RAID)
  13. JAVA 并发编程学习总结
  14. petalinux2018.3安装步骤
  15. 三年磨一剑大话数据结构——数据结构起源、概念和术语
  16. 监听器和监听器过滤器常见应用GUl中理解
  17. 用Python自动化操作PPT,看完这篇文章就够了!
  18. 公众无线局域网体系结构和运营模式
  19. 中国企业服务市场为啥“小老头”居多?
  20. fMRI学习笔记:预处理及数据分析(使用spm12)

热门文章

  1. Linux加一存在路由没事吧,Linux 添加永久静态路由的方法
  2. React项目build之后资源文件路径不正确或打开空白页的问题及简易解决方法
  3. springboot static方法与构造方法加载@VALUE
  4. httpclient的post请求超时
  5. Luogu 2296 寻找道路
  6. WPF通用窗体模板【2】
  7. Windows下mysql数据库导入导出(mysqldump,source)
  8. Running 1 linux_yesterdaytodaytomorrow
  9. 1090 危险品装箱 (25分)
  10. Shell中字符串反转的六大方法