IDFA
• 全名:广告标示符(IDFA-identifierForIdentifier)
• 代码:
#import <AdSupport/AdSupport.h>
NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
• 来源:iOS6.0及以后
• 说明:在同一个设备上的所有App都会取到相同的值,是苹果专门给各广告提供商用来追踪用户而设的,用户可以在 设置|隐私|广告追踪 里重置此id的值,或限制此id的使用,故此id有可能会取不到值,但好在Apple默认是允许追踪的,而且一般用户都不知道有这么个设置,所以基本上用来监测推广效果,是绰绰有余了。
IDFA会出现取不到的情况,故绝不可以作为业务分析的主id,来识别用户。
• 适用于对外:例如广告推广,换量等跨应用的用户追踪等
IDFV
• 全名:Vindor标示符 (IDFV-identifierForVendor)
• 代码:
NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
• 来源:iOS6.0及以后
IDFV的值。和IDFA不同的是,IDFV的值是一定能取到的,所以非常适合于作为内部用户行为分析的主id,来标识用户,替代OpenUDID。
IDFV的值会被重置,即再重装此Vender的App,IDFV的值和之前不同。
• 适用于对内:例如分析用户在应用内的行为等
UDID (已禁用)
设备唯一标识符(Unique Device Identifier),每台iOS设备的UDID是唯一且永远不会改变,Apple公司于2013年5月1日开始,拒绝采集UDID的App上架App Store
Mac地址 (已失效)
MAC(Medium/Media Access Control)地址,用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节(48位),MAC地址在网络上用来区分设备的唯一性,显然用来标识一个手机是绰绰有余的了。但是从iOS7及更高版本往后,如果你向IOS设备请求获取mac地址,系统将返回一个固定值“02:00:00:00:00:00”,所以将不能使用MAC地址生成设备的唯一标识。
OpenUDID
在Apple拒绝UDID后,OpenUDID作为独立于Apple的开源方案,被广大的开发者所接受,各大统计广告平台都从UDID等方案切换到OpenUDID的方案,但不幸的事,同样由于iOS7对剪贴板的限制,导致同一个设备上应用间,无法再共享一个OpenUDID,即OpenUDID作为设备唯一标识的能力被大大削弱。也可以看到随着iOS7的来临,各广告平台都迅速更新自己的SDK,来切换到苹果的idfa的方案上来。