iOS开发妙招:用广告识别符替代恶心的UDID

摘要:在最新的iOS6版本中,苹果使用全新的广告识别符来替代UDID。应用开发者更为关注的是软件更新带来的影响。在最新的iOS 6版本中,苹果将使用全新的广告识别符(Advertising Identifier)替代UDID。在面对iOS开发时,我们应该注意哪些事项呢?

iPhone5的发布已成为众人瞩目的焦点,在最新的iOS6版本中,苹果使用全新的广告识别符来替代UDID。应用开发者更为关注的是软件更新带来的影响,众所周知,以前iOS开发者如果想跟踪用户对广告的操作行为需要使用iOS设备的UDID,但是UDID会包含个人设备的隐私信息,因此会导致用户信息泄漏的问题。在最新的iOS 6版本中,苹果将使用全新的广告识别符(Advertising Identifier)替代UDID。

iOS开发妙招:用广告识别符替代恶心的UDID_第1张图片


苹果公司在设置中新增加了一个用户选项,在iOS 6 General > About > Advertising即可查看到

iOS 6新增了一个广告识别符,这是一个非永久性的、非私人的设备标识,利用其追踪方法提供更多控制广告的能力。

如果你选择了限制广告追踪,网络广告则不在为你收集信息。在不久的将来所有的网络广告将被要求使用广告识别符。用户可以读取此选项或者重置。

一直以来iOS 5 UDID饱受争议,如今在最新的iOS 6版本中,苹果将使用全新的广告识别符(Advertising Identifier)替代UDID。AIF类似UDID,第三方分析机构和广告公司可以通过广告识别符跟踪用户应用下载、应用转化等行为。不过,广告识别符并不是直接绑定用户手机,而是存在于用户的设置菜单。这意味着如果用户不愿被广告识别符进行数据跟踪,可以重置或者清零此前的数据。

广告识别符的那些事儿:

1.AdentifierForVendor(ADF开发商)

首先,UIDevice类中有一个新的属性,称之为identifierForVendor。字母数字字符串是唯一一个识别运营商的设备应用(以只读的方式)。来自同一个运营商的应用运行在同一个设备上,此属性的值是相同的;不同的运营商应用运行在同一个设备上值不同。

公司使用identifierForVendor可在同一个运营商中遵循用户协议运行多个应用,但是不允许开发者基于多个应用程序追踪用户的行为。

事实上,将广告识别符绑定到设备上,而不是绑定到一个特定的用户(比如Apple ID和iCloud账号)。在我看来,比生成一个自定义的UUID似乎更有意义并且用它来是可识别一个特定的用户。如果你在iCloud(使用key-value存储)存储这些UDID且同时使用iCloud标识所有的应用程序,即使是你没进入用户iCloud凭证,你可以轻易的识别用户访问所有应用以及所有的设备。

目前尚不清楚当设备被删除或重新恢复文件时identifierForVendor属性是否会改变。

2.AdvertisingIdentifier

如果说ADF是唯一替代UDID的API,那么网络公司也许会对苹果公司感到厌烦。因此,无论处于何种原因,苹果需要为广告客户商提供更多更好的解决方案。

这是一款新的AdSupport框架包含一个小类ASIdentifierManager,用以封装到另一个advertisingIdentifier。此外advertisingTrackingEnabled的属性会告诉你用户是否通过设置选择退出广告追踪。

我们一起来看下这些文档属性:

  • advertisingIdentifier:每个设备特有的字母字符,只用于广告服务。(只读)
  • 与UIDevice性质不同identifierForVendor,返回给供应商相同的值。这个标识可被改变——比如如果用户删除设备,那么你无需清理缓存。
  • advertisingTrackingEnabled:一个Boolean值,代表用户是否限制广告追踪。(只读)

在执行任何广告前请先检查该属性值,如果该值是NO,那么使用广告识别符仅用于以下目的:频率覆盖,事件转换,估算特定用户数量,安全性和欺诈识别以及进行调试。

问题是苹果无法满足这些需求,这是因为广告开发商所需要的数据需求定位在自身的服务器上,而苹果没有控制权。他们可以确保在应用审查期间通过网络发送到advertisingIdentifier包括用户选择停用设置,开发商往往会尊重用户的喜好。

事实上,当设备被删除时广告识别符发生改变,这个似乎听起来还不错,但是在实际应用中用户的隐私权并没有得到太多提升。

或者你可以经常重置并删除iPhone数据,就我个人而言我喜欢用户手动复位标识符(如同在Web浏览器中删除cookies )或者让OS系统定期其复位以免被网络广告长期跟踪。

我们并不知道苹果公司是否将API制定为目标,尤其是在限制其他流行应用的使用、设备追踪、网络应用程序分析。新的APIs似乎预示着苹果将不会容忍广告开发商将APIs用于其他目的,比如跨平台多个应用程序深度分析。


你可能感兴趣的:(ios,网络,网络应用,Cookies,iPhone,icloud)