如何编辑GA4原生Landing page维度或创建缩短路径的自定义维度?
解决GA4着陆页维度基数过高:提取路径前两段或创建短URL新维度
GA4原生的「着陆页」维度无法直接修改,要实现路径分组降基数,只能通过自定义维度或探索中的计算字段来实现,以下是两种可行方案:
方案一:提取页面路径的前两段
方式1:采集层提前处理(GTM/GA4代码)
这种方式会将处理后的路径作为参数发送到GA4,后续所有报告都能直接使用该维度:
GTM实现:
- 新建「自定义JavaScript变量」,代码如下:
function() { const path = document.location.pathname; const segments = path.split('/').filter(seg => seg.trim() !== ''); if (segments.length >= 2) return `/${segments[0]}/${segments[1]}`; return segments.length === 1 ? `/${segments[0]}` : '/'; } - 在GA4的
page_view事件配置中,添加该变量作为自定义参数(比如命名为landing_page_two_segments)。 - 进入GA4后台「管理」>「自定义定义」>「创建自定义维度」,关联上述参数,维度范围选「事件」。
- 新建「自定义JavaScript变量」,代码如下:
直接修改GA4代码:
在page_view事件中嵌入路径处理逻辑,添加自定义参数:gtag('event', 'page_view', { 'landing_page_two_segments': (() => { const path = document.location.pathname; const segments = path.split('/').filter(seg => seg.trim() !== ''); if (segments.length >= 2) return `/${segments[0]}/${segments[1]}`; return segments.length === 1 ? `/${segments[0]}` : '/'; })() });之后按上述步骤在GA4后台创建对应自定义维度。
方式2:探索中创建计算字段(无需修改采集)
如果只需要在特定分析中使用分组后的路径,可直接在GA4探索里创建计算字段,支持回溯历史数据:
- 打开「探索」> 新建自由形式探索。
- 点击「计算指标」>「创建计算字段」,类型选「维度」,名称设为「着陆页-前两段路径」。
- 输入优化后的公式(避免空值):
该公式会自动提取前两段路径,若路径不足两段则返回原着陆页值。IF(REGEXP_MATCH(Landing page, "^(/[^/]+/[^/]+)"), REGEXP_EXTRACT(Landing page, "^(/[^/]+/[^/]+)"), Landing page)
方案二:基于URL参数创建短URL维度
如果你的页面有自定义短标识参数(比如?short_page=home),可以直接提取该参数作为短维度:
采集层实现(GTM)
- 新建「自定义JavaScript变量」:
function() { const shortParam = URLSearchParams(window.location.search).get('short_page'); return shortParam || (() => { // 若参数不存在, fallback到前两段路径 const path = document.location.pathname; const segments = path.split('/').filter(seg => seg.trim() !== ''); return segments.length >= 2 ? `/${segments[0]}/${segments[1]}` : path; })(); } - 按方案一的步骤将变量作为参数发送到GA4,再创建自定义维度。
探索中实现
在探索的计算字段中直接提取参数:
IF(URL_PARAM(Landing page, 'short_page') != "", URL_PARAM(Landing page, 'short_page'), REGEXP_EXTRACT(Landing page, "^(/[^/]+/[^/]+)"))
注意事项
- 自定义维度创建后仅能采集新数据,历史数据需用探索计算字段处理。
- 维度范围优先选「事件」,因为着陆页是会话级属性,同一个用户不同会话的着陆页可能不同。
- 测试时可通过GA4实时报告或GTM预览模式,确认参数是否正确传递。
内容的提问来源于stack exchange,提问作者mare011
相关产品推荐
相关产品推荐

