作者:Vicky小希希 | 来源:互联网 | 2023-02-10 12:07
如何计算链接到BigQuery的Firebase分析原始数据中的会话持续时间?
我使用以下博客通过对每个记录中嵌套的事件使用flatten命令来计算用户,但我想知道如何按国家和时间计算会话和会话持续时间.
(我配置了很多应用程序,但是如果你可以帮助我使用SQL查询来计算会话持续时间和会话,那将是非常有帮助的)
谷歌博客使用Firebase和大查询
1> Felipe Hoffa..:
首先,您需要定义一个会话 - 在以下查询中,每当用户处于非活动状态超过20分钟时,我将打破会话.
现在,要查找所有使用SQL的会话,您可以使用https://blog.modeanalytics.com/finding-user-sessions-sql/中描述的技巧.
以下查询查找所有会话及其长度:
#standardSQL
SELECT app_instance_id, sess_id, MIN(min_time) sess_start, MAX(max_time) sess_end, COUNT(*) records, MAX(sess_id) OVER(PARTITION BY app_instance_id) total_sessions,
(ROUND((MAX(max_time)-MIN(min_time))/(1000*1000),1)) sess_length_seconds
FROM (
SELECT *, SUM(session_start) OVER(PARTITION BY app_instance_id ORDER BY min_time) sess_id
FROM (
SELECT *, IF(
previous IS null
OR (min_time-previous)>(20*60*1000*1000), # sessions broken by this inactivity
1, 0) session_start
#https://blog.modeanalytics.com/finding-user-sessions-sql/
FROM (
SELECT *, LAG(max_time, 1) OVER(PARTITION BY app_instance_id ORDER BY max_time) previous
FROM (
SELECT user_dim.app_info.app_instance_id
, (SELECT MIN(timestamp_micros) FROM UNNEST(event_dim)) min_time
, (SELECT MAX(timestamp_micros) FROM UNNEST(event_dim)) max_time
FROM `firebase-analytics-sample-data.ios_dataset.app_events_20160601`
)
)
)
)
GROUP BY 1, 2
ORDER BY 1, 2
user_engagement有****event_dim.params.key包含****engagement_time_msec在每个实例毫秒**_ event_dim.params.value.int_value _**包含**连接时间**,做你认为这个参数可用于计算会话持续时间?如果确实如此,它应该比计算更容易,因为计算会话持续时间的参与时间似乎很简单.