Microsoft Clarity问题:单页视图触发新录制,无法追踪多页会话
以下是排查和解决该问题的关键步骤:
确保Clarity脚本在Cookie同意后加载
不要在页面初始化阶段直接加载Clarity脚本,必须等用户明确同意Cookie后,再动态注入初始化代码。如果脚本提前加载,Clarity会在没有会话Cookie的情况下生成新会话,后续即使Cookie设置完成,也无法关联已启动的录制。验证Cookie域的正确性
若你的网站存在多子域名(如blog.example.com和shop.example.com),需确保_clck和_clskCookie的域设置为根域(如.example.com)。可通过浏览器开发者工具的「Application」面板查看Cookie的Domain属性,确认其覆盖所有需要共享会话的子域名。检查Cookie的SameSite属性
确保Cookie的SameSite属性设置为Lax或None(若涉及跨站点导航且使用HTTPS),避免因Strict设置导致跨页跳转时Cookie无法传递。可在浏览器Network面板中查看新页面请求的Cookie头,确认_clck和_clsk是否被携带。排查初始化代码中的异常参数
检查Clarity初始化代码,确保没有添加forceNewSession: true这类强制生成新会话的自定义参数。标准初始化代码应保持简洁,仅包含项目ID:(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", "你的项目ID");排查Cookie被清除的情况
检查网站内的其他脚本、隐私工具或浏览器扩展,是否存在自动清除_clck/_clskCookie的逻辑。可在页面加载前后通过控制台执行document.cookie,对比Cookie的变化情况。确认项目会话超时设置
登录Clarity项目后台,检查会话超时时间(默认30分钟),避免因超时设置过短导致用户跨页时会话已失效。使用正常浏览器模式测试
避免在无痕/隐私模式下测试,这类模式会限制Cookie的持久化和跨页共享,导致会话无法正常关联。
内容的提问来源于stack exchange,提问作者Timo002

