iOS 6 UDID - identifierForVendor对广告标识符有什么优势?

时间:2012-08-06 21:28:43

标签: ios privacy udid ios6

Apple正在更改其iOS6的隐私设置并弃用设备UUID(UDID)。根据WWDC演示文稿和文档,在UIDevice类中有两个UDID替换:

-identifierForVendor

  • 来自同一开发者的应用之间的ID相同。
  • 删除该团队ID的最后一个应用程序。
  • 备份。

-identifierForAdvertising

  • 该设备独有。
  • 适用于所有应用程序;用于广告 - iAd已从iOS 6及更高版本的UDID转换。
  • 使用“删除所有内容和设置”重置。
  • 备份。

在我看来,-identifierForVendor不如-identifierForAdvertising,因为它会在上次从供应商卸载应用时重置,并“擦除所有内容和设置”。

-identifierForVendor-identifierForAdvertising有什么好处?

10 个答案:

答案 0 :(得分:34)

重要提示

Apple刚刚发布了iOS 6.0,NDA已经解除。

对于先发制人地包含引用

的代码的开发人员
[[UIDevice currentDevice] identifierForAdvertising]

此方法已在iOS 6中包含 NOT 。如果您使用上述方法,您的应用(很可能)会崩溃并被拒绝!

相反,Apple创建了一个新类ASIdentifierManager,其中包含方法advertisingIdentifier。这是apple docs

答案 1 :(得分:22)

用户可以限制在手机上使用广告跟踪。请参阅设置>下的this article on the opt-out mechanism。一般>关于>广告。

新的ASIdentifierManager类有一个属性advertisingTrackingEnabled,根据用户是否有有限的广告跟踪,该属性会返回true或false。即使设备的广告标识符由advertisingIdentifier属性返回,无论选择退出,如果用户选择退出,您都不应该使用该标识符。

因此,IdentifForVendor的优势在于,无论用户选择加入或选择退出广告跟踪,您都可以随时访问并使用此ID用于手机。

答案 2 :(得分:8)

我怀疑如果您使用identifierForAdvertising用于与广告无关的任何内容(即,如果您将identifierForAdvertising发送到您自己的服务器,那么Apple会拒绝您的应用,即使您不是广告网络,或者如果您将同一请求中的identifierForAdvertising与可能识别个人的其他数据一起发送。

如果我的怀疑是正确的,identifierForVendor优于identifierForAdvertising的优势在于它不会让您的应用被拒绝。

答案 3 :(得分:5)

它们是两种不同的ID,用于两种不同的目的。 我认为identifierForVendor将用于执行需要链接到特定用户/设备的应用程序,例如提供推送通知和更新用户的应用程序数据服务器(如他们的分数或其他任何数据存储的内容)它们)。
identifierForAdvertising应用于定向广告等内容,还可用于检查特定广告系列的效果(检查特定广告导致的应用安装了哪些设备)。

答案 4 :(得分:3)

使用 VendorID 。 这是一篇非常有启发性的文章http://www.doubleencore.com/2013/04/unique-identifiers/

答案 5 :(得分:1)

根据iOS 6中设备的唯一标识符创建uniqueString:

#import <AdSupport/ASIdentifierManager.h>

NSString *uniqueString = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
NSLog(@"uniqueString: %@", uniqueString);

答案 6 :(得分:0)

这些API的设计非常糟糕,明确表示 - Apple不希望我们识别用户设备。

只需查看identifierForVendor说明。

如果用户删除了来自同一供应商的所有应用,则会被删除。 :( 这是不可靠的 - 如果发生这种情况,可以返回nil(文档建议“等待”一段时间。:(

他们没有使用明显的解决方案,它可以随时工作,不依赖于安装/删除 - 返回与团队ID连接的内部硬件设备ID的SHA-1(或任何其他哈希)。

答案 7 :(得分:0)

identifierForAdvertising在跟踪方面可能更优越,但可能会受到用户现在或将来的选择退出。另一方面,identifierForVendor不太可能是用户的主题。

答案 8 :(得分:0)

重要的是要知道,identifierForVendor的备份只能恢复到同一设备。如果备份恢复到差异设备,则清除标识符。

答案 9 :(得分:0)

用户可以随时在“设置”中更改identifierForAdvertising, 如果此供应商的设备上没有其他应用,则在重新安装应用后,identifierForVendor会发生更改。

以下是获取或持久,交叉安装设备标识符的替代方案和最佳解决方案:

说明:https://blog.onliquid.com/persistent-device-unique-identifier-ios-keychain/

代码:https://gist.github.com/miguelcma/e8f291e54b025815ca46