如何在Google Analytics中创建排除Web应用用户的销售网站视图
跨独立GA媒体资源排除用户的可行方案
这个需求我之前帮客户落地过,完全不用合并媒体资源就能实现,核心思路就是通过跨站点同步用户标识+自定义维度过滤,具体步骤如下:
1. 在Web应用的GA媒体资源中创建用户级自定义维度
首先,在你的Web应用对应的GA媒体资源里,新增一个用户级的自定义维度(比如命名为web_app_user_id),用来记录用户的UUID。用户级维度会绑定到用户的整个生命周期,不管用户访问多少次都能关联上。
然后在Web应用的GA代码里,当用户生成UUID(或登录后获取用户ID)时,把这个值传给GA:
// 假设userUuid是你生成的唯一用户标识 gtag('set', 'user_properties', { 'web_app_user_id': userUuid }); // 如果还在使用UA(注意UA已停止数据收集,仅作兼容参考) // ga('set', 'dimension1', userUuid); // dimension1对应你创建的自定义维度索引
2. 把Web应用的UUID同步到销售网站
接下来需要让销售网站能识别来自Web应用的用户,常用的同步方式有两种:
- URL参数传递:当用户从Web应用跳转至销售网站时,在跳转URL后拼接UUID参数,比如
https://你的销售网站.com?web_app_uuid=xxx - 跨域Cookie/localStorage:如果两个域名属于同一主域(比如app.yourdomain.com和shop.yourdomain.com),可以用主域Cookie存储UUID;如果是完全独立域名,优先用URL参数,再把UUID存到销售网站的localStorage里,方便用户后续访问时识别。
销售网站的GA代码里,读取并设置这个自定义维度:
// 读取URL参数中的UUID function getUrlParam(paramName) { const params = new URLSearchParams(window.location.search); return params.get(paramName); } const webAppUuid = getUrlParam('web_app_uuid'); if (webAppUuid) { // 存到localStorage,后续访问无需再从URL获取 localStorage.setItem('web_app_user_id', webAppUuid); // 同步到销售网站的GA用户属性 gtag('set', 'user_properties', { 'web_app_user_id': webAppUuid }); } else { // 检查localStorage中是否有之前存储的UUID const storedUuid = localStorage.getItem('web_app_user_id'); if (storedUuid) { gtag('set', 'user_properties', { 'web_app_user_id': storedUuid }); } }
3. 在销售网站的GA媒体资源中创建排除视图/过滤器
针对GA4:
进入销售网站的GA4媒体资源 → 管理 → 数据流 → 找到对应的Web数据流 → 创建过滤器:
- 过滤器类型选择“排除”
- 过滤条件选择“用户属性” → 选择你创建的
web_app_user_id→ 匹配类型选择“存在”(即该属性不为空的用户)
针对UA(仅作历史参考):
进入销售网站的UA媒体资源 → 管理 → 视图 → 创建过滤器:
- 过滤器类型选择“排除”
- 过滤字段选择“自定义维度” → 选择对应的维度索引(比如维度1)
- 过滤模式填
.+(匹配任意非空值)
设置完成后,这个新视图就只会统计从未访问过Web应用的用户会话了。
关键注意事项
- 自定义维度必须设为用户级,否则只能过滤单次会话,无法覆盖用户的所有访问行为
- UUID要保证唯一性和持久性:登录用户用系统内的用户ID,未登录用户生成一个UUID并存在Web应用的Cookie里,避免用户清除本地存储后丢失标识
- 如果两个域名是完全独立的,URL参数传递是最可靠的跨域标识同步方式,记得处理用户直接访问销售网站的场景(此时不会有UUID,不会被排除)
内容的提问来源于stack exchange,提问作者Nathan Pitman
相关产品推荐
相关产品推荐

