老王早上搜索一下耐克鞋,很快便发现不管是抖音、知乎还是微信朋友圈,铺天盖地的都出现了运动鞋的广告。小刘发现自己的洗发水快用完了,正打算买洗发水,就发现京东的洗发水广告已经推送到了手机上。
为什么广告商总能对广告进行精准投放呢?
这里就需要「大数据」来分析。我们在网上的每一个行为操作、每个浏览记录、关注内容、使用的App等信息都被记录,并根据不同的行为权重对用户进行画像,当搜集到足够多的数据后,便可以描绘出一名用户的画像特征,比如ta的性别、年龄、性取向、婚否、文化水平、兴趣爱好、在哪住、财产状况等等等等。最后再将用户进行划分归类,以此达到预测和精准推送的目的。
这个时候就会有第二个问题。比如我在淘宝注册的账号是123456,在抖音注册的账号是654321,在知乎注册的账号是142536,商家又是如何能在不同的软件或行为操作中,精准定位出哪个是我呢?
这里就需要对每一名用户进行一个标记,俗称的设备唯一标识。也就是说虽然用户会在不同的软件注册不同的账号,但对于大多数用户来说,手机设备是不常更换的。只要能对手机进行标记,Alibaba就不光能知道你在淘宝系的数据行为,还能知道你的社交行为、游戏行为、娱乐行为等等。当然对于其他公司也是同理。
那么,广告商是如何对设备进行唯一标识的呢?
我们把Android 和iOS 分开来说。 首先Android。
一般情况下,Android 设备 常用 的有三种设备标识:
1.Device ID:可以用系统提供的TelephonyManager 服务来获取,具有唯一性。其中包括IMEI和MEID/ESN。
2.IMEI:国际移动设备识别码,也就是我们通常所说的手机串号、手机序列号。用于在移动电话网络中识别每一部独立的手机等移动通信设备,相当于移动电话的身份证。标记在主板上,除非更换手机(主板),否则无法变更。Android 6.0以上系统需要用户授予read_phone_state 权限,(理论上)如果用户拒绝就无法获得。
3.mac Address:局域网地址,包含了wifi mac 和蓝牙mac,用来确认网上设备位置的地址。可以获取到用户的位置信息。
其实从Android 6.0开始,Google 就已经注意到用户隐私被滥用的行为,并且加入对应的权限管理系统,来帮助用户管理个人隐私。所以我们经常能够看到一些刚安装完的App,在启动的时候会申请获取一些权限。用户可以选择允许或者拒绝。
但是!但是!但是!Google 在这里面又耍了个小心眼,当用户拒绝掉某个权限时,系统会告诉App,用户拒绝了你。对于规范一些的App,拒绝就拒绝了。但是对于某些流氓App,就会告诉你:拒绝掉你就别用了!非常遗憾的是,我们一些国民级应用,仰仗着自己近乎垄断的地位,就这么做。
这里插一句,Google 完全可以当用户拒绝后返回一串无用数据。但我个人认为,Google 不这么做并不是因为不知情或者存在技术障碍,也许故意而为之。毕竟Google 自己就是全球最大的广告公司。
Android 还有一个问题,当用户授予App 电话权限(TelephonyManager)的时候,不光会允许App 记录IMEI 等硬件唯一信息,还会 允许记录用户的手机号 。也就是说,即使用户过几年换一部手机, 只要不换号,仍然无法摆脱广告商的追踪。
有些动手能力比较强的用户或许会通过appops、root 等方法来进行限制。先不说绝大多数的用户都不会root。由于Android 开放的特性,appops 等工具可以尽量阻止App 访问文件、通讯录、位置等等。但仍然无法一些避免流氓厂商对用户设备进行标记。
再来说iOS。
首先说下iOS设备的几种设备标识:
1.IMEI:国际移动设备识别码,iOS 5 之后被禁止获取。
2.IDFA:广告标识符,于iOS 6 时面世,为了满足广告商的追踪需求,同时保证用户设备不被APP追踪的折中方案。同一设备上的所有App获得的IDFA一致。用户可以在设置里重置或关闭IDFA,重置手机也会重置IDFA。是目前iOS设备上最主要的标记方式。
3.IDFV:应用开发商标识符,可以用于分析用户在应用内的行为等。同一设备上不同开发商的App获得的IDFV不一样。卸载同一开发商的所有App后会重置。
4.mac地址:包括WiFi mac地址和蓝牙mac地址。iOS 7之后被禁止获取。
5.UDID:与手机绑定,用来标示设备的唯一性 。iOS 6 之后被禁止获取。
6.openUDID:第三方的用户标记方式,还原手机可以变更,iOS 7后被禁止获取。
Apple 一直是一家宣称非常注重用户隐私的公司。因此,Apple 明确表示禁止跟踪用户。
其实在iOS 5及之前的时候,Apple 是允许厂商自由获取与手机绑定的UDID和IMEI识别码的。从iOS 6开始,出于对用户的隐私保护,苹果开始禁止App获取IMEI。但考虑到广告商希望监测广告投放效果,因此变发明了一套与硬件完全无关的标识符,提供给广告商进行广告追踪。也就是我们说的IDFA(广告标识符)。同时,Apple 允许用户在设置中重置新的IDFA,避免被长期跟踪。
因为IDFA并不是唯一的(不同App获取的IDFA不一样,且用户可以自由重置),所以一经推出便遭到了业内的抵制,并想办法去获取UDID(与硬件绑定,可标识设备唯一性)。引起Apple大怒,于是的2013年5月1号开始,Apple拒绝采集UDID的App上架App Store。当然机智的从业者们又想出了其他办法,就是通过获取mac地址或采用开源的openUDID来继续追踪用户。
时间又过了半年,2013年9月iOS 7发布,Apple完全禁止获取mac和openUDID。受限于iOS 的封闭性,不符合规范的App被禁止上架,所以IDFA(广告标识符)虽然可以被用户重置,但也成为广告商最通用标记用户的方式(况且很多用户也不会去重置IDFA)。
2016年6月,苹果发布了iOS 10,再一次引起广告业震动。这次,苹果加入了「限制广告追踪」的选项。在iOS 10之前的版本,用户可以不断重置IDFA(广告标识符),但无法彻底关闭。从iOS 10开始,只要用户打开了这个功能,App只能获取到一串无意义的0。
当然,根据国外第三方机构的统计,中国大约仅有10%的用户开启了这个功能。而某国内广告公司的数据,国内IDFA反馈为0的用户大约仅占1%。可见绝大多数用户好像并没有意识到这个功能。
既然用户可以在设置中重置IDFA,那有没有什么办法能够在用户重置后仍然继续追踪呢?
流氓开发者们当然有应对办法。Apple提供了一个功能:所有的App登录信息都会保存在keychain中,删除App后保存在keychain的信息也不会被删除。这个功能原本是为了方面开发者提供基于设备的免费试用功能等读取之前的账户登录信息的。但是被一些流氓开发者滥用,他们将IDFA/IDFV信息存储于keychain当中,来保证即使用户重置IDFA或卸载重装App后,仍然可以继续追踪用户。
当然Apple也意识到了keychain被滥用的情况,于是在iOS10和iOS11的测试版本中,封堵了这个漏洞(如果 App 被删除,之前存储于keychain 中的数据也会一同被清除。),但遇到开发者强烈反对(因为很多正常功能也依赖keychain)。所以正式版中都回滚了这个功能。
但仍然为了防止keychain被滥用,Apple 在iOS 11上推出了全新的「设备检查(DeviceCheck)」功能,允许开发者通过其的服务器与 Apple 服务器通讯,并为单个设备设置两个 bit 的数据。来追踪用户比如是否已经领取奖励这类信息。
比如,某用户手机在某一个月里免费试使用了一应用软件,这一期间内,DeviceCheck将手机状态记录为「状态 A 」。试用期之后,用户停止该免费软件的使用,DeviceCheck会将此时的设备情况记录为「状态 B 」。 用户对 iPhone 进行软件删除或初始化操作后,使用DeviceCheck程序会重新将手机转换至「状态 B 」,从而避免手机陷入再次试用软件的麻烦中。
目前DeviceCheck功能并未强制使用,开发者仍然可以可以通过IDFA+keychain的方法对用户进行追踪。不过可以预见,未来这个漏洞会被封堵。
当然了,追踪用户的方法有很多,设备识别只是其中的一种。其他的比如像第三方设备指纹(友盟、TalkingData)、账号登陆体系(通过微信、微博、Google等账号登陆)、运营商和网络端(某些免费WiFi)等等。但单就设备与操作系统而言, 对于普通用户来说,iOS确实比Android更能保护用户隐私。
最后也有个好消息,目前制定【个人信息保护法】已被列入十三届全国人大常委会立法规划,由委员长会议提请审议,法制工作委员会牵头起草。并有可能设立专门机构对违反【保护法】的行为进行查处。