移动设备(手机)的唯一ID有哪些

移动设备(手机)的唯一ID有哪些

在移动广告领域,设备的ID 是用来追踪一个人的最重要的标识。

对于APP自身产品而言,使用设备唯一ID可以追踪到用户从下载到激活、注册、使用、流失、回归的全流程数据,对产品运营工作非常有帮助。

对于精准广告和个性化推荐而言,可以使用设备ID进行数据收集、然后进行千人千面的精准营销。

对于与外部数据打通而言,移动设备ID 是能与公司外的数据进行打通、交换、补充的唯一性ID,也是市场上大家都认可的ID。

既然移动设备ID 如此的重要,那我们就来聊一聊,有哪些ID我们是可以使用的:

一、IMEI

IMEI是国际移动设备识别码,一串15位的号码,每部通过正规渠道销售的GSM手机均有唯一的IMEI码。IMEI码由GSMA协会统一规划,并授权各地区组织进行分配,一般由运营商存储在SIM卡中。

1、IOS体系下:无法获取 
在IOS5.0以后,苹果官方就屏蔽了获取IMEI号的接口,因此后续版本的苹果设备都无法获取到IMEI号。

2、Andriod体系下:可以获取 
Andriod的手机设备是允许开发者获取IMEI号的,但在Andriod6.0以后版本需要得到用户的主动授权才能获取。

二、IDFA

苹果和Google针对移动设备推出的 广告标识符

1、IOS体系下:可以获取 
在IOS6.0以后版本均可以正常获取IDFA,但手机用户可以手动还原 以及 手动禁止获取(手动关闭广告追踪,目前关闭的用户占比较小)。

2、Andriod体系下:受限获取 
其实在Andriod2.3以后,Google也学苹果推出了IDFA,用于跟踪广告的唯一标识,功能基本上与苹果的IDFA是一样一样的。但是Google的这个IDFA是需要基于Google Play等基础APP的,在国内环境下,Google的这些基础APP要么无法访问使用,要么被手机厂商直接去掉了,因此Android手机上的IDFA在国内没有起到唯一ID的作用。

三、UDID

原苹果设备的唯一识别ID,它是40个字符组成。

1、IOS体系下:无法获取 
在IOS旧版本可以使用,但在IOS7.0以后版本苹果停用了此ID,新版都无法获取。

2、Andriod体系下:无法获取 
Andriod体系没有这个ID。

四、MAC

MAC是指无线网卡地址

1、IOS体系下:无法获取 
在IOS7.0以后版本IOS设备无法获取到MAC(准确说是会返回一个固定值的MAC,不具有唯一性)。

2、Andriod体系下:可以获取 
APP的开发者可以主动获取当前Andriod手机的MAC地址,另外 如果是通过 WIFI上网 或者 WIFI AP 探针 也都可以获取到当前设备的MAC地址。

五、Andriod_ID

Andriod_ID 是Andriod设备独有的ID,每一个新设备系统都会随机的分配一个Andriod_ID,为64位数字。如果将设备恢复出厂设置、刷机,则会生成一个新的ID。

六、其它 IDFV、openUDID、UUID

IDFV 是苹果设备给单个APP自身用于追踪用户的唯一ID,这个IDFV在一个APP内是唯一的,跨APP就不唯一了,因此只能用于单个APP自身用于追踪用户行为。

openUDID 是非官方提供的API,在IOS和Andriod体系下都可以使用,效果一般,有部分公司也会使用这个ID。

UUID由于Andriod体系ID确实太复杂了,所以还有厂商会根据UUID生成标准在APP中生成UUID来使用。

无论是苹果还是Google,都越来越注重用户隐私的保护。因此可以看到,只要是涉及到 设备的唯一性且不可更改性的ID,都慢慢的不会苹果/Google推荐使用,例如 MAC地址、UDID等,都是与设备永久性绑定,一旦泄漏涉嫌侵犯用户隐私的。所以现在厂商都开始推各类的 广告ID,例如 IDFA,可用于追踪广告,也可由用户自主设置。

目前,在国内,Android设备主要还是以 IMEI 为主,IOS设备主要以 IDFA 为主。


参考 MMA中国无线营销联盟、《程序化广告实战》书籍等。


本文原创发布于微信公众号「 bzsikao 」,欢迎关注,交流更多的 互联网认知、工作管理、大数据、Web、区块链技术。

原文地址:https://www.cnblogs.com/jsjwk/p/9392577.html

时间: 2024-10-02 21:28:32

移动设备(手机)的唯一ID有哪些的相关文章

不需要任何权限获得Android设备的唯一ID

这个问题来自于Is there a unique Android device ID? 我对这个问题的答案做了整理,包括将另一篇文章加入进来作为补充,可以完美解决此问题. 作者提出的问题: Android设备有没有唯一的id?如果有的话,我怎么通过java代码获得这个id? 答案: 我读了stack OverStack上每一个答案,谷歌的开发者博客和Android文档,我认为'Pseudo ID' 是最好的选择. 首先先来看看我们为什么不选用其他的方法: User Email 用户可以更改他们的

获取唯一ID码

坑逼的安卓厂商太多,没有可以可靠获取所有厂商设备唯一ID的方法,各个方法都有自己的使用范围和局限性, 这也是目前流行的Android系统版本过多,设备也是来自不同厂商,且没有统一标准等原因造成的. 比较常用的有: 1.DEVICE_ID TelephonyManager tm =(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);String DEVICE_ID = tm.getDeviceId(); 根据不同的手机设备返回

游戏服务器生成全局唯一ID的几种方法

在服务器系统开发时,为了适应数据大并发的请求,我们往往需要对数据进行异步存储,特别是在做分布式系统时,这个时候就不能等待插入数据库返回了取自动id了,而是需要在插入数据库之前生成一个全局的唯一id,使用全局的唯一id,在游戏服务器中,全局唯一的id可以用于将来合服方便,不会出现键冲突.也可以将来在业务增长的情况下,实现分库分表,比如某一个用户的物品要放在同一个分片内,而这个分片段可能是根据用户id的范围值来确定的,比如用户id大于1000小于100000的用户在一个分片内.目前常用的有以下几种:

STM32全球唯一ID读取方法

产品唯一的身份标识非常适合:● 用来作为序列号(例如USB字符序列号或者其他的终端应用)● 用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性.● 用来激活带安全机制的自举过程96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的.用户在何种情况下,都不能修改这个身份标识.这个96位的产品唯一身份标识,按照用户不同的用法,可以以字节(8位)为单位读取,也可以以半字(16位)或者全字(32位)读取.基地址:0x1F

分布式系统唯一ID生成方案汇总

系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结.生成ID的方法有很多,适应不同的场景.需求以及性能要求.所以有些比较复杂的系统会有多个ID生成的策略.下面就介绍一些常见的ID生成策略. 1. 数据库自增长序列或字段 最常见的方式.利用数据库,全数据库唯一. 优点: 1)简单,代码方便,性能可以接受. 2)数字ID天然排序,对分页或者需要排序的结果很有帮助. 缺点: 1)不同数据库语法和实现不同,数据库迁移的时候或多数据库版本支持的时候需要处理. 2)在单个数据库或

[PHP学习教程]005.全局唯一ID(GUID)

GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) . GUID 是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性. GUID 主要用于在拥有多个节点.多台计算机的网络或系统中,分配必须具有唯一性的标识符. 在 Windows 平台上,GUID 广泛应用于微软的产品中,用于标识如如注册表项.类及接口标识.数据库.系统目录等对象. 接口格式: GUID 的

获取手机的唯一标识

获取安卓的手机或者平板的唯一标识,底纹 1import android.provider.Settings.Secure; 2 3private String android_id = Secure.getString(getContext().getContentResolver(), 4                                                        Secure.ANDROID_ID); 5 6  UUID deviceUuid = new U

高并发分布式系统中生成全局唯一Id汇总

高并发分布式系统中生成全局唯一Id汇总 (转自:http://www.cnblogs.com/baiwa/p/5318432.html) 数据在分片时,典型的是分库分表,就有一个全局ID生成的问题.单纯的生成全局ID并不是什么难题,但是生成的ID通常要满足分片的一些要求:   1 不能有单点故障.   2 以时间为序,或者ID里包含时间.这样一是可以少一个索引,二是冷热数据容易分离.   3 可以控制ShardingId.比如某一个用户的文章要放在同一个分片内,这样查询效率高,修改也容易.   

PHP uniqid 高并发生成不重复唯一ID

http://www.51-n.com/t-4264-1-1.html PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳.在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据.即使使用了第二个参数,也会重复,最好的方案是结合md5函数来生成唯一ID.PHP uniqid() 生成不重复唯一标识方法一这种方法会产生大量的重复数据,运行如下PHP代码会数组索引是产生的唯一标识,对应的元素值是该唯一标识重复的次数. <?php $units = arr