当前位置: 首页 > news >正文

大数据如何捕捉你的爱好?如何实现跨站用户行为分析?

目录

大数据如何捕捉你的爱好?如何实现跨站用户行为分析?

一、什么是“跨站”?

二、常见的跨站追踪方案

1、总览

2、第三方 Cookie(传统方式)

3、跨域 iframe + postMessage

4、重定向跟踪(Redirect Tracking)/ URL 参数传递

5、指纹识别(Fingerprinting)

6、OAuth 登录(联合登录)

三、移动端的特殊玩法

四、结语


        作者:watermelo37

        CSDN全栈领域优质创作者、万粉博主、华为云云享专家、阿里云专家博主、腾讯云“创作之星”特邀作者、支付宝合作作者,全平台博客昵称watermelo37。

        一个假装是giser的coder,做不只专注于业务逻辑的前端工程师,Java、Docker、Python、LLM均有涉猎。

---------------------------------------------------------------------

温柔地对待温柔的人,包容的三观就是最大的温柔。

---------------------------------------------------------------------

大数据如何捕捉你的爱好?如何实现跨站用户行为分析?

        你有没有过这样的经历:在你打开淘宝浏览器页面的同时,京东的推荐页可能已经“猜到”你最近在关注某类商品;你在知乎点过几篇健身文章,B站就开始给你推送相关的视频。仿佛网络在默默“跟踪”你的一举一动。很多人心里打鼓:难道我所有的爱好、习惯,甚至小秘密,都在大数据面前无处遁形?

        今天我们就来聊聊:跨站用户行为分析是怎么实现的?

一、什么是“跨站”?

        “跨站”指的是跨不同域名的数据关联。比如:

        你在 a.com 买过运动鞋,又在 b.com 阅读体育资讯。

        技术上通过追踪用户在多个网站上的行为,形成完整的用户画像,用于广告投放、个性化推荐。背后同一个广告系统能认出你是“爱打球的年轻人”,然后给你推篮球装备。但问题来了:浏览器默认禁止不同域名之间直接共享用户数据。要实现跨站追踪,工程师们就得“各显神通”。

二、常见的跨站追踪方案

1、总览

方案是否依赖 Cookie是否被现代浏览器限制
第三方 Cookie❌ 被逐步禁用
postMessage✅ 可用
重定向跟踪✅ 可用
指纹识别⚠️ 隐私审查严格
OAuth 登录✅(第一方)✅ 推荐方式

2、第三方 Cookie(传统方式)

        工作原理:当你访问某网站时,它会在隐藏的广告 iframe 中偷偷加载 ad-tracker.com,这个广告域设置一个 Cookie,以后你访问任何网站,只要里面包含这个广告域,浏览器就会自动带上这个 Cookie。这样,广告商就能拼接出你的“跨站浏览轨迹”。

        缺陷:1、Safari、Firefox 早就禁了。2、Chrome 也宣布 2025 年全面淘汰第三方 Cookie。3、在隐身模式下更是彻底失效。

        注入第三方 Cookie 并记录页面访问:

// 第三方 JS 脚本
(function() {const userId = getOrCreateUserId(); // 在本地生成或读取用户 IDfetch('https://tracker.example.com/visit', {method: 'POST',headers: {'Content-Type': 'application/json'},body: JSON.stringify({userId,url: window.location.href,timestamp: Date.now()})});
})();

        可以说,这招是“老黄历”了。已经不太适合现代跨站追踪。

3、跨域 iframe + postMessage

        首先需要多个网站都嵌入同一个 iframe,比如 tracker.com/track.html。

        各个网站把用户的行为数据发给 iframe,iframe 用 window.postMessage() 进行跨域通信,中央 tracker 汇总数据。这样不依赖 Cookie,可以绕过限制。

        局限性就是双方要合作改代码,不像第三方 Cookie 那样“隐形”。

4、重定向跟踪(Redirect Tracking)/ URL 参数传递

        实现链路:用户点击广告链接,实际路径是:siteA → tracker.com?from=siteA → siteB,在 tracker.com 这一跳里,已经记录下了“用户来自哪里,要去哪”。这样只靠服务器日志就能记录用户路径。

        举个简单的例子,广告联盟(比如淘宝客、Google Ads)就是使用的这一招。你平时网购所使用的“返现链接”、“隐藏券渠道”、“外卖大额券领取”都是使用的这个原理。

// 页面 A
const userId = 'user_123';
window.location.href = `https://siteB.com/?uid=${userId}`;// 页面 B
const params = new URLSearchParams(window.location.search);
const uid = params.get('uid');
console.log('来自站点A的用户ID', uid);

5、指纹识别(Fingerprinting)

        收集用户设备的“独特信息”比如浏览器版本、屏幕分辨率、字体库、显卡型号、系统语言…然后拼在一起形成一串“独一无二”的指纹,这样即使没 Cookie,也能 90%+ 准确地识别出是同一个人。

        简单 Canvas 指纹生成:

function generateFingerprint() {const canvas = document.createElement('canvas');const ctx = canvas.getContext('2d');ctx.textBaseline = 'top';ctx.font = '16px Arial';ctx.fillText('user_fingerprint', 2, 2);return canvas.toDataURL(); // 将渲染结果转为唯一字符串
}const fingerprint = generateFingerprint();
console.log('用户指纹', fingerprint);

        但是这样其实对用户的隐私侵犯得厉害,几乎是让用户完全暴露在被监控的情况下,争议较大,所以现代浏览器开始限制 API,比如屏蔽字体枚举、降低精度,理论上技术可行,但实际上可能会有法律风险。

6、OAuth 登录(联合登录)

        这个很好理解,举个例子:你用“微信登录”某购物网站,又用“微信登录”某资讯网站,实际上,微信就是帮这两个网站建立了“同一用户”的映射。

        这种方式本质上依赖 第一方 Cookie(微信域下的),符合 OAuth 协议,安全、合法、用户知情,是目前最“合规”的跨站识别方式。缺点就是前提很多,跨域追踪有局限性。

        假设我们用 GitHub 登录:

// 1. 跳转到 GitHub 授权页
const clientId = 'YOUR_CLIENT_ID';
const redirectUri = encodeURIComponent('https://your-site.com/oauth-callback');
const scope = 'read:user';const githubAuthUrl = `https://github.com/login/oauth/authorize?client_id=${clientId}&redirect_uri=${redirectUri}&scope=${scope}`;document.getElementById('loginBtn').addEventListener('click', () => {window.location.href = githubAuthUrl;
});

        那么在需要登录的页面里就是:

// 2. oauth-callback 页面
// URL: https://your-site.com/oauth-callback?code=xxxx
const urlParams = new URLSearchParams(window.location.search);
const code = urlParams.get('code');if (code) {// 3. 通常发送到后端换 tokenfetch('/api/github/oauth/token', {method: 'POST',headers: { 'Content-Type': 'application/json' },body: JSON.stringify({ code })}).then(res => res.json()).then(data => {console.log('用户信息或 token', data);});
}

三、移动端的特殊玩法

        上面主要讲了浏览器端,那在 App 里是怎么做的呢?

  • 设备 ID:Android 早年用 IMEI,后来改成 OAID;iOS 用 IDFA(广告标识符)。

  • 账号体系:App 通常会强制用户登录,比如微信/支付宝账号,一旦统一账号,跨 App 行为分析就很容易。

  • SDK 共享:很多 App 会集成同一个统计/广告 SDK(比如友盟、Google Analytics),SDK 在后台帮你打通跨 App 的数据。

        移动端因为生态封闭,用户标识往往更稳定,也更难以规避。现在更多的通过SDK集成实现。

四、结语

        跨站用户行为分析并不是黑科技,而是前端 + 后端 + 数据分析协作的产物:

  1. 前端负责采集:Cookie、Fingerprint、URL / localStorage 等。

  2. 后端负责汇总与分析:数据仓库、推荐算法。

  3. 移动端通过 SDK 集成:保证跨 App 或跨站点跟踪。

        所以,当你发现广告总能精准击中你的爱好时,其实背后是一整套“数据打通 + 身份识别 + 行为建模”的大数据工程。技术是中性的,关键看怎么用。希望本文能帮你既了解机制,也保持合理的隐私警觉。

        只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

        其他热门文章,请关注:

        极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图

        你真的会使用Vue3的onMounted钩子函数吗?Vue3中onMounted的用法详解

        Web Worker:让前端飞起来的隐形引擎

        DeepSeek:全栈开发者视角下的AI革命者

        通过array.filter()实现数组的数据筛选、数据清洗和链式调用

        测评:这B班上的值不值?在不同城市过上同等生活水平到底需要多少钱?

        通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能

        TreeSize:免费的磁盘清理与管理神器,解决C盘爆满的燃眉之急

        通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制

        深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解

        前端实战:基于Vue3与免费满血版DeepSeek实现无限滚动+懒加载+瀑布流模块及优化策略

        el-table实现动态数据的实时排序,一篇文章讲清楚elementui的表格排序功能

        JavaScript双问号操作符(??)详解,解决使用 || 时因类型转换带来的问题

      【前端实战】如何让用户回到上次阅读的位置?

        内存泄漏——海量数据背后隐藏的项目生产环境崩溃风险!如何避免内存泄漏

        MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver

        高效工作流:用Mermaid绘制你的专属流程图;如何在Vue3中导入mermaid绘制流程图

        JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、DOM操作等


文章转载自:

http://zGNiIz3O.nrtpb.cn
http://dljRdEnV.nrtpb.cn
http://nzguTgBW.nrtpb.cn
http://68c47v9u.nrtpb.cn
http://LSzFX9H6.nrtpb.cn
http://MvpKAjl1.nrtpb.cn
http://Mtz7IMv6.nrtpb.cn
http://wxbJm4gl.nrtpb.cn
http://vZ8FyHuA.nrtpb.cn
http://zdpC5RKS.nrtpb.cn
http://ZI9Iy0Ao.nrtpb.cn
http://nNwNADQd.nrtpb.cn
http://cJEF0LN9.nrtpb.cn
http://zYhtWDJV.nrtpb.cn
http://WRbb7RBc.nrtpb.cn
http://8rudBUeZ.nrtpb.cn
http://NgI10QOi.nrtpb.cn
http://L6JQpUcC.nrtpb.cn
http://usxhndHs.nrtpb.cn
http://cGIV6vX3.nrtpb.cn
http://3zzkVuds.nrtpb.cn
http://5kv8i088.nrtpb.cn
http://taDvEfer.nrtpb.cn
http://nN3OPfHD.nrtpb.cn
http://hTtxcqxZ.nrtpb.cn
http://P43KZoNN.nrtpb.cn
http://FA7pK1F7.nrtpb.cn
http://2zMWCKG3.nrtpb.cn
http://mpDTfTPX.nrtpb.cn
http://PeVa0Eo4.nrtpb.cn
http://www.dtcms.com/a/384326.html

相关文章:

  • 用OpenCV CSRT实现实时目标跟踪
  • 13.Linux OpenSSH 服务管理
  • 微算法科技(NASDAQ: MLGO)研发基于量子密钥图像的量子图像加密算法,提供更高安全性的图像保护方案
  • LAMP 环境部署
  • Java程序设计:Eclipse 安装和使用
  • ZooKeeper 集群高可用配置指南
  • 在天嵌 TQ3568 (Debian) 上配置并添加打印机教程
  • pcl封装10 get_area_form_boundary计算平面点云面积
  • 突破局域网限制:MongoDB远程管理新体验
  • C++学习:map/set源码剖析+利用红黑树封装map/set
  • HTML开发工具有哪些?常用HTML编辑器推荐、HTML开发工具对比与HTML调试工具实战应用
  • Redis篇章3:Redis 企业级缓存难题全解--预热、雪崩、击穿、穿透一网打尽
  • 什么区块链(Blockchain)?Rust的区块链的例子
  • LangChain4J-(5)-记忆缓存与持久化
  • 遇到 npm install报错 certificate has expired是因为淘宝镜像源(registry.npm.taobao.org)
  • Excel办公新选择:300项功能的免费插件
  • 在Excel和WPS表格中用照相机创建动态更新的数据图片
  • 开发与维护nodejs工具库或自定义npm包
  • 从企业实战中学习Appium自动化测试(一)
  • 深度理解链表:使用C++数组与下标的模拟
  • 【wpf】从 DataContext 到依赖属性:WPF 自定义控件 ImageView 的优化之路
  • Sport Network 凭借 Akamai 实现卓越成就
  • Topaz Photo AI 人工智能图像处理(Mac)
  • LeetCode 第467场周赛 第13天
  • PINN物理信息神经网络锂电池剩余寿命预测模型(内含容量特征提取+两组电池剩余寿命预测实验),MATLAB实现
  • 「日拱一码」088 机器学习——蒙特卡洛树搜索MCTS
  • 简单聊聊神经网络中的反向传播
  • Java-Spring入门指南(九)反射与反射对象
  • 从 Vue 到 Java:前后端分离项目后端迁移完整教程
  • 在 IDEA 2024 创建 Vue 项目(保姆级)