渐进式网页应用(PWA)的 Cookie 同意:发布商指南

为何 PWA 是同意的边缘情形

渐进式网页应用的行为像原生应用 — 它安装到主屏幕、可离线运行、并积极缓存 — 但它仍由浏览器提供,因此 cookie 和网页存储规则依然适用。正是这种混合性质让发布商绊倒:与任何网站相同的 GDPR 同意义务,叠加在 service worker 和持久缓存之上,而这些可能在用户拒绝之后仍悄悄保留数据和脚本。

PWA 在哪里存储内容

在你能基于同意来管控存储之前,你需要知道 PWA 可以持久保存数据的每一处:

同意必须管辖所有这些,而不仅仅是 document.cookie

同意优先的 Service Worker 模式

核心原则:service worker 必须在缓存或执行任何非必要的第三方资源之前读取同意状态。一个干净的模式如下:

跳过最后这一步是最常见的 PWA 合规漏洞:横幅显示“已拒绝”,但已缓存的分析脚本在下次离线启动时仍从 service worker 触发。

离线同意用户体验

PWA 可以在无网络的情况下启动。你的同意横幅和用户已存储的选择都必须能离线工作 — 缓存 CMP 界面本身,绝不要仅仅因为同意服务器无法访问就默认为“已授予”。如果你无法确认先前的选择,就将用户视为未同意,并在你能确认之前只提供必要功能。

对广告收入的影响

对于由广告支持的 PWA,同意状态必须在请求时到达你的广告 SDK,无论在线还是离线。一个正确接入的 PWA 会像普通站点一样将 IAB TCF 字符串和 Consent Mode v2 信号传递给需求方合作伙伴;一个配置错误的则会缓存一个陈旧的“无同意”状态,并将你的 eCPM 无限期地压低到非个性化费率。请将同意的新鲜度视为一项收入指标。

FlexyConsent 如何提供帮助

FlexyConsent 将同意记录存储在 service worker 可读的存储中,发出可在离线启动后存活的 TCF 和 Consent Mode v2 信号,并暴露一个可与缓存清除挂接的撤回钩子 — 从而让你的 PWA 保持合规,并让你的广告栈在每个面上保持尽可能新鲜的同意信号。

关键要点

← 博客 阅读全部 →