外观
本教程将指导你如何在 Cloudflare Web Tag Management (原 Zaraz) 中安装 Microsoft Clarity,并配置合规的 Consent (用户同意) 管理。
为什么选择 Cloudflare Web Tag Management (而非直接安装代码)?
相比直接将 <script> 代码粘贴到网站 HTML 中,使用 Cloudflare Web Tag Management 有以下核心优势:
极速性能 (Off-loading):
- 传统方式:每个第三方脚本(Clarity, GA 等)都会在用户浏览器中下载并执行,拖慢页面加载速度,阻塞主线程。
- Cloudflare 方式:脚本在 Cloudflare 的边缘服务器上运行。浏览器只需要与 Cloudflare 通信,极大地减少了用户端的 JavaScript 执行量,显著提升 Core Web Vitals 分数。
无需重新部署:
- 一旦配置好,后续添加 Google Analytics、Pixel 或其他工具,只需在 Cloudflare 后台操作,无需修改网站代码或重新发布版本。
内置隐私合规 (GDPR/CCPA):
- 它提供了一套完整的 Consent Management Platform (CMP)。你可以轻松控制“只有用户同意后,才加载 Clarity”,而无需编写复杂的 JavaScript 拦截逻辑。
单一数据源:
- 所有工具共用同一个触发器和数据层,数据更准确,管理更统一。
第一步:准备工作
- 注册/登录 Microsoft Clarity。
- 创建项目,获取 Project ID (在 Settings -> Overview 中)。
- 确保你的域名已托管在 Cloudflare。
第二步:配置 Consent (隐私同意)
为了符合 GDPR/CCPA,我们需要先设置 Consent Purpose。
- 登录 Cloudflare Dashboard,进入你的域名。
- 左侧菜单选择 Web Tag Management (原 Zaraz) -> Consent。
- 点击 Add Purpose:
- Name:
Analytics & Improvements(或自定义名称) - Description:
Help us improve the website by allowing Microsoft Clarity to analyze usage patterns. - 点击 Save。
- Name:
(可选) 自定义弹窗样式: 在 Consent 页面下方找到 Custom CSS,粘贴以下代码以美化弹窗:
css
.cf_modal {
border-radius: 12px !important;
box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1) !important;
font-family: system-ui, sans-serif !important;
}
.cf_modal .button_container button.accept_all {
background-color: #0052D4 !important; /* 替换为你品牌的主色 */
color: white !important;
border-radius: 9999px !important;
}第三步:添加 Microsoft Clarity 工具
由于目前官方库中 Clarity 模板可能不可用或过时,推荐使用 Custom HTML 方式,最灵活且稳定。
- 进入 Web Tag Management -> Tools -> Add new tool。
- 选择 Custom HTML,点击 Continue。
- 命名为
Microsoft Clarity,点击 Save。 - 点击刚创建的工具进入配置页面:
- Settings -> Add Field (如果需要,否则直接在代码框操作)。
- 点击 Edit Code (或类似的代码输入区域),粘贴以下脚本:
html
<script type="text/javascript">
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "YOUR_PROJECT_ID_HERE");
</script>⚠️ 注意:请将 YOUR_PROJECT_ID_HERE 替换为第一步获取的 Project ID。
配置触发器 (Triggers):
- 确保 Firing Triggers 包含
Pageview(默认通常已有,如果没有则添加一个规则为Page URL matches regex .*的触发器)。
- 确保 Firing Triggers 包含
关联 Consent (关键步骤):
- 在工具设置页面找到 Consent 部分。
- 在下拉菜单中选择第二步创建的 Analytics & Improvements。
- 保存设置。
效果:只有当用户在弹窗中同意了 "Analytics & Improvements",Clarity 脚本才会加载。
(注意:Cloudflare Web Tag Management 的拦截是在边缘侧进行的,浏览器甚至不会收到加载 Clarity 的请求,这是最彻底的隐私保护方式。)
第四步:添加 "Cookie 设置" 入口 (合规要求)
GDPR 要求用户必须能随时撤回同意。你需要在网站底部添加一个链接来重新唤起弹窗。
1. 创建客户端组件 (Next.js 示例)
如果你使用的是 Next.js (App Router),需要创建一个 Client Component 来处理点击事件。
src/components/CookieSettingsLink.tsx:
typescript
'use client';
import React from 'react';
interface Props {
className?: string;
text?: string;
}
export function CookieSettingsLink({ className, text = "Cookie Settings" }: Props) {
return (
<a
href="#"
onClick={(e) => {
e.preventDefault();
// 调用 Cloudflare Web Tag Management API 显示弹窗
if ((window as any).zaraz) {
(window as any).zaraz.showConsentModal();
}
}}
className={className}
>
{text}
</a>
);
}2. 在 Footer 中引入
src/components/layout/Footer.tsx:
typescript
import { CookieSettingsLink } from '../CookieSettingsLink';
// ...
<footer className="site-footer">
<!-- 其他链接 -->
<CookieSettingsLink className="legal-link" />
</footer>第五步:验证安装
- 打开你的网站(建议使用无痕模式)。
- 你应该能看到 Cloudflare 的 Consent 弹窗。
- 测试拒绝:点击 "Reject All" 或不勾选 Analytics。打开控制台 (F12) -> Network,搜索
clarity,应该没有相关请求。 - 测试同意:点击 "Cookie Settings" 重新打开弹窗,勾选 Analytics 并保存。Network 中应该出现
clarity.ms的请求。 - 等待 1-2 小时,进入 Microsoft Clarity 后台查看数据。
常见问题
Q: 为什么不用 Clarity 的 "Cookies: No" 模式? A: 虽然 Clarity 支持无 Cookie 模式,但为了最严格的合规性,建议将整个脚本加载都置于用户同意之后。Cloudflare Web Tag Management 的原生拦截是目前最安全、性能最好的做法。
Q: Google Analytics 怎么处理? A: 同样的方法。添加 Google Analytics 工具,并将其关联到同一个 (Analytics) Purpose。这样用户一次点击就能同时授权或拒绝所有分析工具。
