苹果通过拒绝那些使用 IDFA 进行非广告目的的应用的请求而带来混乱。 尽管这是一个正当的意图,但通过应用拒绝的方式执行将会惩罚那些虽然使用正确,仍然站在解释错误一边的人。OpenIDFA 提供了一个引人注目的可替代方案,它不依赖于苹果自己的框架和指南,同时也有助于解决一般的隐私问题。
有些人永远不会吸取教训!一方面是你有使用 UDID 的人,很显然他们不应该这么做。因此,苹果废弃了 UDID,就这样。于是出现了 OpenUDID。然后在下一个 iOS 版本中,苹果正确地引入了一组标识符:VendorID 和 IDforAvertisers(IDFA 或 IFA)。但是,一些人明显不应该使用 IDFA,结果却被告知他们的应用被拒绝,就像这样。有些人永远不会吸取教训!但是谁该为此负责呢?
就像工业设计一样,API 的形式应该符合其功能。
OpenIDFA 是 IDFA 的替代方案,力求阴阳相济
一如既往,我们无法确定。苹果通过拒绝和指南的方式进行沟通……因此一切都取决于解释。无论如何,IDFA据称符合其初始意图:广告转换跟踪。然而,高级广告技术需要提前开始跟踪,因此即使当时没有显示广告,也需要实际的IDFA。苹果会因此拒绝吗?最近的解释似乎表明情况就是这样。所以,IDFA再次成为一个敏感话题。我们不能依赖它,因为它看起来像是一个移动的靶子。此外,需要有人解释苹果如何打算实施“限制跟踪”选项……如果无法系统公正地实施,为什么还要设置这个选项?
这与我们对待OpenUDID的方式相似,其目的是提供一个替代方案(或补充解决方案),以应对混乱中的IDFA,并且至少在一段时间内为那些处理问题的人带来平静。希望同时能在新的和激进的方式下实现阴阳平衡。
这有点像柔术,需要大量的常识和充分的爱。OpenIDFA结合了抗碰撞指纹、内置自我过期属性的加密散列,同时在数天内跨应用持续。最重要的是,OpenIDFA具有内置的明确属性,不受解释或不断变化的指导方针的影响;形式服从功能。
IDFA | OpenIDFA | |
---|---|---|
唯一性 | 通常唯一 | 准唯一性 >100%-10^-5 |
过期 | 用户明确重置(很少用,但对开发者/广告商来说是不可预测的) | 隐式重置,不确定性但相对罕见 |
跟踪限制 | 用户切换/开发者驱动(实施未知) | 长期跟踪不可能(最多3天) |
框架依赖性 | AdSupport框架 | 无特定框架 |
适用范围 | 频率限制,转换事件 | 频率限制,转换事件,多功能跨应用事件归因(例如,用于重新参与或重新定位) |
不适合……(请使用vendorID代替) | 长期跟踪,LTV(至少不单独使用),分析,估计唯一用户数量,安全和欺诈检测,以及调试——基本上不适合非广告用途 | 长期跟踪,LTV(至少不单独使用),分析,估计唯一用户数量,安全和欺诈检测,以及调试——基本上不适合非广告用途 |
可持续性 | 未知。可能会被废弃、演变、解释…… | 谁会知道?没有什么能永恒不变,但至少,苹果没有编写这个代码…… |
为了给阴阳留下空间,必须让某些东西做出让步。因此,OpenIDFA并不是所有用例的即插即用替代品,尽管它可能就是这样(请参阅下面的低级FAQ)!
您自己决定。如果苹果对您使用IDFA没有异议,那么为什么改变?反之,苹果如果改变主意,什么阻止您同时记录OpenIDFA?补充或替代。由您决定。如果您使用第三方归因解决方案,与您的提供商联系,并邀请他们考虑OpenIDFA,而不是他们自己的专有变体,这将有效地让他们锁定您。此外,归因解决方案可能非常昂贵,并且他们倾向于偏好专有解决方案(这些方案会重建孤岛并阻止互操作性)。
指纹技术通常旨在重现一个持久存在的唯一设备或用户标识,从而忽视隐私问题;同时,指纹标识通常并不那么独特(80%-90%范围),因此无法准确衡量转换率。OpenIDFA使用高级指纹技术并结合其他属性,以实现最大的唯一性(99.99%+),同时内置过期功能,以防止数据囤积和长期跟踪(参考阴阳相生)。
vendorID对于广告无效。由于ID将被保证是不同的,因此在发布者应用和广告应用(通常是两个不同的供应商)之间通过vendorID进行归因是不可能的。另一方面,vendorID非常适合内部供应商分析、A/B测试、欺诈检测等。
首先是OpenUDID,现在是OpenIDFA。看起来很合适,不是吗?OpenIDFA作为静态库提供,一定程度上保护了限制跟踪的固有属性;因此,它不是开源的。然而,OpenIDFA仍然对所有用户开放,以分散的方式免费使用,就像OpenUDID一样。OpenIDFA是互操作性的,不属于任何供应商。它是公有的。实际上,它是在Creative Commons许可(署名BY + 禁止衍生ND)下分发的。
现在,关于源代码:这是一场信仰的行动!虽然代码看起来很简单。本质在于接受跟踪令牌必须尽快过期(而不是像当前IDFA系统那样由用户明确重置或实施限制)。一旦确定了这个基线,代码就会根据功能运行,反之亦然。
如上所述,代码锁定在该库中。放手逆向工程吧,实际上你可能会被欺骗!然而,代码并不打算保持神秘。如果您想被考虑地进行初步同行评审,请在此注册。
OpenIDFA将免费提供给用户,可用日期为2014年2月7日。
由Appsfire带来的OpenIDFA,是由Appsfire的联合创始人兼CTO Yann Lechelle(也是2011年OpenUDID的作者)在几个不眠之夜构思出来的。与我们的原生广告技术一样,OpenIDFA力求提高最佳实践的标杆。如果您有任何问题,请直接在Github上提问!
苹果的方式
// add the AdSupport framework
#import <AdSupport/AdSupport.h>
NSString* idfa = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
高端路线
// add the OpenIDFA.a static library
#import "OpenIDFA.h"
NSString* OpenIDFA = [OpenIDFA sameDayOpenIDFA];
联邦快递不参与其中。这意味着OpenIDFA返回的典型情况下持续会超过同一天发生的两个会话。等待24小时,请求[OpenIDFA sameDayOpenIDFA],你会得到一个不同的OpenIDFA。
这是有限制的,但想想看。这是一个良好且常见的用例。用户点击广告,并在大多数情况下,在10分钟内强制行动,在最好的情况下,在几小时内下载并启动应用。"sameDayIDFA"解决了这个同题。
(我们正在努力为您带来关于此同日转换概念的统计数据:通常超过75%)
没问题,有一种方法可以这样做
NSArray* OpenIDFAs = [OpenIDFA threeDaysOpenIDFAArray];
这里有点比直接替换更复杂。基本来说,如果要让您的跟踪跨越多天,您需要使用3个不同OpenIDFA注册3个事件,今天有效的一个(数组索引0),明天有效的一个(数组索引1),以及三天后有效的一个(数组索引2)。在 reconciliation侧面,这通常发生在3天内,您要做的就是通过“sameDayIDFA”找到匹配;如果找到了,这意味着转换在3天内有效。
您不需要。这就足够了。记得阴阳。顺便问一下,您在快节奏的移动广告行业认识有人在考虑3天以上的跟踪吗?想得对。
现在您可以安心了。您可以每天清除您的数据库(记住,这些OpenIDFA令牌每天只有效一次)。对于隐私侵犯者来说是个好日子……您仅仅保存了一千兆存储空间!
为何我们通过博客、应用被拒绝等情况来了解iOS API使用的重大变革?如果在这些单方面的决定之前考虑生态系统的需求将极为有用。再次强调,我们热爱您的i设备,我们乐于帮助您卖出更多的设备……但请考虑这一点:互惠互利将走得更远……