关于 cookieless-alternatives
此技能梳理第三方 Cookie 弃用后的广告测量与定向方案,面向营销、广告和分析从业者。内容比较 Privacy Sandbox API 与无 Cookie 服务端分析的隐私属性、技术要求和生产就绪情况。
主要功能
- 01比较 Topics、归因报告和 Protected Audiences API
- 02说明 Shared Storage 的受限输出方式
- 03梳理无 Cookie 服务端分析方案
- 04比较隐私、浏览器支持与生产就绪度
适用场景
- 01评估广告定向的替代方案
- 02设计无跨站追踪的转化测量
- 03为网站分析选择无 Cookie 方案
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mukul975/ privacy-data-protection-skills --skill cookieless-alternatives安装后在 Claude Code 中输入/cookieless-alternatives确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/template.mdreferences/standards.mdworkflows.mdscripts/process.py详细介绍
无 Cookie 跟踪替代方案
概述
浏览器逐步弃用第三方 Cookie,加上基于用户同意的第一方 Cookie 限制日益增多,推动广告和分析行业转向替代性的衡量与定向方式。Google 于 2019 年启动并在 2024—2026 年间不断迭代开发的 Privacy Sandbox 计划,提供了一套浏览器 API,旨在以保护隐私的替代方案取代跨站跟踪功能。除了基于浏览器的解决方案,服务端分析和概率测量方法也提供了其他途径。本技能评估每种替代方案的隐私属性、技术要求以及投入生产使用的成熟度。
Privacy Sandbox API
Topics API
**用途:**在不进行跨站跟踪的情况下实现基于兴趣的广告投放。
工作原理:
- Chrome 在用户设备本地观察其浏览活动(顶级页面访问)
- 每周,浏览器会根据约 470 个与广告相关的类别构成的分类体系,将访问过的网站归类到相应主题
- 当广告技术公司在发布商的网站上调用 Topics API 时,浏览器会返回最多 3 个主题(分别来自最近 3 周中的每一周)
- 主题选择会加入 5% 的随机噪声(返回随机主题,而非真实主题)
- 调用方只能收到它也曾观察到用户感兴趣的主题(即调用方曾出现的其他网站上的相关主题)
Topics 分类体系示例:
| 主题 ID | 类别 | 级别 |
|---|---|---|
| 1 | 艺术与娱乐 | 1 |
| 57 | 艺术与娱乐 / 电影 | 2 |
| 86 | 商业与工业 / 电子商务 | 2 |
| 243 | 购物 / 服饰 | 2 |
| 332 | 体育 / 团队运动 / 美式足球 | 3 |
Pinnacle E-Commerce Ltd 的实现方式:
// Check if Topics API is available
if ('browsingTopics' in document) {
// Observe: register this page visit for topic classification
// The fetch call with {browsingTopics: true} both observes and retrieves
const response = await fetch('https://ads.pinnacle-ecommerce.com/topics', {
browsingTopics: true
});
const topics = await response.json();
// topics = [{ topic: 86, version: "chrome.2:2:1", configVersion: "chrome.2", taxonomyVersion: "2", modelVersion: "1" }]
}
隐私属性:
- 不共享跨站标识符
- 主题粒度较粗(470 个类别,而非细分兴趣)
- 5% 的噪声可防止确定性分析用户画像
- 用户可以在 Chrome 设置中查看并清除自己的主题
- 网站可以通过
Permissions-Policy: browsing-topics=()选择退出
局限性:
- 仅支持 Chrome(不支持 Safari、Firefox)
- 与基于 Cookie 的受众相比,定向粒度较粗
- 普及程度取决于广告技术生态系统的支持
Attribution Reporting API
**用途:**在不进行跨站跟踪的情况下衡量广告转化。
两种模式:
| 模式 | 报告类型 | 数据 | 噪声 | 延迟 |
|---|---|---|---|---|
| 事件级 | 每次转化 | 来源:64 位 ID;触发条件:点击为 3 位(8 个值),浏览为 1 位 | 是(对触发数据加入噪声) | 2 天(点击),1 天(浏览) |
| 可聚合 | 汇总报告 | 来源与触发条件合并为直方图分桶 | 加性 Laplace 噪声 | 10-60 分钟(批量处理) |
事件级归因流程:
1. User clicks ad on publisher.com
→ Browser stores: source_event_id=12345, destination=pinnacle-ecommerce.com
2. User converts on pinnacle-ecommerce.com
→ Browser matches: trigger_data=2 (e.g., "purchase")
3. After 2-day delay, browser sends report:
{
"source_event_id": "12345",
"trigger_data": "2",
"source_type": "navigation",
"randomized_trigger_rate": 0.0024
}
→ Sent to reporting origin (ads.pinnacle-ecommerce.com)
可聚合归因流程:
1. Ad impression/click registered with source keys
2. Conversion triggers aggregation keys
3. Browser generates encrypted aggregatable report
4. Reports sent to aggregation service (Trusted Execution Environment)
5. Aggregation service applies differential privacy noise
6. Summary report returned: { "campaign_A_purchases": 1247 ± 23 }
Pinnacle E-Commerce Ltd 的实现方式:
来源注册(广告点击时):
<a href="https://www.pinnacle-ecommerce.com/product/widget-pro"
attributionsrc="https://ads.pinnacle-ecommerce.com/register-source">
Buy Widget Pro
</a>
来源注册响应标头:
Attribution-Reporting-Register-Source: {
"destination": "https://www.pinnacle-ecommerce.com",
"source_event_id": "12345678",
"expiry": "604800",
"aggregation_keys": {
"campaignCounts": "0x159",
"geoValue": "0x5"
}
}
触发条件注册(转化时):
<img src="https://ads.pinnacle-ecommerce.com/register-trigger" attributionsrc>
触发条件注册响应标头:
Attribution-Reporting-Register-Trigger: {
"event_trigger_data": [
{ "trigger_data": "2", "priority": "100" }
],
"aggregatable_trigger_data": [
{ "key_piece": "0x400", "source_keys": ["campaignCounts"] }
],
"aggregatable_values": { "campaignCounts": 32768 }
}
受保护受众 API(前身为 FLEDGE)
目的: 在不使用第三方 Cookie 的情况下进行再营销和自定义受众定向。
工作原理:
- 广告主通过其网站上的 JavaScript 将用户加入兴趣组
- 兴趣组数据(广告创意 URL、竞价逻辑)存储在浏览器本地
- 发布商的广告位开始竞价时,浏览器会在设备上执行竞价
- 中标广告会在隔离框架中呈现(与发布商页面隔离)
- 不会有跨站数据离开浏览器;竞价在本地完成
加入兴趣组(在 pinnacle-ecommerce.com 上):
navigator.joinAdInterestGroup({
name: "widget-pro-viewers",
owner: "https://ads.pinnacle-ecommerce.com",
biddingLogicUrl: "https://ads.pinnacle-ecommerce.com/bidding.js",
ads: [
{
renderUrl: "https://ads.pinnacle-ecommerce.com/ads/widget-pro-retarget.html",
metadata: { "product": "widget-pro", "discount": "10%" }
}
],
userBiddingSignals: { "viewed_product": "widget-pro", "visit_count": 3 },
trustedBiddingSignalsUrl: "https://ads.pinnacle-ecommerce.com/signals",
trustedBiddingSignalsKeys: ["widget-pro-bid"],
dailyUpdateUrl: "https://ads.pinnacle-ecommerce.com/update-ig",
lifetimeMs: 2592000000 // 30 days
}, 2592000000);
隐私特性:
- 用户个人资料数据不会离开设备
- 竞价在浏览器中运行,而非广告服务器上
- 隔离框架可防止向发布商泄露信息
- 广告创意必须满足 K-匿名性要求(必须向足够多的用户展示)
- 用户可以在 Chrome 设置中查看并退出兴趣组
共享存储 API
目的: 通过受限的输出门控实现跨站数据访问。
允许将多个网站的数据写入同一共享存储分区,但读取仅限于保护隐私的输出门控:
- 选择 URL(从预定义列表中选择)
- 私有聚合(为聚合直方图做出贡献)
- 隔离框架(呈现内容而不泄露数据)
Pinnacle E-Commerce Ltd 的使用场景: 跨网站频次控制——在不使用跨站 Cookie 的情况下统计用户看过某则广告的次数:
// On publisher site, inside shared storage worklet
class FrequencyCapOperation {
async run(data) {
const count = await this.sharedStorage.get('pinnacle-widget-pro-views') || 0;
if (count >= 3) {
// User has seen this ad 3 times — show fallback
return 1; // Index of fallback URL
}
await this.sharedStorage.set('pinnacle-widget-pro-views', count + 1);
return 0; // Index of ad URL
}
}
服务端分析替代方案
无 Cookie 的服务端测量
| 方案 | Cookie | PII 收集 | 托管方式 | 是否需要同意 |
|---|---|---|---|---|
| 服务器日志分析 | 无 | IP 地址(匿名化) | 可自托管 | 否(运营所需) |
| Plausible Analytics | 无 | 无 PII | 欧盟云服务或可自托管 | 视司法管辖区而定 |
| Fathom Analytics | 无 | 无 PII | 加拿大/欧盟托管 | 视司法管辖区而定 |
| Umami | 无(可选) | 无 PII | 可自托管 | 视司法管辖区而定 |
| Matomo(无 Cookie 模式) | 无 | 指纹哈希(仅限会话) | 可自托管 | 请咨询当地数据保护机构 |
Pinnacle E-Commerce Ltd 的 Plausible Analytics 配置
<script defer data-domain="pinnacle-ecommerce.com"
src="https://plausible.io/js/script.js"></script>
Plausible 收集的内容(每次页面浏览):
- 页面 URL(仅路径)
- 来源页(仅域名)
- 浏览器(从 User-Agent 推导)
- 操作系统
- 设备类型(桌面/手机/平板电脑)
- 国家/地区(根据 IP 获取,IP 随即丢弃)
Plausible 不收集的内容:
- Cookie
- 持久标识符
- IP 地址(哈希后用于每日独立用户计数,哈希每天轮换)
- 跨会话跟踪
- 个人数据
对比矩阵
| 能力 | 第三方 Cookie | Topics API | Attribution Reporting | 受保护受众 | 服务端分析 |
|---|---|---|---|---|---|
| 基于兴趣的定向 | 完整粒度 | 约 470 个主题 | 否 | 仅再定向 | 否 |
| 转化衡量 | 确定性 | 否 | 是(带噪声/延迟) | 有限 | 仅限服务端 |
| 跨站跟踪 | 是 | 否 | 否 | 否 | 否 |
| 支持 Safari | 否(已屏蔽) | 否 | 否 | 否 | 是 |
| 支持 Firefox | 否(已屏蔽) | 否 | 否 | 否 | 是 |
| 需要同意 | 是 | 仍在演进 | 仍在演进 | 仍在演进 | 取决于配置 |
| 可用于生产环境 | 旧方案 | 是(Chrome) | 是(Chrome) | 是(Chrome) | 是 |
关键法律和技术参考资料
- Google Privacy Sandbox 文档 — Topics API、Attribution Reporting、Protected Audiences 规范
- W3C Private Advertising Technology Community Group — 隐私保护广告标准的制定
- 《ePrivacy Directive》2002/58/EC 第 5(3) 条 — 同意要求的法律依据;部分替代方案可能适用豁免
- 《GDPR》第 47 条序言 — 分析活动的合法利益考量
- 英国 ICO《分析 Cookie 指南》(2019 年发布,2023 年更新) — 根据 PECR,分析 Cookie 需要取得同意
- CNIL《Topics API 分析》(2023 年) — 法国数据保护机构对 Privacy Sandbox 提案的评估
- CMA(英国竞争与市场管理局)Privacy Sandbox 承诺 — Google 对 Privacy Sandbox 开发所作的承诺
- IAB Tech Lab Privacy Sandbox 工作组 — 行业对 Privacy Sandbox API 的评估