zoukankan      html  css  js  c++  java
  • iOS7时代我们用什么来追踪和识别用户?

    转自: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的值和之前不同。

     

  • 相关阅读:
    tornado用户验证
    tornado cookie安全性
    XSS攻击
    《R语言入门》语言及环境简单介绍
    angular学习(十五)——Provider
    Tomcat 8(九)解读Tomcat组件的生命周期(Lifecycle)
    Windows之Xmanager连接linux打开Oracle视图操作
    CreateEvent和SetEvent及WaitForSingleObject的使用方法
    利用Sharepoint 创建轻量型应用之基本功能配置!
    android开发源代码分析--多个activity调用多个jni库的方法
  • 原文地址:https://www.cnblogs.com/jz319/p/3770304.html
Copyright © 2011-2022 走看看