You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在自有网站分析平台实现跨域追踪?

跨域名用户行为追踪方案与资源整理

一、自建追踪方案(无第三方依赖)

1. 自定义Header/URL参数追踪(你的思路深化)

  • 核心逻辑:用户跨域名跳转时,通过前端逻辑传递加密后的唯一用户标识,目标站接收后留存,用于后续行为关联
  • 实现细节:
    • 源站:跳转前生成UUID作为用户唯一标识,用对称加密(如AES)处理后,要么通过fetch预请求携带自定义Header(如X-Track-User: [加密串]),要么拼接在跳转URL的参数中(如?track_id=[加密串])
    • 目标站:页面加载时优先读取请求Header,再 fallback 到URL参数,解密后将用户标识存入localStorage或标记SameSite=None; Secure的Cookie,后续所有行为上报都携带该标识
  • 关键注意:目标站需配置CORS许可,允许源站Origin携带自定义Header;加密密钥需前后端统一,避免明文泄露用户标识

2. 同主域Cookie共享追踪

  • 核心逻辑:如果多个域名属于同一主域(如a.yourdomain.com和b.yourdomain.com),可将用户标识存入主域Cookie实现跨站共享
  • 实现细节:设置Cookie时指定domain=.yourdomain.com; path=/; SameSite=None; Secure,所有子域名的前端代码均可直接读取该Cookie中的用户标识
  • 局限:仅适用于同主域的子域名,跨独立主域无法使用

3. 自建行为上报后端

  • 核心逻辑:搭建自有上报接口,所有域名的前端统一调用该接口提交行为数据,携带统一用户标识
  • 前端代码示例:
// 通用上报函数
function trackUserAction(actionType, pageUrl) {
  // 读取或生成用户唯一标识
  let userId = localStorage.getItem('cross_domain_user_id');
  if (!userId) {
    userId = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
      const r = Math.random() * 16 | 0;
      return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
    });
    localStorage.setItem('cross_domain_user_id', userId);
  }
  // 上报行为数据
  fetch('/your-tracking-api', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      user_id: userId,
      action: actionType,
      page_url: pageUrl,
      timestamp: Date.now()
    })
  });
}
  • 注意:上报接口需配置CORS允许所有自有域名请求;后端需将用户标识与行为数据关联存储,便于后续分析

二、替代Google Analytics的第三方工具(仅核心特性)

  • Plausible Analytics:开源隐私友好,支持跨域名追踪,无需Cookie同意弹窗(部分地区合规),可自托管
  • Matomo:开源自托管,数据完全可控,支持跨域名追踪配置,可自定义追踪维度
  • PostHog:侧重产品分析的开源工具,支持跨域用户标识关联,提供事件、漏斗分析等功能

三、合规必看

  • 需遵守GDPR、CCPA等隐私法规,跨域追踪需获得用户明确同意(功能性追踪除外)
  • 用户标识需匿名化,禁止关联可识别个人身份的信息(PII)
  • 跨域传输数据必须使用HTTPS加密

内容的提问来源于stack exchange,提问作者user158732

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:35:29