Cookie 横幅装上了,海外网站为什么还是不合规?

不少做出海网站的团队,已经知道了「要装 Cookie 同意横幅(Cookie Banner)」,并且确实装上了。但装完之后,他们常常会得到一个令人困惑的结果:横幅明明装了,合规扫描还是判高风险,甚至有客户被监管机构发了函。

问题到底出在哪?

这篇文章想把一个最容易踩、也最容易被忽略的点讲透:Cookie 横幅只是「同意收集」这一步,而真正的合规关键,往往在 Cookie 的「初始化时机」。

一、Cookie 横幅到底解决的是什么

先回到最基础的定义。在 GDPR 和 ePrivacy 指令(也就是大家常说的「Cookie 法」)的框架下,对 Cookie 的核心要求可以概括成一句话:

在设置任何非必要 Cookie(分析、广告、营销、社交媒体等)之前,必须先取得用户事先、明确的同意。

注意两个关键词:「之前」 和 「同意」。

Cookie 横幅(Banner)和同意管理平台(CMP),本质上做的是同一件事:在访客面前拦住他、问他一句「同不同意」,并把这个选择记录下来。 它解决的是「同意收集与留证」这个问题。

但这只是整个合规链条里的后半段。前半段还有一个更前置、也更容易漏的问题——你的网站,有没有在用户还没点头之前,就把这些非必要 Cookie 给种下去了?

二、最典型的违规:先种 Cookie,再问同意

这是出海网站里最常见的翻车场景。我们来看一个真实的时间线:

  1. 访客打开网站首页。
  2. 页面 <head> 里的一堆第三方脚本立刻开始加载——Google Analytics、Meta Pixel、热力图工具、在线客服、A/B 测试……
  3. 这些脚本一加载,就立刻往访客浏览器里写入了 _ga、_fbp、_clck 等一系列分析/广告 Cookie。
  4. 直到页面加载完、几秒之后,你的 Cookie 横幅才「姗姗来迟」地弹出来,问用户同不同意。

看到问题了吗?当用户还在看「同不同意」的时候,Cookie 早就已经种下去了。

这在监管机构眼里,就是典型的「先种后问」,是明确违规的。因为同意的本质是「事先」——你先取得同意,然后才能做。顺序一旦颠倒,这个同意就失去了意义。

三、为什么「横幅 + 先种 Cookie」不是合格方案

有的团队会觉得:反正我横幅也装了、Cookie 也解释了,用户点「接受」不就行了?

这里有一个根本性的理解误区:合规要的是「先同意、再种」的时序,而不是「事后补一个同意」。

可以从两个角度理解:

1. 从法律角度:GDPR 第 7 条第 1 款要求,当处理建立在同意的基础上时,控制者要能证明用户已经同意。如果 Cookie 在同意之前就写入了,那么「同意」就无法覆盖「之前已经发生的写入」——这段写入本身就是无合法基础的。

2. 从事实角度:很多非必要 Cookie 的「写入动作」,发生在横幅弹出之前、甚至发生在用户还没看到横幅的时候。等到用户点「接受」,那些 Cookie 早已存在。横幅此时能做的,只是「不再继续种」,却无法「抹掉已经种下的」。

这也是为什么 CNIL(法国数据保护机构)在 2023 年对 SHEIN 开出 1.5 亿欧元罚单时,点名的问题之一就包括:营销类 Cookie 在用户未同意时就被自动设置。

四、正确做法:默认拦住,同意之后才放行

那海外网站到底该怎么改?核心就一条:把「先同意、再种」变成技术上的强制约束,而不是一句口号。

具体来说,非必要 Cookie 和它们背后的脚本,在用户同意之前,应该处于「被拦住」的状态,只有用户点了「接受」之后才被放行、初始化。这通常要做三件事:

1. 静态第三方脚本:先「标记」,同意后再「释放」 — 页面里直接写死的第三方脚本(比如 Google Analytics、Meta Pixel),不应该一上来就执行。常见的做法是把它们标记成「待授权」状态,由同意管理脚本在用户同意后,再把这些脚本真正地「重建」并加载。

2. 动态注入的脚本:在运行时拦截 — 很多 SDK 不是写死在 HTML 里的,而是在页面运行过程中动态创建的。这类脚本需要靠前端运行时去拦截它的创建,识别出它属于哪一类 Cookie,再决定放不放行。

3. Cookie 写入本身:也要拦 — 除了「脚本加载」,还要拦「Cookie 写入」。有些脚本虽然加载了,但它真正违规的动作是调用 document.cookie 写入非必要 Cookie。这一层也要在同意之前拦截住。

顺带一提:服务端的 Set-Cookie 响应头也是一样的道理。如果服务器在用户未同意时就下发非必要 Cookie,前端再怎么拦都拦不住。所以真正彻底的整改,往往需要前后端一起配合。

五、一张表看清「横幅」和「初始化时机」的分工

| 环节 | 解决的问题 | 谁来负责 |
| --- | --- | --- |
| Cookie 横幅 | 收集并记录用户同意 | 同意管理平台 / CMP |
| Cookie 初始化时机 | 保证非必要 Cookie 在同意后才写入 | 网站本身 + 前端脚本 + 服务端 |
| Cookie 政策页 | 披露 Cookie 类型/用途/保存时长 | 网站 |
| 同意记录留证 | 证明「用户确实同意过」 | CMP(服务器端存储) |

很多团队只做了第一行(装横幅),漏了第二行(初始化时机),这就是「装了横幅还是不合规」的根本原因。

六、给出海团队的三条实操建议

  1. 把「先同意、再种」当成硬约束,而不是「我尽量注意」。能拦的脚本和 Cookie 都拦在同意之前。
  2. 每次接入新的第三方 SDK(分析、广告、客服、热力图、A/B 测试),都先问一句:它会不会在用户同意之前就种 Cookie?如果是,就要把它纳入「同意后放行」的名单。
  3. 保留服务器端的同意记录,别只存在浏览器 localStorage 里——GDPR 要求的是「能证明同意」,而能证明的前提是有可查、不可篡改的记录。

如果你正在做出海网站,与其自己拼一套「拦截 + 横幅 + 记录」的合规方案,不如直接用现成的 Cookie 同意管理工具:横幅、按类别授权、第三方脚本与 Cookie 写入的自动拦截、服务器端同意记录,一套就位。欢迎联系我们了解「利剑 Cookie 合规工具」。