如何计算会话持续时间和平均值。 Google Analytics 原始数据中的会话持续时间?

Posted

技术标签:

【中文标题】如何计算会话持续时间和平均值。 Google Analytics 原始数据中的会话持续时间?【英文标题】:How to calculate Session duration and avg. Session duration in Google Analytics raw data? 【发布时间】:2017-07-13 10:27:25 【问题描述】:

如何在与 BigQuery 关联的 Google Analytics 原始数据中计算会话持续时间?

我不知道如何在 BigQuery 中计算会话持续时间!

谢谢

【问题讨论】:

您需要提供比这更多的信息。 【参考方案1】:

以下内容将为您提供 Google BigQuery 中的 Google Analytics 会话持续时间

SELECT fullVisitorId, MAX(h.time)/1000 SessionTime
FROM `INSERT_DATASET_NAME.INSERT_TABLE_NAME.ga_sessions_*` , unnest(hits) h 
GROUP BY fullVisitorId

然后你可以平均结果

SELECT AVG(sessionTime) AvgSessionTime
FROM 
( 
  SELECT fullVisitorId, MAX(h.time)/1000 sessionTime
  FROM `INSERT_DATASET_NAME.INSERT_TABLE_NAME.ga_sessions_*` , unnest(hits) h 
  GROUP BY fullVisitorId
)

您可能会发现BigQuery Schema 很有用

【讨论】:

谢谢达里尔!我用的是更适合我的Will版本! Daryl - ga_sessions_ 表未找到 为什么将 MAX(h.time) 除以 1000?是为了简化还是有其他原因? @DinuliThalakumbura 如文档中所定义,hits.time 是:在注册此命中时,在 visitStartTime 之后的毫秒数。第一个命中的 hits.time 为 0(请参阅:support.google.com/analytics/answer/…)我投了这个解决方案,因为您在查询处于命中级别时获得了平均会话持续时间,并加入了命中,这是您通常需要的。【参考方案2】:

您可以使用totals.timeOnSite 字段,如ga table schema 中所述,类似于:

SELECT 
  AVG(totals.timeOnSite) avgTimeOnSite
FROM `project_id.dataset_id.ga_sessions_*`
WHERE _TABLE_SUFFIX BETWEEN "20170701" and "20170702"

【讨论】:

这个可以解决我的问题!谢谢。当我计算我的平均值时,我使用它。会话持续时间: SELECT sum(timeOnpage)/sum(sessions) as avg_sessions FROM (SELECT sum(totals.timeOnSite) as timeOnpage, COUNT(DISTINCT CONCAT(fullVisitorId,CAST(visitId AS STRING))) AS session FROM @ 987654324@ WHERE _TABLE_SUFFIX BETWEEN “20170702”和“20170703”)【参考方案3】:

根据@Daryl Wenman-Bateson 的回答,我做了一些测试。 使用正确的指标对会话进行分组以获得正确的数据非常重要:要计算会话,您需要将 visitId 添加到 fullVisitorId 以获取非唯一用户但唯一用户的会话:

SELECT AVG(sessionTime) avgSessionTime
FROM 
( 
  SELECT
  concat(fullVisitorId, visitId) as sessions,
  MAX(h.time)/1000 as sessionTime
  FROM `INSERT_DATASET_NAME.INSERT_TABLE_NAME.ga_sessions_*` , unnest(hits) h 
  GROUP BY sessions
)

我用来自 GA 自定义报告的数据和上面的查询做了一些测试数字匹配

//编辑: 另见:https://***.com/a/47069527 在我的测试中,我得到了与 GA 中相同的会话计数,如果这不符合您的需要,您也可以尝试 CONCAT(fullVisitorId,STRING(visitStartTime)) AS sessionId 和 totals.visits=1 来匹配您的数字与GA一致。

【讨论】:

以上是关于如何计算会话持续时间和平均值。 Google Analytics 原始数据中的会话持续时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何计算给定会话日志的峰值并发用户

Firebase Analytics 如何处理后台活动的会话持续时间(mp3 播放器)

如何计算每天的时间戳条目数

会话持续时间 - 谷歌分析和 Firebase 报告之间的巨大差异

用于 Google BigQuery 的 SQL 查询以计算会话和浏览量

计算两步过程的每日平均持续时间