GA4究竟该怎么学?
|

为什么说GA4的session_start是一个寄生事件

马老师在2021年1月曾经介绍了GA4以事件为核心的机制,这是GA4与UA最本质的区别。也是因为该特性,使得GA4与UA成为了完全不同的两个产品。

GA4使用了完全不同的数据结构
GA4使用了完全不同的数据结构

如今,UA已经香消玉殒,过多缅怀也无济于事。你可以转投Clicky或者继续使用GA4。但如果你选择继续使用GA4,那么你必须了解session_start这个事件。

session_start事件的触发条件

session_start顾名思义是session开始时触发的一个标志事件。每当用户与网站或App开始交互时,session_start就将被触发。GA4中的session,默认为30分钟(可通过设置调整),也就是说,当一个session持续30分钟未有新的事件产生时,再度交互将会触发新的session_start事件。

那么什么样的行为才能触发session_start呢?各种事件,包括pageview,download,scroll等等,任意非寄生事件都可以触发session_start事件。

寄生事件和一般事件

上文马老师提到了寄生事件和非寄生事件的概念。这是马老师为帮助读者理解提出的概念,并非谷歌官方这么区别。非寄生事件有些拗口,我们就叫做一般事件。

寄生事件是那些被自动识别的事件,它需要依附在一般事件上。比如我们说的session_start就是一个寄生事件。与此类似的寄生事件还有first_visit(首次访问)。

我们可以通过Chrome的DevTools来说明这个区别。见下图:

用户首次访问网站事件
用户首次访问网站事件

我们可以从en参数看到,这是一个page_view事件。page_view事件是一个普通事件,但是这个事件寄生了两个寄生事件,first_visit和session_start,所以_fv和_ss两个参数为1(如果同时是转化事件,则_ss为2)。关于参数的意义,参见这篇文档

当我们点击浏览下一页时,你就不会看到这两个参数了,因为不再是首次访问hit,也不是新session。

我们实际上能在GA4的Debug Mode中明显地看到这一现象。

一个一般事件和两个寄生事件
一个一般事件和两个寄生事件

上图中,我们可以看到扎堆出现的三个事件,实际上是通过一个一般事件page_view触发的。

那么,我们也可以得到推论,即en参数不可能是session_start或者first_visit。

因为是寄生事件,所以?

因为是寄生事件,所以session_start的参数不存在,这些你在Debug Mode中看到的参数都是其宿主世界的参数。因此上图中的source,medium,term这些参数都是page_view事件的参数。

理解session_start这个寄生事件可以更好理解不同指标之间差异的成因。

比如,你可以理解session_start数和session数不一致是如何造成的。你可以理解为什么有的session没有pageview。

我们聊几个实际会出现的情况:

场景A:用户谷歌“SEO外链”找到极诣数字营销,文章读到一半切换到GSC的网站,一小时后切回来并读完了落地页文章,然后关掉了页面。这时会算几个session?有几个session_start?

这个问题非常常见,特别是你打开了Enhanced measurement中的Scroll行为时,这个过程中产生了两个session并有两个session_start。

第一个session的source为google,medium为organic。session_start会寄生到page_view事件。第二个session为direct,session_start会寄生到user_engagement事件或者scroll事件。同时这个session并没有page_view发生。

场景B:用户在凌晨前23:59谷歌“SEO外链”找到极诣数字营销,文章读到00:02点击了一个链接离开了网站。此时产生了几个session?有几个session_start?

此时有一个session,session id不变,并且在这个session中除了user_engagement事件还包含一个pageview事件和一个click事件。这个session即会被算到前一天,又会算到后一天,如果是周六晚上开始甚至会被算到前后两个周。但是该过程依然只有一个session_start。

讲到这里你或许明白了session和session_start也有很大区别。

Session和session_start

session在GA4中是session id与user id组合去重后的个数。因为session id是一个时间戳的概念,所以两个或两个以上用户完全可能拥有同一个session id,只不过user id会不同。

Session ID并不唯一,要同时结合User ID来看
Session ID并不唯一,要同时结合User ID来看

于是当我们问某一段时间有多少session的时候,GA4就会去对这段时间session id(ga_session_id)和user id(user_pseudo_id)组合起来去重,这也是为什么刚才在上面跨午夜的情况B中相同session id和user id的同一个session会分别被算在两个时间区间里的原因。

因此大多数时候session和session_start计数对不上,并且对不上的时候session要大于session_start的计数。

可是GA4中的session数量又小于UA中的session数量,因为在最后一次事件后的30分钟里,GA4是不会再新开一个session的。这样这里发生的所有的事件都分享同一个session id。

C:用户点击email链接打开了极诣数字营销,然后又通过谷歌搜索打开了极诣数字营销。此时依然只有一个session,一个session_start。但每次page_view都会被标记来源,所以email campaign和organic都会各自获得一个session。因为同一个session id在这两个来源下都有。

如果你不区分,相比UA,你的Session数的确是会少的。

总结

理解session_start是深入了解GA4工作原理的基础,尽管谷歌希望营销者远离Session概念更关注engagement,但是现实中是不现实的。

session_start事件是一个寄生事件,它无法单独发生。我们理解GA4的事件流能帮我们更好理解数据差异并设计出合理的报表。

session_start和session数不一致是正常现象但是session_start远高于session数则有可能是数据错误或者机器人干扰。

GA4数据异常举例
GA4数据异常举例

最后,如谷歌所言

Google Analytics(分析)会估算唯一会话 ID 的数量,以此来计算您的网站或应用中发生的会话数。

Google Analytics(分析)帮助

你所获得的Session数是一个估算,不必苛求精确。

想要更系统的了解?请参考:

https://support.google.com/analytics/answer/11080067

https://witbee.com/blog/google-analytics-4-bigquery-9-challenges-to-surprise-you-in-data-analysis

类似文章