iOS 个性化安装的实践三 设备唯一标识

2017-11-20  本文已影响132人  盲果冻

在个性化安装的思考中,设备唯一标识识别应该是大家都最容易想到的一种匹配方案,也是最符合原生场景的,流程也相对简单:

  1. 用户浏览wap网页,服务端记录用户对应的某些行为数据信息
  2. wap引导用户去下载app,并收集设备标识发送至服务端
  3. 用户跳转至App Store下载app并第一次启动,app也收集设备的标识发送给服务端
  4. 服务端比对app上传的设备标识,找出具有相同设备标识的wap用户,并下发记录的数据信息
  5. app根据下发的数据信息还原wap之前的操作,实现无感延续性使用

从场景流程来看,关键在于设备唯一标识的选择,必须app能获取,wap也能获取,那我们先分别分析wap和app在设备唯一标识上的各自选择上有哪些


  1. UUID
    Universally Unique Identifier,通用唯一识别码,每次生成都会不一样,所以第一次启动获取后,存储在钥匙串Keychain中,这样app被删除了,Keychain里的数据依然存在,除非系统重置
- (NSString *)uuid {
    CFUUIDRef uuid = CFUUIDCreate( nil );
    CFStringRef uuidStr = CFUUIDCreateString( nil, uuid );
    NSString * result = (NSString *)CFBridgingRelease(CFStringCreateCopy( NULL, uuidStr));
    CFRelease(uuid);
    CFRelease(uuidStr);
    return result;
}
  1. IDFA—iOS6及之后
    广告标示符,它是由系统存储着的,但是若是用户完全重置系统或者还原广告标识,就会生成新值
    同时若用户限制此ID的使用,那ID就会取不到值,不过苹果默认是允许追踪此ID的值
- (NSString *)idfaStr {
    ASIdentifierManager *asIM = [[ASIdentifierManager alloc] init];
    if(asIM.advertisingTrackingEnabled){
        return [asIM.advertisingIdentifier UUIDString];
    } else{
        return nil;
    }
}
  1. IDFV—Vendor标示符,iOS6及之后
    来自同一个运营商的应用(com.XXX.APP这里的com.XXX一样)运行在同一个设备上,此ID的值是相同的,不同的运营商应用在同一个设备上的值不同,但是如果同一运营商的app全部删除,重新安装后的ID值会改变
- (NSString *)idfvStr {
    return [[UIDevice currentDevice].identifierForVendor UUIDString];
}

在现实项目中,唯一标识的处理一般是:

  1. 从Keychain中获取唯一标识
  2. 获取的到直接使用
  3. 获取不到就生成 UUID 或 IDFV 的值并存储在Keychain中

  1. cookie 存储,用 cookie 存一个唯一码, 然后记录操作。但如果禁用 cookie 或者 清理 cookie, 储存的数据就没了
  2. FingerPrint (画布指纹识别),有兴趣的可以查阅FingerprintJS框架,web指纹识别技术通过提取设备的各种特征,据说能达到94%的匿名浏览器区分度,但是通过测试发现同一配置的iPhone拿到的值是一样的,重复率还是挺高的

  1. 操作系统(原先有想过通过UA,不过想到其实wap跟app比对也就是UA中的操作系统具有意义,iPhone的升级率高,容易都是最新系统)
  2. 设备IP(IP可能会变化,特别在wifi进入蜂窝移动网络,而且同处于一个wifi下,IP相同的的也是很多呀)
  3. Date — 访问时间(量级较大的情况下,推广过程中,同一时段安装的重复率也不低)
  4. 设备屏幕尺寸(iOS设备屏幕尺寸种类不多)
    确定手机型号还可以wap获取GPU型号,分辨率,等等,app通过获取设备型号在对应表获取GPU型号等,不过苹果手机型号较少,在访问时间容差10分钟或者更短期间内,同一 wifi 下,量级大的 app 出现误判也是容易发生,所以现在这个应该算是最不得已的方式吧

这块目前的信息整理只能得到这样的结果,有更好方式的麻烦告诉偶哟


上一篇 下一篇

猜你喜欢

热点阅读