更新时间:2025年5月26日
在GA4报告、探索或BigQuery数据中,你可能会看到 (not set)。
很多人一看到它,就认为GA4出错了。其实不一定。
(not set) 的意思很简单:GA4需要用某个信息来填充当前维度,但它没有收到这个信息。 例如,GA4要显示着陆页,就需要会话中的page_view;要显示订单ID,就需要purchase事件中的transaction_id。
关键在于:不同维度依赖的数据完全不同。因此,不能用同一种方法处理所有 (not set)。
本文会解释GA4中最常见的 (not set) 场景、它们为什么出现,以及哪些需要修复,哪些其实属于正常现象。
着陆页里中的not set
着陆页里面出现not set是最常见的情况之一。
GA4 的“着陆页”是一个会话级维度,取自该会话中的第一个page_view。所以,只要一个会话没有page_view,GA4就无法确定用户从哪个页面进入,最终显示为 (not set)。
常见情况包括:
- 会话里缺少page_view事件,如会话超时,用户再访问网站触发了其它事件,但没触发PV,那么第二次访问就没有着陆页
- 安装有多个Google Tag,导致Google标签加载过晚,其他事件先发送
- Cookie 同意设置错误,初始页面浏览或session_start丢失;
- 服务端或 Measurement Protocol 仅发送了业务事件,没有关联到正常的浏览器页面浏览
网页标题里的not set
网页位置的长多超过500就显示为not set,后面网页位置的长度提高到1000。
网页标题中的not set
页面标题通常来自page_view事件中的page_title参数,而这个参数默认取自网页的 <title>。
因此,网页标题出现 (not set) 时,优先检查以下两件事:
- 页面 HTML 中是否真的有 <title>;
- 发送page_view时,page_title是否为空、未定义,或被自定义代码覆盖。
单页应用(SPA)特别容易遇到第二种情况。页面路由已经变化,但JavaScript还没有更新document.title,GA4的页面浏览就已经发送了。此时你可能看到旧标题、空标题或 (not set)。
检查方式:
- 在浏览器开发者工具的Network中找到GA4请求,查看请求中的ep.page_title。如果没有这个参数,或参数为空,就应回到 GTM/gtag.js的页面浏览配置检查。
- 对于SPA,应该在每次路由变化后更新标题,再发送虚拟页面浏览。
内容组中的not set
GA4预留了内容组这个维度,你必须在事件中发送 content_group 参数,才会有数据,如果你没有发送 content_group,内容组报告出现 (not set) 是正常的,并不代表标签报错。
如果内容组是你需要分析的维度,请设置content_group,才会有是数据。
带来会话的来源/媒介中的not set
有以下原因:
- 该会话缺少session_start事件:GA4 使用 session_start 建立会话,并据此处理会话级来源信息。如果 Google 标签加载太晚、Google 标签未在所有页面触发,或同意模式阻止了初始会话事件,就可能出现会话来源/媒介为 (not set)。
- Measurement Protocol 事件没有正确加入原有会话:缺少session_id参数,该事件可能无法继承预期的来源信,就会导致来源和媒介是not set
- UTM使用错误:如果你手动标记广告链接,却只写了 utm_source,没有正确提供 utm_medium,或参数在跳转过程中被移除,GA4 可能无法按预期识别来源。
地址位置中的not set
国家、地区、城市等地理位置维度,主要基于用户IP地址推断。
所以,地理位置出现 (not set) 通常表示GA4无法获得足够的地理信号,而不是“第三方平台没有返回数据”。
有如下原因:
- 这个维度是通过IP查询第三方数据获取的,如果第三方平台查询不到,没有数据,那么就显示not set
- 通过服务端部署,默认移除IP,自然就没有地理位置
- 通过MP协议发送,也是没有IP地址,自然就没有地理位置。
订单ID里的not set
订单 ID 对应的是 GA4 电商事件中的 transaction_id 参数。
如果你在“电商购买”报告或探索中看到 Transaction ID 为 (not set),最直接的解释是:某些 purchase 事件没有发送 transaction_id。
商品推广活动名称中的not set
一些关键事件,如添加到购物车、结账和订单支付成功,还不支持站内归因,都划分到not set。
是新用户还是老用户里的not set
因为所选时间范围内New User没有发送过first_open/first_visit导致。
如新用户在所选时间内访问但没有发送first_open 或 first_visit ,所以它不会划分到New User里,而且它之前也没访问过,所以也不会划分到Established Users,所以它就会划分到not set。
自定义维度里的not set
自定义维度出现 (not set) 的逻辑最直接:对应事件没有发送参数,或者发送时参数没有值。
不过,还有两个容易忽略的细节:
- 新注册自定义维度后的前 24 小时内,报告中可能暂时出现 (not set);
- 对 session_start 和 first_visit 而言,GA4 会保留会话或首次访问第一个事件中的参数。若该参数没有出现在第一个事件中,后续报告也可能出现 (not set)。
如何快速判断 (not set) 是否需要修复
| 看到的维度 | 首先检查什么 | 是否通常需要处理 |
|---|---|---|
| 着陆页 | 会话中是否有 page_view | 是 |
| 网页标题 | page_title 是否存在、是否发送过早 | 通常是 |
| 内容组 | 是否发送 content_group;是否在看自动事件 | 视分析需求而定 |
| 会话来源/媒介 | session_start、Google 标签触发顺序、UTM/自动标记 | 是 |
| 事件级来源/媒介 | 是否查看非关键事件 | 未必 |
| 国家/城市/地区 | IP、MP/服务器端事件的地理信息 | 视业务场景而定 |
| Transaction ID | purchase 是否发送 transaction_id | 是 |
| 商品推广活动名称 | 是否发送促销事件和促销参数 | 视分析需求而定 |
| New / established | first_visit、first_open 与用户关联方式 | 通常应排查 |
| 自定义维度 | 参数是否稳定发送、是否刚注册维度 | 通常是 |
总结
GA4 中的 (not set) 不是单一 Bug,而是一个提示:当前报告维度缺少生成它所需的数据。








