有些人可能会看到如下的情况出现,就是网页平均互动时长看到的可能会是0,按照常理说,用户打开页面都会记录到事件的,即使打不开,也会耗费一定的时间,那么为什么会这样呢?
页面互动时长的计算逻辑
GA4中的页面互动时长是看page_view事件之后的于user_engagement 事件里的user_engagement_msec 参数或其他事件的user_engagement_msec 参数。
参数user_engagement_msec 就表示与上个事件的时间间隔,其中page_view、first_visit 和 session_start 事件没有 user_engagement_msec 参数。
user_engagement 事件,如下情形会发送user_engagement 事件
- 用户将应用屏幕移至后台
- 用户离开网页浏览器活动窗口
- 用户离开应用屏幕或网页(例如,用户关闭标签页、窗口或应用;用户前往其他屏幕或页面)
- 网站或应用崩溃
也就是在用户离开网站的时候是会发送user_engagement 事件。
假设用户访问您网站的首页,并在 8 秒钟后向下滚动页面,然后在 11 秒后前往网站的下一个网页。在下一个网页上,用户在 6 秒钟后向下滚动页面,然后在 7 秒钟后离开网站。
用户… | 事件名称 | user_engagement_msec |
---|---|---|
访问首页 | first_visit、page_view、session_start | 不适用 |
向下滚动页面 | scroll | 8781 |
转到下一页 | user_engagement | 11856 |
访问第二页 | page_view | 不适用 |
向下滚动页面 | scroll | 6677 |
离开网站 | user_engagement | 7711 |
首页的页面停留时间是8781+11856,第二页的页面停留时间是6677+7711
上述是用户离开页面的有发送user_engagement事件,但实际上,可能会出现没有user_engagement事件的情况,不是page_view、first_visit 和 session_start 事件,是其他的事件也可能会没有。
这种情况下页面停留时间看最后一个事件的user_engagement_msec参数,需要注意,有些事件是没有user_engagement_msec参数,那就看前面一个事件的。
假设用户访问您网站的首页,并在 8 秒钟后向下滚动页面,然后点击banner,之后前往网站的下一个网页。在下一个网页上,用户在 6 秒钟后向下滚动页面,然后在 7 秒钟后点击banner
用户… | 事件名称 | user_engagement_msec |
---|---|---|
访问首页 | first_visit、page_view、session_start | 不适用 |
向下滚动页面 | scroll | 8781 |
点击banner | event A | |
访问第二页 | page_view | 不适用 |
向下滚动页面 | scroll | 6677 |
点击banner | event B | 7711 |
首页的页面停留事件是8781,没有user_engagement事件,所以看最后一个事件event A ,它没有user_engagement_msec参数,那么看前年事件scroll,是8781毫秒,就是这个。
第二页的页面停留时间是6677+7711,没有user_engagement事件,所以看最后一个事件event B ,是6677+7711,。
互动时长是0的原因
如果是个别页面,访问后离开,没有发送user_engagement事件,这个页面上没有其他事件,如果有,没有user_engagement_msec参数,那就是0。
如果是所有页面,那么这是个bug,延伸阅读:Google Analytics 4 里的一些Bug (2023)