如何计算会话持续时间和平均值。 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 报告之间的巨大差异