Safari ITP2.1 – GA哭了,Cookie和网站分析的大灾难

苹果公司即将在Safari 12.1和iOS 12.2的Beta版中应用ITP 2.1(Intelligent Tracking Prevention)。该版本或将在本月发布。在以往的文章中,极诣曾经系统地解说过该策略对广告业的影响。您可以回顾下面的文章:
- 《苹果是怎么把整个数字广告业搞残的?》
- 《苹果ITP,第三方cookie,gtag.js到底是怎么回事?》
- 《ITP 2.0和Google Parallel Tracking—这次Cookie真死了》
到ITP2.0为止,第三方Cookie可以说真是凉凉的了。您可能要问,这就The End了吗?

当然不是咯。搞完第三方Cookie可以搞第一方Cookie嘛!这不您瞧,ITP2.1就来补刀了。
这次,不单是广告界,整个网站分析界都懵逼了
从ITP2.1开始,所有的Cookie的保质期都只有7天。划一下重点,再说一遍:
所有的Cookie*在Safari浏览器都活不过7天!
(*服务器端Cookie除外,也就是通过HTTP Response的Set-Cookie设置的Cookie不受此限制。单次会话中使用的Cookie也不影响。剩下的用document.cookie写的Cookie全部中招!)

如果您没看懂的话,我们换一种说法,您现在用的Google Analytics就是用document.cookie来写的_ga的Cookie。在不久的未来,您的访客两次访问之间超过7天的情况下,GA将无法识别他们是同一人。
那么为什么又要一刀切搞个ITP2.1出来呢?
一切为了将广告跟踪赶尽杀绝
焚琴煮鹤小能手,苹果(Webkit)说得非常坦荡荡:“Cross-site trackers have started using first-party sites’ own cookie jars”。因为你们这些坏人已经开始用第一方Cookie了,所以我们也不管了。要是你们躲进乔帮主的坟头里,我们也要把棺材板翻起来。
另外,原来版本的ITP也出现了许多问题。比如你在访问A站的时候登出了W站(假定是新浪微博),但是B站却不知道,仍然保留了登录状态。
再有,HTTP头中的Cookie字段的长度是有限制的。你们这样玩第一方数据会玩坏的。你们玩那么多Cookie会让网速变慢啊云云。
当然还有就是安全方面的各种原因了,怕你们在Cookie中的敏感信息被盗取啊。
别说你GA被误伤,难道你不是世界上最大的广告公司吗?
接下来往哪里逃?
很显然,如果拿不出应对的方法,什么GA、AA、百度统计接下去就要歇菜了。目前看来只有两种方法可以解决。
其一,用localStorage来存储浏览器识别信息,不再使用Cookie了。它的问题是不能够跨各个子域名。a.example.com的信息无法在example.com读取。注意即便是localStorage也活不过30天。John Wilander解释说,7天的时侯Cookie过期但是还在,30天时会被删除。

其二,用HTTP Response来设置Cookie,这个只能是第一方Cookie了。这样可以活过7天,最多两年。但是这样做需要在服务器端进行设置,需要求后端老爷们了,因为前端小弟们搞不定。不过这样做的结果一定是最终玉石俱焚,说不定就在ITP2.2被掐死。难道你忘了在ITP2.0起,只要被判断为ClickTracker,连Cookie都不让写吗?
总结一下ITP2.1
- JavaScript(document.cookie)写入的Cookie生存期缩减到7天。
- 弹出询问窗口功能下线。
- 用localStorage可以续命到30天。
- HTTP的Set-Cookie为推荐做法,但很难说是长久之计。
当然,你也可以像极诣那样,不鸟Safari,假设所有人都在用Chrome。谁让他们用Safari呢,广告又不会少看,只会多看……因为广告主最喜欢给有钱人看广告了(笑)