IOS下的常用设备标示符
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及以后
• 说明:顾名思义,是给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),每台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的方案上来。
相关文章
- Unity3D开发之“获取IOS设备所在的国家代码"
- 使用PhoneGap命令行工具创建IOS PhoneGap项目及无证书真机调试
- IOS设备信息与机型对照表
- iOS开发之窥探UICollectionViewController(一) -- Ready Your CollectionViewController
- iOS开发之抽屉效果实现
- IOS开发之支付功能概述
- iOS 设备类型和版本判断
- Ios开发之 -- js和ios的交互
- iOS开发UI篇—UIScrollView控件实现图片轮播
- iOS开发UI篇—CALayer简介
- IOS调用系统通讯录
- IOS控件:WebView移动网站导航
- ios 蓝牙 扫描到蓝牙设备的时候同时记录advertisementData和RSSI
- ios蓝牙详解,苹果app作为蓝牙外设(从设备)CBPeripheralManager
- iOS拉取SRS流媒体服务器的Rtc流
- iOS Socket编程
- ios学习之旅------玩转结构体
- ios设备获取的idfa为 0 原因
- iOS-获取UIView的全部层级结构
- 史上最全的 iOS 各种测试工具集锦,看看有没有你不知道的