Google Analytics是否捕获JavaScript重定向?外部站点跳转场景问询
关于Google Analytics记录页面重定向的问题
1. GA会不会记录这次重定向?
答案是会,但有前提:
- 当你通过
window.location = 'http://differentsite.com'触发跳转时,GA默认会识别到用户离开当前页面的行为(在报告里会体现为用户会话结束,或是页面停留时间的计算截止)。 - 但这里有个关键:GA需要足够时间把数据发送到服务器。如果跳转是同步立即执行的,GA的请求可能还没完成就被页面跳转中断,导致这条离开记录丢失。
2. 默认情况下能不能查看跳转目标地址?
不行。GA的默认报告里只会显示用户离开了你的页面,但不会自动捕获跳转的目标URL。想要获取这个信息,你需要手动添加自定义事件来记录跳转目标。
怎么实现记录跳转目标地址?
你可以在跳转前发送一个包含目标URL的自定义事件,确保GA能捕获到这个信息。这里推荐两种可靠的方式:
方式一:用gtag发送事件+短暂延迟跳转
通过给跳转加个几十毫秒的延迟,让GA有足够时间完成事件发送:
// 发送自定义重定向事件,携带目标地址 gtag('event', 'external_redirect', { 'event_category': 'navigation', 'event_label': 'http://differentsite.com' // 替换为你的跳转目标 }); // 延迟100毫秒再跳转,确保事件发送完成 setTimeout(() => { window.location = 'http://differentsite.com'; }, 100);
方式二:用navigator.sendBeacon发送(更可靠)
sendBeacon是异步发送数据的,不会阻塞页面跳转,能最大程度保证数据被GA接收:
// 构造GA事件的请求参数 const gaPayload = JSON.stringify({ v: '1', tid: 'UA-XXXXXXXXX-X', // 替换成你的GA跟踪ID cid: localStorage.getItem('_ga'), // 获取用户的GA客户端ID t: 'event', ec: 'navigation', // 事件分类 ea: 'external_redirect', // 事件动作 el: 'http://differentsite.com' // 事件标签(跳转目标地址) }); // 用sendBeacon发送到GA收集端点 navigator.sendBeacon('https://www.google-analytics.com/collect', gaPayload); // 立即跳转 window.location = 'http://differentsite.com';
之后怎么查看跳转目标?
添加完自定义事件后,你可以在GA的事件报告里,通过「事件分类」「事件动作」筛选到你设置的external_redirect事件,然后查看「事件标签」列,就能看到对应的跳转目标URL了。
内容的提问来源于stack exchange,提问作者Tadeáš Jílek
相关产品推荐
相关产品推荐

