GA4 页面脚本事件的具体含义和触发条件
关注 1421
本节讲述的内容针对用于网站页面的 Google Analytics(GA4)。
Google Analytics 页面脚本事件
当你通过某种方式,比如gtag.js
,为网站添加 Google Analytics(GA4)脚本后,GA4 脚本会将页面或用户的某些状况,作为事件发送至 Google 服务器。
在默认或经过配置的情况下,GA4 脚本会涉及以下常见的事件,first_visit
,session_start
,page_view
,user_engagement
,scroll
,click
,view_search_results
,file_download
。这些事件可能会被 GA4 脚本单独发送,也可能会在捆绑之后被一同发送。
事件 first_visit
当数据流对应的 GA4 脚本,认为用户是第一次访问网站时,会触发first_visit
事件。first_visit
一般跟随其他事件一起发送,他通过请求参数_fv
来表示,当_fv
等于1
或2
时,表示 Google 服务器应记录first_visit
事件。
由于 GA4 脚本会将数据流信息存储在 Cookie 中,其 Cookie 名称的格式为_ga
和_ga_<id>
,id
为数据流对应的衡量 ID(多个数据流会拥有多个_ga_<id>
),因此,当浏览器中不存在数据流对应的 Cookie 时,GA4 脚本将认定当前是一位新用户。
GA4 页面脚本可以为多个数据流创建不同的新用户
虽然这种情况不多见,但一个页面可以为多个数据流提供信息,每一个数据流都将拥有一个名为_ga_<id>
的 Cookie,他们会产生各自的新用户。
GA4 页面脚本认定的可能并非真正的新用户
根据 GA4 脚本判断新用户的方式,如果浏览器 Cookie 过期或被人为删除清空,更换新浏览器或新设备,那么同一名操作者会被当作新用户,虽然他或她可能是一位老用户。
为何清除 Cookie 对 GA4 页面脚本无效?
如果你清除了浏览器中的 Cookie,但之后打开或刷新页面却未能触发first_visit
,那么这可能是由于页面触发了新事件,导致清除的 Cookie 被重新写回。比如,页面关闭时触发的user_engagement
事件。
事件 session_start
当 GA4 脚本认为新的会话已经开始时,会触发session_start
事件。与first_visit
事件类似,session_start
同样是跟随其他事件一同发送的,他通过请求参数_ss
来表示,当_ss
等于1
或2
时,表示 Google 服务器应记录session_start
事件。
在新的会话开始后,如果用户处于不活动的时间超过会话超时时间(默认为30
分钟),则认为该会话结束,之后出现的活动将触发新的会话,这里的活动可以指任何用于让 GA4 脚本触发事件的行为。一个会话表示了一段时间内用户的行为和页面状态,他们之间具有较强的关联性。
如何设置 GA4 页面脚本的会话超时时间?
在 Google Analytics 站点,选择需要修改会话超时时间的数据流,然后点击网站数据流详情中的配置代码设置,最后进入配置选项卡的调整会话超时设置,即可修改会话的超时时间。
事件 page_view
page_view
事件会在网页载入时触发,默认情况下,这包含了历史记录操作(上一页,下一页)的载入,以及刷新页面。
如何设置 GA4 页面脚本忽略历史记录操作?
如果你不希望记录由历史记录操作触发的page_view
事件,可以在 Google Analytics 站点对应数据流的增强型衡量功能中,点击网页浏览量的显示高级设置链接,然后取消选中相关复选框即可。
事件 user_engagement
事件user_engagement
用于发送用户在当前会话中的交互时间,交互时间被认为是页面获得用户关注的时间,GA4 脚本中的感兴趣会话计时器,会排除非交互时间的统计,比如,排除页面被隐藏时的时间。
user_engagement
通常在页面关闭时或某个不确定的时间点触发,他拥有以下重要的请求参数。
- _et 请求参数
GA4 脚本计算出的交互时间会通过请求参数
_et
发送至服务器,这里需要说明,_et
表示的是本次事件与上一次事件之间,所产生的交互时间总和,以毫秒为单位。
GA4 页面脚本是如何判断会话是否为感兴趣会话的?
当一个新的会话所累计的交互时间超过一定秒数(感兴趣会话计时器阈值,默认为10
秒),或会话出现了转换事件,或会话的页面浏览量大于一次,则会话被定义为感兴趣会话,之后触发的事件会将seg
请求参数设置为1
(seg
为0
表示会话尚未成为感兴趣会话)。
如何设置感兴趣会话计时器阈值?
在 Google Analytics 站点选择需要修改计时器阈值的数据流,然后点击网站数据流详情中的配置代码设置,最后进入配置选项卡的调整会话超时设置,即可修改感兴趣会话计时器阈值。
事件 scroll
当用户将页面向下滚动到一定范围(默认到达底部90%
以下)时,事件scroll
将被触发。该事件可作为衡量页面质量的辅助指标,因为对于篇幅较长内容较多的页面,用户可能只对页面的前半段内容感兴趣,scroll
事件根本没有触发机会。
scroll
事件拥有以下重要的请求参数。
- epn.percent_scrolled 请求参数
epn.percent_scrolled
表示了滚动条滚动的百分比,默认情况下,他总是为90
。
GA4 页面脚本的 scroll 事件可能被错误的触发
GA4
脚本默认依据浏览器的滚动条,来判断是否应该触发scroll
事件。当你的页面样式比较特殊,长篇幅的内容在页面的某个元素内滚动时,scroll
事件可能会百分百触发,即便大部分页面内容未被用户看到。
事件 click
用户在页面中点击是非常常见的操作,GA4 脚本一般只会记录出站点击,当一个指向你的站点以外的链接被点击时,就会触发click
事件。
出站点击的click
事件拥有以下重要的请求参数。
- ep.outbound 请求参数
ep.outbound
请求参数总是为true
,以表示这是一个出站点击。- ep.link_id 请求参数
ep.link_id
请求参数表示a
元素的id
属性。- ep.link_classes 请求参数
ep.link_classes
请求参数表示a
元素的class
属性。- ep.link_url 请求参数
ep.link_url
请求参数表示a
元素指向的 URL。- ep.link_domain 请求参数
ep.link_domain
请求参数表示a
元素指向的域名。
事件 view_search_results
当浏览器中的 URL 具有特定查询参数时,事件view_search_results
会被触发,这通常表示用户试图查询或希望得到更加精准的结果。
在默认情况下,以下 URL 查询参数是被监视的,q
,s
,search
,query
,keyword
。他们会被 GA4 脚本依次检查,当某个查询参数具有有效值时,其值将通过view_search_results
的请求参数ep.search_term
发送至 Google 服务器。假设,URL 中包含search=Tom
,那么Tom
将成为请求参数ep.search_term
的值。
如何设置 GA4 页面脚本监视的查询参数?
可以在 Google Analytics 站点对应数据流的增强型衡量功能中,点击网站搜索的显示高级设置链接,通过搜索字词查询参数文本框,即可设置 GA4 脚本需要监视的查询参数,参数之间使用,
分隔。
如何让 GA4 页面脚本监视更多查询参数?
如果希望 GA4 脚本能够监视更多的查询参数,则可以在 Google Analytics 站点对应数据流的增强型衡量功能中,点击网站搜索的显示高级设置链接,通过其他查询参数文本框,即可设置 GA4 脚本需要监视的其他查询参数,参数之间使用,
分隔。
需要说明的是,你所设置的其他参数,无论是否具有有效值,只要出现在 URL 中,就会以ep.q_<name>=<value>
这样的格式被发送至服务器,其中name
为参数名称,value
为参数的值。
事件 file_download
用户在页面中点击指向特定扩展名的文件链接时,就会触发file_download
事件。在默认情况下,GA4 脚本将监视扩展名符合如下正则表达式的文件的下载,pdf|xlsx?|docx?|txt|rtf|csv|exe|key|pp(s|t|tx)|7z|pkg|rar|gz|zip|avi|mov|mp4|mpe?g|wmv|midi?|mp3|wav|wma
。
file_download
事件拥有以下重要的请求参数。
- ep.file_name 请求参数
ep.file_name
请求参数表示下载文件的文件名,他对应了 URL 中的路径部分。- ep.file_extension 请求参数
ep.file_extension
请求参数表示下载文件的扩展名。- ep.link_text 请求参数
ep.link_text
请求参数表示a
元素所显示的文本。- ep.link_id 请求参数
ep.link_id
请求参数表示a
元素的id
属性。- ep.link_url 请求参数
ep.link_url
请求参数表示a
元素指向的 URL。
如何为 GA4 页面脚本指定需要监视的下载文件的扩展名?
到目前为止,Google Analytics 站点并没有提供简便的办法,来设置 GA4 脚本所监视的下载文件的扩展名,这个目标可以通过自定义事件来完成。