GA4上对单页应用(SPA)做跟踪——延迟发送(History Change&dataLayer.push)

Google Analytics 4 Haran 7年前 (2018-06-15) 3980次浏览 0个评论

更新时间:2025年6月25日

什么是单页应用(SPA)

单页应用(Single Page Application, SPA是一种网页应用,其所有必要的HTML、JavaScript和CSS代码在首次加载时一次性获取,或根据用户交互动态加载内容,而无需重新加载整个页面。SPA通过JavaScript框架(如React、Angular、Vue.js等)实现动态内容更新,通常依赖浏览器History API或DocumentFragment来管理页面状态和URL变化。
在传统网站中,每次页面加载都会触发GA4page_view事件,而在SPA中,由于页面不刷新,GA4需要额外的配置来正确记录“虚拟页面浏览”和其他用户交互。

GA4跟踪单页应用的挑战

SPA中,GA4面临的常见跟踪问题包括:
  • 页面浏览未被记录:由于页面不重新加载,GA4的默认page_view事件可能只在首次加载时触发,后续的页面内容变化不会自动记录。
  • URL和页面标题不准确SPA可能通过pushState更新URL,但GA4默认使用document.location.pathname,可能无法捕获完整的URL或正确的页面标题。
  • 会话和引荐来源问题:如果不正确配置,SPA可能导致会话数据断裂或引荐来源(Rogue referrer)数据错误,影响用户旅程分析。
  • 事件重复或遗漏:自动跟踪(如增强测量)可能导致页面浏览事件重复计数,或者在某些情况下未能触发。

延迟发送(History Change&dataLayer.push)

延时发送是对GA4上对单页应用(SPA)做跟踪——History Change触发器 的优化,可以解决网页标题错位的问题。思路是页面加载/History Change时延时500ms,执行js获取Page URL和Page Title,通过dataLayer.push发送出去。

实现步骤

History Change触发器

在GTM中点击「触发器」——「新建」——「选择一个触发器类型以开始设置… 」——「历史记录更改」,命名为History Change,做如下设置:

配置延时发送

在GTM中点击「代码」——「新建」——「选择一个代码类型以开始设置… 」——「自定义HTML」,命名为“SPA-延时发送”,然后做如下设置:

这个配置的作用是History Change的时候,做了延时,确保新页面打开,获取准确的网页标题,然后通过dataLayer.push将其发送数据。

 

 

 

配置数据层变量

在GTM中点击「变量」——「新建」——「选择一个变量类型以开始设置…」——「数据层变量」,命名为dlv—pagePath & dlv—pageTitle,做如下设置:

 

 

配置代码

先要配置一个Google Tag,不需要配置触发器,在GTM中点击「代码」——「新建」——「选择一个代码类型以开始设置…」——「Google代码」,命名为“GA4配置设置”:

 

注意:这个代码不需要触发器。

下来就是设置代码,在GTM中点击「代码」——「新建」——「选择一个代码类型以开始设置… 」——「Google Analytics」——「Google 代码」,命名为“GA4 Basic Tracking”,然后做如下设置:

 

 

 

优点

  • 灵活性更高:允许自定义page_location和page_title,适合复杂的SPA
  • 无需大量开发工作:只需配置GTM,无需修改网站代码

 

缺点

  • 数据丢失:延时,如果用户离开或快速访问其他页面,会到时数据丢失

 

 

适用场景

History Change触发器适合URL变化频繁、需要自定义页面参数的SPA,但仍依赖History API的应用。

 


如有疑问,可以在文章底部留言或邮件(haran.huang@ichdata.com) 我~
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址